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.
А Вы задумались о безопасности личных данных? Установите антивирус под висту и не забывайте о регулярном обновлении антивирусных баз.
[...] руки, как водится, не доходят. А сегодня наткнулся на записку под рукой и решил не откладывать в долгий ящик, установил плагин [...]
[...] что понадобится прогеру для работы с WordPress это плагин для подсветки синтаксиса. [...]
Меня бесит, что при копировании строк с кодом в WP Code Syntax Highlighter, копируется и номера строк. Конечно есть \view plain\ и \copy to clipboard\
но всё равно это не то.
Странно, что не фиксил, или на это есть причины?
Причин нет, есть view plain.
Оооо, спасибо вам! Уважаю! Вы мне очень помогли :-)
Почему то отображается только сам код. Думаю что это не проблема плага, а проблема у меня, потому что всё что связано с всплывающими окнами TinyMCE так же работает некорректно. Эх, помог бы кто…
недавно в нем нашли ОЧЕНЬ серьезную дыру, выполнение произвольного ПХП кода. ты все его еще используешь?;)))
Тут подробней – http://html-css-js.org.ua/uyazvimost-v-plagine-wordpress-wp-syntax-281.htm
2 Бакс, я использую WP Code Syntax Highlighter, – это не WP-Syntax и в нем нет дыры которую ты описываешь.
Спасибо за информацию.
Да, точно, извини, напутал:)
Кстати попробуй CodeColorer – простой и отличный плагин.
Он не подходит (Plugin based on GeSHi library) под мои требования (увести нагрузку по раскраске на клиентскую сторону), но в копилочку я его занес :)