Раскрашиваем код на сайте. GeShi - PHP Code Colorer

Достаточно долго я раскрашивал публикуемый на блоге код с помощью js-библиотеки, тем самым перекладывая эту задачу на клиентскую машину. Сервер это конечно же немного разгружает, но при этом прилично увеличивается время загрузки сайта (библиотека весила что-то около 100 килобайт). Совершенно случайно я наткнулся на php-библиотеку GeShi и решил попробовать ее деле. Результат мне понравился и теперь вы можете лицезреть его на сате.

Изменений потребовалсь совсем немного, тем более что все блоки с кодом уже были отмечены в исходных файлах блога примерно вот таким образом

  1. <pre><code class = 'php'>
  2. <?
  3. echo 'Неольшой кусочек кода на PHP';
  4. ?>
  5. </code ></pre >

Оставалось лишь найти их ...

  1. if(preg_match('#<pre>\s*<code.+</code>\s*</pre>#sUi', $content))
  2. {
  3. '#<pre>\s*<code\s+class="(\w+)">(.+)</code>\s*</pre>#sUi',
  4. 'highlight_code', $content);
  5. }

... и раскрасить ...

  1. function highlight_code($matches)
  2. {
  3. include_once 'inc/geshi/geshi.php';
  4. $source = $matches[2];
  5. $language = $matches[1];
  6. $geshi = new GeSHi($source);
  7. $geshi->set_language('php');
  8. $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);
  9. return $geshi->parse_code();
  10. }

Читайте в блоге

Ссылки. TimePicker. javascript на сервере. DOM парсер
Funky Cache
TinyURL. Шаг 5. Последние штрихи и запуск
Круглая кнопка на JavaScript.
Создание таблиц в плагине для WordPress

Метки: php блог

Комментарии:

Войдите на сайт, чтобы оставить комментарий