DbHelp.ru
Маленький Yii блог
Комментарии
Гость: Намереваетесь оттрахать три киски сразу, обратите взо...
Гость: «Халва» - Карта Рассрочки взять кредит частный займ ...
Гость: Регистрируешься - огромный бонусы. Играешь - огромный ...
Гость: Быстро и качественно придам вашему фото идеальный вид....
Гость: Информативно,продолжай в том же духе [url=http://forum.oncolo...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Подсветка синтаксиса

Рубрика: Что нового?

Оцените эту статью:

Рейтинг: 0.00 (0)
19 Апр. 2010
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Подсветка php кода на страницах блога — штука невероятно удобная. Давайте в двух словах разберемся как я подкрутил её у себя...

---

Все инструменты для подсветки синтаксиса делятся на две категории (насколько мне известно): js скрипты делающие подсветку на стороне клиента и серверные скрипты которые делают всё это на стороне сервера.

Описывать подробно плюсы и минусы думаю нет смысла, т.к. они вполне очевидны:

  • js-библиотеки изменяют блок с кодом на лету в браузере пользователя. Если javascript у него будет отключен - всей красоты он не увидит. Конечно выполнение скрипта требует небольшого времени и для больших страниц с кодом пользователю потребуется подождать пока скрипт выполнит свою работу (примерно 0.5-2сек)
  • серверные скрипты подсветки синтаксиса делают разукравшивание всего один раз, при добавлении/изменении страницы. css/html требуемый для красивого отображения кода попадает сразу в базу. Данный вариант удобен конечным пользователям т.к. не требует от них поддержки js и выполнения кода подсветки у себя в браузере от страницы к странице.

Для подсветки на своем блоге я выбрал маленький скрипт highlight.js который на стороне клиента занимается всеми «разукрашиваниями». Мне просто удобнее что бы код в базе не меняли всякие скрипты, вдруг я через день передумаю и решу использовать что то другое.

Порядок работы:

1. Заходим на сайт и скачиваем highlight.js

2. Распаковываем папку highlight в корень, рядом с папкрй protected

3. Подключаем скрипт в лаяуте строчкой:

<script src="/highlight/highlight.pack.js"></script>
либо зададим свойство scriptMap компонента clientScript. Это можно сделать как в настройках приложения, так и в коде. К примеру:
$cs=Yii::app()->clientScript;
$cs->scriptMap=array(
    'highlight'=>'/highlight/highlight.js',
    …
);

4. На странице где хотим использовать подсветку синтаксиса (либо сразу в лаяуте) делаем инициализацию библиотеки:

<script type="text/javascript">
hljs.initHighlightingOnLoad();
</script>

5. Блоки кода на сайте в которых хотим использовать подсветку синтаксиса оформляем по типу:

<pre><code>...</code></pre>

Пользуемся!



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Поздравляю всех с "кругленькой" версией любимого фреймворка! В этом выпуске было исправлено около тридцати ошибок и произведены незначительные улучшения существующих функций. next К ... "Поздравляю всех с выходом версии 1.0.10!"

  2. Сегодня мы поговорим с вами о том как изменить генератор символов на капче. Часто мне стали приходить сообщения на почту ... "Как на Yii капче выводить цифры"

  3. С момента публикации моей прошлой статьи прошел практически месяц. Я очень рад что многие из моих читателей подключились в процесс ... "#02 : Обзор"

[adm] zolter

Было сказано: Вторник, 20 Апрель 2010

Дополнил немного статью

[guest] Werewolf

Было сказано: Вторник, 20 Апрель 2010

<script src="/view/highlight/highlight.pack.js"></script>
Protected должна быть закрыта от глаз, тем более класть ее прямо в корень документрута кощунственно.


Мне кажется проще использовать registerScriptFile.

[adm] zolter

Было сказано: Вторник, 20 Апрель 2010

Я изначально использую вариант с scriptMap, по поводу protected исправил, действительно неверно указал :)

[guest] yareg

Было сказано: Четверг, 29 Апрель 2010

Хотел написать на мыло, но как-то не нашел контактного мейла...
http://ipicture.ru/upload/100429/Fxy7fc64xg.jpg

[guest] zolter

Было сказано: Четверг, 29 Апрель 2010

Оо спасибо,
на будущее моя почта zolter.od@gmail.com

[guest] zolter

Было сказано: Четверг, 06 Май 2010

Подсветка синтаксиса кстати походу есть встроенная в yii, надо будет об этом написать :)

[guest] Гость

Было сказано: Среда, 25 Август 2010

Столкнулся с проблемой, что TinyMCE-редактор перекодирует символы и логично, что подсветка не работает. Как обойти это? Например как то выделить, что это мол исходный код - его не трогай)

[adm] zolter

Было сказано: Четверг, 26 Август 2010

Я TinyMCE юзаю, с этим проблем нету :/
Правда блоки с кодом вбиваю через режим HTML в нем, а не через сам виз.редактор

[guest] Гость

Было сказано: Четверг, 26 Август 2010

Да, спасибо, через хтмл режим работает!) полез спрашивать не изучив тулбар редактора(<

Оставить комментарий


Код:
Имя: