Ars Longa, Vita Brevis

Июнь 1, 2008

CodeBox: подсветка синтаксиса для WordPress

Рубрика: PHP, WordPress
Метки: , , ,
Vladimir @ 9:43 пп
RSS 2.0

Усоврешенствованный клон WP-CodeBox

Наверное, многие знают о плагине 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, а там посмотрим. Обратную совместимость я постараюсь сохранить.

Если кто-то будет данный пост читать :-), пишите отзывы и пожелания!

Скачать CodeBox.

Комментарии к статье "CodeBox: подсветка синтаксиса для WordPress" (2) »

  1. [Июнь 16, 2008 12:45 дп] AlexNote:

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

    #1
  2. [Июнь 16, 2008 12:54 дп] Vladimir:

    Надеюсь, Вам понравится… Будут пожелания - пишите :-)

    #2

RSS лента комментариев к этой записи. TrackBack URL

Оставить комментарий к записи "CodeBox: подсветка синтаксиса для WordPress"

Подписаться, не комментируя