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を読み込ませてあげれば無事シンタックスハイライト付きでコードが表示できます。
めでたしめでたし。