DbHelp.ru
Маленький Yii блог
Комментарии
Гость: wh0cd1144039 [url=http://buy-prednisolone.reisen]buy prednisolone[/url] buy prednisolone 5mg without...
Гость: write my essay for me write an essay write essay my essay writing
Гость: wh0cd660443 [url=http://buy-celebrex.reisen]buy celebrex[/url] how much is celebrex http://buy-celeb...
Гость: wh0cd1144039 [url=http://buyadvair.store]advair[/url] advair http://buyadvair.store [url=http://buy-...
Гость: wh0cd660443 [url=http://buyprozac.shop]buy prozac online uk[/url] buy prozac online http://buyprozac...



Сервер 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. Давайте сегодня поговорим что же такое “контроллер” и для чего он используется в приложениях на базе MVC next В уроке ... "Шаг 5 : Контроллер"

  2. Столкнулся с проблемой кодировки при использовании mail() функции в php. Для меня было очень странным что тело письма приходит в ... "Проблемы с кодировкой в теме письма"

  3. Была у меня мысль когда то запустить свой блог на одном интересном бесплатном хостинге. Посмотрев на конфигурацию сервера и ... "Настройка Yii на хостинге без поддержки PDO"

[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

Оо спасибо,
на будущее моя почта [email protected]

[guest] zolter

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

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

[guest] Гость

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

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

[adm] zolter

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

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

[guest] Гость

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

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

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


Код:
Имя: