расставляй правильно приоритеты и не отвлекайся на мелочи

WordPress плагины: WP Code Syntax Highlighter

В предыдущей записке про WordPress плагины я расхваливал замечательный плагин Google Syntax Highlighter, как оказалось, при более детальном рассмотрении, не такой-уж это и замечательный плагин и имеет он в себе несколько недостатков, а именно:

  • Делает документ не валидным, т.к. в спецификации HTML у элемента PRE нет атрибута NAME
  • Для «раскраски» использует не сжатый вариант JavaScript файлов от syntaxhighlighter
  • Вставляет на всех страницах стилевой файл раскраски и все языковые JavaScript библиотеки, вне зависимости от того, нужны они в данный момент или нет

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

Немного отвлечемся. Почему я зациклился именно на этой реализации подсветки синтаксиса? Да, на сайте плагинов для WordPress имеется несколько решений на данную тему, одно из которых занимает лидирующее место, это WP Syntax, но большинство из них, и WP Syntax не исключение, дабы не изобретать велосипед, пользуются очень мощной PHP библиотекой GeSHi, которая естественно крутится на сервере.

Так вот, Code Syntax Highlighter «подкупает» тем, что позволяет увести нагрузку по раскраске на клиентскую сторону, поэтому это решение мне кажется более верным, правда для раскраски больших блоков кода, когда счет идет на килобайты, использовать его не желательно. С другой стороны, другие плагины, которые используют пакет Code Syntax Highlighter не устраняют 3-ий пункт моих замечаний, вот именно из-за этого пришлось брать в руки напильник.

В итоге, вот здесь Вы можете скачать мою версию WP Code Syntax Highlighter.

Синтаксис использования плагина следующий:

<pre class="lang:...">
... здесь код ...
</pre>

где для атрибута class могут быть выбраны несколько значений разделенных через двоеточие:

  • nogutter — Убирает колонку нумерации строк
  • nocontrols — Убирает верхнюю контрольную панель
  • collapse — Сворачивет блок кода в одну строку (для разворачивания необходимо наличие контрольной панели)
  • firstline[value] — Начинает нумерацию строк с заданного значения. По умолчанию 1.
  • showcolumns — Отображает строку колонок в верхней части
  • lang — может принимать следующие значения:
    • cpp, c, c++
    • c#, c-sharp, csharp
    • css
    • delphi, pascal
    • java
    • js, jscript, javascript
    • php
    • py, python
    • rb, ruby, rails, ror
    • sql
    • vb, vb.net
    • xml, html, xhtml, xsltм

Вот пример работы данного плагина:

(атрибут class=»php:showcolumns:firstline[109]»)

<?php
phpinfo() ;
?>

(атрибут class=»js:nocontrols»)

<script type="text/javascript">
window.alert('Hello World') ;
</script>

———————

И на последок немного отвлечемся на темы SEO и программного обеспечения:

Сложно искать новые идеи и создавать грамотный контент для сайта? Обратитесь за помощью и консультациями по развитию вашего ресурса.

Ищите новую операционную систему? Супермаркет лицензионного программного обеспечения Софткей-Украина предлагает всеобъемлющее издание системы Windows Vista — Windows Vista Ultimate.

А Вы задумались о безопасности личных данных? Установите антивирус под висту и не забывайте о регулярном обновлении антивирусных баз.

15 комментариев на статью:
  1. а расцветочка весёленькая есть? — Чудо{вищные} заметки:

    […] руки, как водится, не доходят. А сегодня наткнулся на записку под рукой и решил не откладывать в долгий ящик, установил плагин […]

  2. Подсветка синтаксиса для Wordpress | ФКодинг:

    […] что понадобится прогеру для работы с WordPress это плагин для подсветки синтаксиса. […]

  3. Алексей:

    Меня бесит, что при копировании строк с кодом в WP Code Syntax Highlighter, копируется и номера строк. Конечно есть \view plain\ и \copy to clipboard\
    но всё равно это не то.
    Странно, что не фиксил, или на это есть причины?

  4. admin:

    Причин нет, есть view plain.

  5. Кирилл:

    Оооо, спасибо вам! Уважаю! Вы мне очень помогли :-)

  6. Вячеслав:

    Почему то отображается только сам код. Думаю что это не проблема плага, а проблема у меня, потому что всё что связано с всплывающими окнами TinyMCE так же работает некорректно. Эх, помог бы кто…

  7. Бакс:

    недавно в нем нашли ОЧЕНЬ серьезную дыру, выполнение произвольного ПХП кода. ты все его еще используешь?;)))

    Тут подробней — http://html-css-js.org.ua/uyazvimost-v-plagine-wordpress-wp-syntax-281.htm

  8. admin:

    2 Бакс, я использую WP Code Syntax Highlighter, — это не WP-Syntax и в нем нет дыры которую ты описываешь.
    Спасибо за информацию.

  9. Бакс:

    Да, точно, извини, напутал:)
    Кстати попробуй CodeColorer — простой и отличный плагин.

    • admin:

      Он не подходит (Plugin based on GeSHi library) под мои требования (увести нагрузку по раскраске на клиентскую сторону), но в копилочку я его занес :)

  10. Olunka:

    У меня почему то этот плагин отображает не весь код, а только то что ему вздумается.
    Например теги body и head он отображать не желает, и с некоторыми php данными такая же проблема.

    Как ее можно поправить?

  11. Сергей:

    СПАСИБО за такой чудесный плагин

  12. Дмитрий:

    Но все равно не так красиво смотрится

    • admin:

      Да, полностью согласен. Но, как можно заметить, я — минималист и если нужны красивости: … Ctrl+V в любимом редакторе, мне хватает.

Ответить
Обязательные поля помечены *