Использование модуля Syntax Highlighter в Drupal 7

Решившись наконец взяться за блог, я сразу же столкнулся с множеством технических вопросов, один из которых - это подсветка синтаксиса разнообразных языков программирования в тексте статей.
Погуглив, я сперва наткнулся на модуль GeShi, который меня всем устраивал и оказался уже адаптирован под Drupal 7, но почему то не захотел в моем случае работать, вызывая ошибку при попытке зайти на страницу конфигурации сайта.
После этого мой выбор пал на Syntax Highlighter, потому как и выбирать-то особо было больше не из чего. Впрочем в итоге я не пожалел о своем выборе.

Установка

Итак, первое что необходимо сделать это собственно скачать сам модуль с официального сайта Drupal.
После этого скачиваем javascript-библиотеку, которая, как это ни странно, называется тоже Syntax Highlighter.
Распаковываем модуль в директорию sites/all/modules, а библиотеку в директорию sites/all/libraries (если ее не существует, то нужно ее создать). В конечном итоге путь до библиотеки должен выглядеть так: sites/all/libraries/syntaxhighlighter_3.0.83. После чего идем в Модули и включаем этот модуль у себя на сайте.
Если вы все сделали верно, никаких проблем возникнуть не должно.

Настройка

Следующим шагом является добавление модуля в форматы ввода. Попробуем, например, добавить его в Filtered HTML.
Идем в Конфигурация -> Содержание -> Форматы ввода и редактируем Filtered HTML. В списке включенных фильтров отмечаем чекбокс Syntax Highlighter.

Внимание, важно!

Убедитесь, что в перечне Порядок фильтров Syntax Highlighter находится выше пункта Преобразовывать переносы строк в HTML и ниже пункта Ограничить разрешённые в содержании ХТМЛ-теги.
Затем сохраняем конфигурацию формата ввода.

Использование

Для того, чтобы увидеть наш замечательный модуль в действии, попробуем добавить статью на сайт и вставить в нее кусок кода на вашем любимом языке программирования. Пусть это в моем случае будет php. Обрамляем код специальными тегами {syntaxhighlighter brush: php} {/syntaxhighlighter} и получаем нечто подобное:

 
<?php
	
	//соединямся с постгрес
	$conn = pg_connect(
		"host=localhost ".
		"dbname=postgres ".
		"user=postgres"
	);
	
	$sql = "SELECT * FROM products";
	
	//выполняем запрос
	$r = pg_query($sql);
	
	$data = array();
	while($row = pg_fetch_assoc($r)){
		$data[] = $row;
	}
	
	echo "<pre>";
	var_dump($data);
	echo "<pre>";

Tags: 

Подписаться на ленту «Trish.in RSS»