slav0nic's blog

Заметки о python, linux и других занимательных вещах

Подсветка кода в 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">&quot;hello&quot;</span>\n</pre></div>'

Для смены способа подсветки кода необходимо лишь сменить hiliter, за вывод номеров строк отвечает параметр force_linenos (значения on/off).

Удобная штука;]

qmichi post on 2008-05-13 07:13:10
thank for your ebook
Ferroman post on 2008-07-18 19:21:35
Отлично! Попробую к textile прикрутить что-то похожее. Может уже есть. а может тоже на markdown перейду.

web.py