Включаем Подсветку Кода В Jekyll
В каждой культурной среде существуют свои определённые традиции. Например, хаскеллисты традиционно пишут туториалы по использованию монад. А пользователи jekyll традиционно пишут пост “Как включить подсветку кода”. Внесу же и я свою скромную лепту в общий культурно-гумусный слой.
По-умолчанию, jekyll уже поддерживает pygments, однако всё равно требуется проделать ряд телодвижений, чтобы код действительно стал подсвечиваться. Вот последовательность, которая помогла мне.
Сначала ставим pygments (если их ещё нет). Например, через кошерный pip:
$ pip install pygmentsНе забываем также обновить свои гемы - старый liquid может работать некорректно ;)
$ yum updateПроверяем, что конфиг _config.yml содержит указание использовать pygments:
pygments: trueСоздаём css-файл, который отвечает за стиль подсветки:
$ pygmentize -S trac -f html > stylesheets/pygments.cssМне понравился стиль trac, и вы тоже можете поиграть с расцветкой кода:
$ ls /usr/share/pyshared/pygments/styles
__init__.py
autumn.py
borland.py
bw.py
colorful.py
default.py
emacs.py
friendly.py
fruity.py
manni.py
monokai.py
murphy.py
native.py
pastie.py
perldoc.py
tango.py
trac.py
vim.py
vs.pyДобавляем ссылку на созданный нами файл в свой лэйаут. Я не стал мудрить, и тупо вписал одну строку в _includes/themes/twitter/default.html туда же, где указаны прочие стили:
<link href="/stylesheets/pygments.css" rel="stylesheet">На всякий случай исправляем дефолтный стиль в файле bootstrap.min.css, если у вас используется тема Twitter Bootstrap. Так рекомендуют здесь.
-code{padding:3px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;}
+code{padding:3px 4px;color:#d14;border:1px solid #e1e1e8;}После этого всё должно работать.
Пример
Для подсветки надо использовать liquid-теги. Пишем в markdown-исходник страницы что-нибудь вида:
{% highlight c linenos %}
int main() {
printf(“Hello\n”);
return 0;
}
{% endhighlight %}
И получаем симпатичный кусок кода:
1
2
3
4
int main() {
printf("Hello\n");
return 0;
}
Если нам не нужна нумерация строк, то убираем слово linenos.
Ссылки
Главная ссылка: How to get Pygments to work with Jekyll