Плагины WordPress или как сделать чтобы блог перестал работать :)

Владимир | | Web разработка, WordPress.

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

И вот, на днях искал я плагины для подсветки кода, даже несколько постов на эту тему написал (этот и этот).

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

Отзывы о них были очень хорошие, и я решил, что ничего страшного не произойдет, если я сразу установлю их на сервере.

К тому же недавно я игрался с локальной версией блога, и ее нужно было заново устанавливать и настраивать 🙂 .

Активирую первый (Code Autoescape) плагин, проверяю, вроде все нормально, работает правильно.

Для справки. Этот плагин заменяет спецсимволы html, которые находятся внутри тегов code, на их эскейп последовательности. Другими словами, превращает < в &lt; .

Больше всего в этом плагине мне понравилось то, что он работает с комментариями.

Написал очередной пост уже с использованием этого плагина, продолжаю эксперименты.

Теперь я решил заменить плагин подсветки синтаксиса. В принципе, в Dean's Code Highlighter меня все устраивало, кроме нумерации строк. Точнее мне не нравилось, что номера копируются вместе с кодом. Проблема не большая, т.к. я всегда выкладываю архивы с примерами (если, конечно, они состоят не из пары строк).

Тем не менее, мне хотелось исправить ситуацию. А из этой статьи я узнал о плагине — WP-Syntax.

Фокус в том, что и Dean's Code Highlighter, и WP-Syntax используют одну и туже библиотеку подсветки синтаксиса — GeSHi. И, судя по описанию, являются взаимозаменяемыми.

Отключаю Dean's Code Highlighter, активирую WP-Syntax, вроде все нормально. Я обрадовался и вместо того, чтобы внимательно все проверить решил заняться более интересными вещами 🙂 .

Естественно, на следующий день практически все комментарии касались работы блога 🙂 . Денис даже скриншот сделал, за что ему отдельное спасибо.

В результате, оказалось, что все плагины хорошие и работают, как и должны, но вот перейти с одного на другой так просто не получится.

Итак, основных проблем было три.

1) Если вставить вставить тег pre между тегами code, то Code Autoescape не экранирует его и разметка превращается непонятно во что.

2) Несмотря на то, что и Dean's Code Highlighter, и WP-Syntax используют GeSHi, работают они по-разному. WP-Syntax экранирует символы <, > и &, а Dean's Code Highlighter – нет. В старых постах я вставлял код с уже экранированными символами. В результате получилось, что WP-Syntax заменил в них & на &amp; и все символы <, > превратились в &lt;, &gt;.

3) К тому же у этих плагинов есть одна очень не приятная особенность. Они получают полный текст поста и возвращают его же, но уже с подсветкой. При этом, если во время их работы происходит ошибка, то возвращается пустая строка. На практике это вылилось в то, что некоторые посты у меня состояли из названия и комментариев 🙂 .

В конечном итоге я вернул Dean's Code Highlighter, правда в немного измененном виде. Отключил вставку ссылок на документацию по ключевым словам. Все равно эти ссылки вставлялись только для самых распространенных функций (вроде array, echo, …) и вряд ли кто-то ими пользовался.

В общем, менять плагины для подсветки кода в ближайшее время я не буду 🙂

И нужно распечатать и приклеить на монитор напоминание «Никаких экспрериментов с рабочим сервером!» 🙂 ).