geshiВ этой статье я более подробно, чем в каталоге расширений Joomla, расскажу как использовать плагин GeSHi для раскрашивания кода в статьях (еще эту фишку называют подсвечиванием синтаксиса). Здесь речь пойдет об использовании плагина GeSHi (сокращение от Generic Syntax Highlighter) в Joomla 1.5.

В Joomla 1.5 для подсветки синтаксиса кода в базовый пакет встроен скрипт GeSHi. На офсайте скрипта можно найти более 130 языков программирования, которые поддерживает данный скрипт. GeSHi использует подключаемые файлы с описанием синтаксиса языков, что обеспечивает простоту добавления новых описаний.

Данный плагин добавляет подсветку синтаксиса заданных языков для содержимого тега <PRE>. Тип подсветки можно задать посредством атрибута lang:

<pre xml:lang="php" lines="true">
<?php echo 'test'; ?>
</pre>

Есть один досадный пустячок, который мешает нормально редактировать статьи с использованием этого плагина в текстовых редакторах Joomla. Например, JCE даже при выключеной функции очистки кода у меня вырезает всё содержимое тега после xml:lang=". Поэтому работать нормально отказывается, и приходится отключать текстовый редактор и править в конце статьи с использованием плагина без редактора ручками.

Как же облегчить себе жизнь? Для этого используем плагин GeSHi Bot. Он может работать как с тегом PRE, так и имеет свой вызов как у всех остальных плагинов - используя связку {geshibot}...{/geshibot}.

Использование этого плагина отличается от стандартного тем, что параметры подсветки задаются в настройках плагина, а не в теге PRE, как это сделано в базовом плагине Joomla. Плюс к блоку кода добавляются заголовок и кнопочка "Показать исходный код". Также плагин умеет выводить код из файлов. Синтаксис смотрите в документации к плагину либо в описании плагина после его установки.

Настройки плагина:

Параметры

При использовании тега PRE все ранее опубликованные тексты в этих тегах получат настройки как задано в плагине, то есть, если у вас указано в настройках что надо нумеровать строки, то везде они будут пронумерованы. А настроить нумерацию в параметрах тега {geshibot} нельзя, так как здесь конструкция такая:

{geshibot lang="javascript" head="Это заголовок блока кода, эта строка не нумеруется"}

Есть один недостаток использования тега {geshibot} - в текстовом редакторе кусок кода выглядит неоформленным и чтобы посмотреть как всё выглядит придется смотреть на фронтеде сайта. Плагин прекрасно подхватывает стили сайта для тега PRE, и текстовые редакторы ничего не вырезают, и можно спокойно верстать статьи без переключения режимов редактирования.

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

Удачного кодинга!