Для вставки кода программы в текст заметки я использую плагин для 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 заменял кавычки и знаки < > на " &it и >
и вместо
if( a > b ) printf( "a > b" ) ; |
я получал
if( a > b ) printf( "a > b" ) ; |
При внимательном чтении документации стало понятно, что для управления декодированием html-символов существует опция escaped, и для того что бы
< заменялось на < и т.д. нужно установить этому параметру значение "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); |
Сенкс. Интересно, и вообще полезный у Вас блог