WP-Syntax

Для вставки кода программы в текст заметки я использую плагин для WordPress Wp-Syntax. Он понимает и подсвечивает синтаксис следующих языков программирования:  asm, bash, c, cpp, css, delphi, diff, html4strict, java, latex, lua, make, matlab, mysql, pascal, perl, php, python, basic, rails, ruby,  tcl, verilog, vhdl, vim, xml и многих других.

Для того что бы вставить код программы надо использовать html тег pre c параметрами.

Например так:

<pre lang="c">
if( a > b ) printf( "a > b" ) ;
</pre>

Все бы хорошо, но WP-Syntax заменял кавычки и знаки < > на  &quot &it и &gt

и вместо

if( a > b ) printf( "a > b" ) ;

я получал

if( a &gt; b ) printf( &quot;a &gt; b&quot; ) ;

При внимательном чтении документации стало понятно, что для управления декодированием html-символов существует опция escaped, и для того что бы
&lt заменялось на < и т.д. нужно установить этому параметру значение "true".

<pre lang="c" escaped="true" >
if( a > b ) printf( "a > b" ) ;
</pre>

Есть еще один недостаток у этого plugin’а. При переключение между визуальным редактированием и вводом html, параметр escaped куда-то пропадает.
Что бы это хоть как-то это забороть можно поправить код плагина выставив по умолчанию escaped= "true"

Редактируем файл /wp-content/plugins/wp-syntax/wp-syntax.php.
В функции wp_syntax_highlight строку

if ($escaped == "true") $code = htmlspecialchars_decode($code);

надо заменить на:

if ( (!$escaped) || ($escaped == "true") ) $code = htmlspecialchars_decode($code);
Запись опубликована в рубрике Сайтостроительство с метками . Добавьте в закладки постоянную ссылку.

Один комментарий: WP-Syntax

  1. блогозета говорит:

    Сенкс. Интересно, и вообще полезный у Вас блог

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>