Навигация
Вход в систему
Drupal подсветка кода
- 1 Этап. Скачиваем модули для подсветки кода.
- 2 Этап. Включаем и настраиваем модули для подсветки кода в Drupal
- 3 этап. Правим и патчим скрипт руками.
- 4 этап. Используем модуль для подсветки кода в Друпал.
Задача: Организовать подцветку php, java, html, css, c++, c# кода в Drupal.
Решение: в данной статье приведем решение данной задачи, развив процесс на этапы. При решении задачи будет применяться решение на основе проекта GeSHi.
Кратко о проекте… При помощи проекта GeSHi в различных блогах и движках может быть осуществлена:
- Подсветка php кода
- Подсветка jquery кода
- Подсветка html кода
- Подсветка javascript кода
- Подсветка c++ кода
- Подсветка c# кода
- Подсветка delphi кода
- А так же любая другая подсветка синтаксиса кода.
1 Этап. Скачиваем модули для подсветки кода.
Собственно нам понадобится следующее:
- Сам модуль GeSHi http://sourceforge.net/projects/geshi/files/
- И его реализация для Drupal http://drupal.org/project/geshifilter
Скачиваем и устанавливаем.
- Модуль для Друпала устанавливаем в папку sites/all/modules
- Сам GeSHi устанавливаем в sites/all/modules/GeShiFilter/Geshi
Скажу сразу, что я сливал не последнюю версию модуля, т.к. с ней возникли непонятные мне проблемы GeSHi не отображал все языки, а обрывал список и я решил, глядя на статьи прошлых лет взять предыдущий релиз модуля и использовал модуль geshifilter 6.x-1.3, качал вот с этой страницы http://drupal.org/node/65961/release?api_version%5B%5D=87
Сам плагин стоит версии GeSHi 1.0.8.10, качал отсюда http://sourceforge.net/projects/geshi/files/geshi/
2 Этап. Включаем и настраиваем модули для подсветки кода в Drupal
- В админке по адресу admin/build/modules включаем модуль GeShiFilter
- В admin/settings/filters, в настройках Full HTML, ставим галочку напротив GeSHI Filter и сохраняем
- В admin/settings/geshifilter, напротив «Use input format specific tag settings» ничего не ставим.
- В Container tag style ставим галочку напротив <foo> ... </foo>
- В качестве “Default highlighting mode” выбирайте выберите стиль для отображения кода по умолчанию.
- Там же Default line numbering: как нумеровать строки (нумеровать, не нумеровать, каждую 5, каждую 10 и т.д.)
- В CSS mode for syntax highlighting: Inline CSS style attributes.
- В Code container, wrapping technique: GESHI_HEADER_NONE - не создает нумерованный список, типа <ol>
- Финальный шаг, идем сюда admin/settings/geshifilter/languages/all, настраиваем подсветку для определенных языков, которые нам нужны
3 этап. Правим и патчим скрипт руками.
Тут конечно придется полезть в код и править руками, в принципе любой осилит. Нужно это для того чтобы корректно отображались спецсимволы, типа угловых скобок в редакторах, типа FCKEditor.
- Идем в папку sites/all/modules/geshifilter/geshi/
- Открываем для редактирования файл geshi.php
- В нем находим функцию parse_code ()
- И в ней после строки $code = str_replace("\r", "\n", $code); или подобной ей вставляем следующий код
$code = str_replace(">", ">", $code);
$code = str_replace("<", "<", $code);
$code = str_replace("‹", "‹", $code);
$code = str_replace("›", "›", $code);
$code = str_replace("'", "'", $code);
$code = str_replace(""", "\"", $code);
$code = str_replace("&", "&", $code);
4 этап. Используем модуль для подсветки кода в Друпал.
Остаётся только радоваться жизни и использовать модуль для подсветки кода. Теперь осталось лишь при вставке кода обертывать его специальными тегами. Какими тегами надо обозначать код вы можете посмотреть тут /admin/settings/geshifilter/languages/all. Например для php это < php >
Выглядит у меня все это дело примерно вот так
![]()
Спасибо за подробное описание! Очень помогло