четверг, 2 августа 2012 г.

Подсветка синтаксиса языка python в Blogger

В связи с тем, что в настоящее время работаю над графической оболочкой одной из своих программ, для чего решил использовать связку python + pyQt, и оказалось, что русскоязычных ресурсов по введению в использование pyQt катастрофически мало, у меня появилось желание сделать небольшой tutorial в этом блоге. Я буду время от времени публиковать отдельные посты, посвящённые той или иной проблеме, с которой мне пришлось столкнуться и её решением. Надеюсь, это кому-нибудь тоже поможет.

Первое же, что мне пришлось сделать, это найти подходящий скрипт, который решал бы задачу подсветки синтаксиса (так называемый syntax highlighter) языка python в блогах на платформе Blogger.

Вообще, подсветчиков синтаксиса довольно много, не все из них, правда, поддерживают python. Из тех, что представлены здесь мне больше других приглянулся JS-скрипт SyntaxHighlighter, написанный Алексом Горбачевым.

Процедура установки на блог со стандартным шаблоном достаточно проста. В админке открываем вкладку «Шаблон» и жмём на «Изменить HTML». Соглашаемся с тем, что понимаем все риски («Приступить» в открывшемся окне) и сохраняем старый шаблон на жёстком диске (просто выделите всё и скопируйте в какой-нибудь пустой текстовый файл на своём компьютере).

Теперь в шаблоне находим строчку
<title><data:blog.pageTitle/></title>
Сразу после неё вставляем следующий код
<link href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css" rel="stylesheet" type="text/css" />
<link href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css" />
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript">
</script>
Далее следует вставить строчки вида
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js" type="text/javascript">
</script>
где вместо shBrushPhp.js следует указать название скрипта для того языка, который вам требуется. Список всех поддерживаемых языков и соответствующие им названия файлов можно найти здесь.

Подключив все языки, завершаем установку вводом следующих строк:
<script type="text/javascript">
  SyntaxHighlighter.config.bloggerMode = true;
  SyntaxHighlighter.all();
</script>
Жмём «Сохранить шаблон».

Теперь проверим, удалось ли нам подключить скрипты. Для этого в новом сообщении вставляем следующие строки:
<pre class="brush:python">
print "Hello, World!"
</pre>
если всё нормально, должно получиться как-то так:
print "Hello, World!"

Для других языков, соответственно, надо поменять название кисти (brush:xml вместо brush:python и т. п.).