CodeBox: подсветка синтаксиса для WordPress
Наверное, многие знают о плагине WP-CodeBox, написанном Eric Wang. Данный плагин provides clean syntax highlighting and AJAX advanced features for embedding source code within pages or posts
, то есть всё то, что нужно блоггеру, который часто постит код. Для подсветки синтаксиса используется GeSHi.
Я пользуюсь плагином около трёх месяцев и при этом не смотрю на него сквозь розовые очки: неоднократно я уже писал патчи, исправляющие ту или иную ошибку в коде:
Но не успел я поправить версию 1.2.2, как вышла версия 1.2.2.1, использующая более новую версию GeSHi (что я, кстати, поправлял в своём блоге еще в 1.2.1).
Устав исправлять старые и новые ошибки, я решил переработать код плагина. В результате изменений:
- генерируемый HTML-код стал более осмысленным и компактным;
- генерируемый HTML-код не содержит таблиц, ибо табличных данных нет;
- HTML-код использует классы, нежели инлайновые стили: во-первых, это делает исходник более читабельным, а во-вторых, для больших блоков кода очевидно значительное уменьшение размера страницы;
- PHP-код не изобретает велосипед: функциональность, поддерживаемая GeSHi, в коде плагина не дублируется (смысл ее дублировать?);
- проведён рефакторинг PHP-кода:
ereg()
замененstripos()
(а затем вообще удалён), исправлена ошибка в регулярном выражении, из-за чего загрузка файлов могла не работать, исправлены потенциальные XSS-дыры, вместоhtmlspecialchars()
используетсяwp_specialchars()
- JavaScript не конфликтует с Prototype/LightBox/ProtoBox;
- генерируемый XHTML-код большей частью валиден (на данный момент я еще не весь код просмотрел);
- в GeSHi добавлена поддержка еще нескольких языков и внесены коррекции в существующие модули;
- явно было что-то еще, но я уже не помню
В общем, я принял героическое решение, что я сам буду поддерживать полученный код и развивать его (фактически, я создал новый форк от WP-CodeBox). С названием я не определился, пока будет называться просто CodeBox, а там посмотрим. Обратную совместимость я постараюсь сохранить.
Если кто-то будет данный пост читать :-), пишите отзывы и пожелания!
Нужная вещь. В силу нехватки времени, посмотреть плагины для этого дела на офф. сайте забываю, а раз наткнулся на ваш, то завтра и попробую.
Надеюсь, Вам понравится… Будут пожелания - пишите