Куда уходят коды. Как я боролся с исчезновением форматированного кода при редактировании статей

При написании статьи о выборе плагина для размещения в блоге личного портфолио я невольно пришел к мысли, что не плохо было бы в своих статьях размещать примеры различного кода (PHP, CSS, HTML и т.д.). Для этих целей существует масса плагинов.

UPD. По причине смены движка WordPress, через несколько лет после написания данной статьи, пришлось сменить и плагин для подсветки кода в статьях. После 5 минутного поиска, на основе рейтинга отзывов был выбран Crayon Syntax Highlighter.

Среди которых: SyntaxHighlighter Plus, WP-Syntax, Ion Snytax Highlighter, Raw HTML, CodeColorer, а так же многие другие. Все они по своему хороши до тех пор, пока вы при редактировании статьи не переключитесь в визуальный режим редактирования. Визуальный редактор (по умолчанию на платформе TinyMCE) просто удалит часть кода который вы хотели опубликовать или просто заменит на спец символы. Делает он это не со зла, а в целях безопасности. В итоге, если у вас в статье есть форматированный код вам категорически нельзя переключатся в режим визуального редактора и все время редактирования контента довольствоваться аскетичным HTML видом. Из создавшейся ситациии есть два выхода.

  1. Сменить ваш WYSIWYG редактор на другой, не использующий в основе TinyMCE. Который будет не менее удобен и к тому же не будет автоматически исправлять HTML теги в спец символы (например, символ < исправится на &lsaquo;) и дальше пользоваться любимым плагином для подсветки и форматирования кода.
  2. Установить плагин WP-SynHighlight который, как «Магомед» – сам идет к визуальному редактору. А именно выводит кнопку на панели, позволяющую оформлять код в визуальном режиме обходя таким образом конфликт интересов.

Может показаться что названый плагин не функционален, но это не так. Среди основных функций можно выделить следующие:

  • Подсветка синтаксиса языков (в наборе более 50 языков)
  • Возможность выводить номера строк форматированного кода, с настройкой номера первой строки. Возможно вообще отключить нумерацию строк в выводе конкретного кода.
  • Возможность задать заголовок для поля в котором выводится код.
  • Область с кодом можно свернуть нажатием на заголовок.
  • При наведении на какую либо фунцкию в PHP коде дается ссылка на описание этой фунции на сайте php.net
  • Возможность плагина по форматированнию кода в комментариях блога (можно отключить по требованию).

Пример форматирования кода с использованием плагина WP-SynHighlight

Единственное что возможно придется настраивать вручную – это размер форматированного кода. Может существенное не совпадать с текущим размером остального текста. Исправляется следующим образом:

Открываем файл wp-content/plugins/wp-synhighlight/wp-synhighlighter.css

И добавляем строку font-size:10px;

В примере ниже я задал размер шрифта во второй строке CSS файла.

Если есть желание изменяйте остальные параметры как вам угодно, для улучшения внешнего вида форматированного текста. Если вам не нравится подсветка синтаксиса вообще, то при выборе языка поставьте «Text».