Подсветка кода в markdown при помощи pygments
Решил прикрутить подсветку к markdown, благо он поддерживает плагины, но писать самоу не пришлось, ибо он уже написан и имя ему CodeHilite. Поддерживает 3 способа подсветки кода:
- GNU Enscript
- dp.SyntaxHighlighter
- Pygments
Для добавления к работе с mardown достаточно скачать mdx_codehilite.py и кинуть его с sys.path. Для работы с pygments необходимо сгенерировать css-файл подсветки кода ну и подключить его к странице в которой будет выводиться код:
pygmentize -f html -S colorful -a .codehilite > pygments.css
Далее всё просто:
>>> import markdown >>> txt = """ ... :::python ... #comment ... print "hello" ... """ >>> markdown.markdown(txt, ['codehilite(hiliter=pygments)']) u'<div class="codehilite"><pre><span class="c">#comment</span>\n<span class="k">print</span> <span class="s">"hello"</span>\n</pre></div>'
Для смены способа подсветки кода необходимо лишь сменить hiliter, за вывод номеров строк отвечает параметр force_linenos (значения on/off).
Удобная штука;]