markdownをシンタックスハイライト付きでHTMLにしてみる

やりたいこと

このサイトにもコードを張り付けることがあるわけですが、そのままではどうにも見づらい。
というわけで、markdownをシンタックスハイライト付きでHTMLにできたらいいなぁ

やってみる

今回はGFM(Github Flavored Markdown)拡張を利用してmarkdownのレンダリングを行ってみます。

必要なモジュールのインストール

pip install markdown py-gfm Pygments  

この際に、Pygmentsはなくても動作はするのですが、出力されるHTMLに付くタグの種類が変わってしまいますので忘れずに入れるようにします。

実際に変換する

import markdown as md
html = md.markdown(マークダウンのテキスト, extentions=["gfm"])

これでシンタックスハイライトに必要なタグやらクラスやらがくっついたHTMLが取得できる。

サンプル

上記の方法でマークダウンのテキストにシンタックスハイライトをつけるとこんな感じになります。

### マークダウンのサンプル  

```py
import markdown

print("md")
```
<p>
<h3 id="マークダウンのサンプル">マークダウンのサンプル</h3>
<div class="highlight">
<pre>
<span></span>
<span class="kn">import</span> <span class="nn">markdown</span>

<span class="k">print</span><span class="p">(</span><span class="s2">"md"</span><span class="p">)</span>
</pre>
</div>
</p>

あとは、cssを読み込ませてあげれば無事シンタックスハイライト付きでコードが表示できます。
めでたしめでたし。