<Python, Markdown, Pygments> markdown + Pygments の使い方。
ようやくわかったのでメモ。
markdown
モジュールを使って、markdown
をhtml
に変換。
それをsyntax highlight
効かして表示するには、Pygments
のcss
を埋め込まないといけんらしい。
ipython notebook
でちと試す。
In [1]: from markdown import markdown In [2]: a = ''' ...: ```python ...: import os ...: def hage(): ...: print('Hi, Hage') ...: ``` ...: ''' In [3]: from IPython.core.display import display, HTML In [4]: b = markdown(a, extensions=['extra', 'codehilite']) #b = markdown(a, extensions=['tables', 'fenced_code', 'codehilite', 'nl2br', 'def_list']) In [5]: b Out[5]: '<div class="codehilite"><pre><span></span><span class="kn">import</span> <span class="nn">os</span>\n<span class="k">def</span> <span class="nf">hage</span><span class="p">():</span>\n <span class="k">print</span><span class="p">(</span><span class="s1">'Hi, Hage'</span><span class="p">)</span>\n</pre></div>\n\n\n<p><strong>A</strong></p>\n<p><code>a</code></p>' In [6]: css = ''' ...: <style type='text/css'> ...: <!-- ...: .codehilite .hll { background-color: #ffffcc } ...: .codehilite { background: #f0f0f0; } ...: .codehilite .vg { color: #bb60d5 } /* Name.Variable.Global */ ...: .codehilite .vi { color: #bb60d5 } /* Name.Variable.Instance */ ...: .codehilite .il { color: #40a070 } /* Literal.Number.Integer.Long */ ...: --> ...: </style> ...: ''' In [7]: c = css + b In [8]: display(HTML(c))
で、
import os def hage(): print('Hi, Hage')
となる。
じゃじゃーん。
埋め込むcss
はコマンドラインで下記を叩けば ずらずらっと 出てくる。
>pygmentize -S default -f html -a .codehilite
markdown
はextensions
を指定しないといけんよ。
マニュアル群