Nikola を windows でやるぞ [1.5] markdown拡張
ほとんど python-markdown の話かもしれない。
もう粗方環境は整ったんだけど、Nikola での markdown の仕様をもう少し見ておかないとなと。
Jekyll では kramdown を使っていたので、kramdown で重宝してた機能があると嬉しみ…とはいえ
{:.class #id}
の記法
くらいですね。その他はいい感じであってくれ~~
ちなみに、kramdown そのものでいいって人は、プラグインにコンパイラがあるからそれを使おう。 おかゆは、せっかく python のジェネレータ使ってるんだからここで ruby のコンパイラ使いたくないってので抗います。
python-markdown
pip install markdown
でインスコされるコンパイラは python-markdown と呼ばれるらしくて、
Nikola を windows でやるぞ [0] - ゆくゆくは有へと で導入した markdownの設定がそれにあたる。
で、この python-markdown は、色々拡張を盛り込めるのだワーイ
で、どのエクステを使うかというのを Nikola では conf.py
の MARKDOWN_EXTENSIONS
に書く。
MARKDOWN_EXTENSIONS = ['codehilite', 'extra']
ひとまずこれにしておいた。extra は色々いい感じのが入ったセットで、
- Abbreviations :
[略語] : 正式名称
形式 - Attribute Lists :
{:.CLASS}
のやつ(!) - Definition Lists : 定義タグまわりのやつ(kramにもある)
- Fenced Code Blocks : コードを
~~~~
で囲めるやつ - Footnotes : 脚注リンクできるやつ
- Tables : 表つくれる
- Smart Strong :
I__love__you
の "love" が強調されずにすむ。
が入ってる。十分やんけ
公式エクステ
サードパーティのエクステもあるけど、魔改造はいざ他に移れなくなっちゃうと怖いので、とりあえず公式エクステの他のも見てみる。他には
- Admonition :
!!! danger
とかができる。 - CodeHilite : コードをハイライトしてくれるクールガイ(Pygments使用)
- Meta-Data : yaml 的な感じで文書のトップに色々書ける
- New Line to Break : mdの改行が反映される(スペース2つでなく)
- Sane Lists : リストが正気になる(いやマジで)
- SmartyPants : 終わり引用符とかをスマートにしてくれる。
- Table of Contents : ページ頭に目次作ってくれる。
- WikiLinks : ウィキリンク張ってくれる
とりあえず、Admonition, Sane Lists, Table of Contents を入れたよ
MARKDOWN_EXTENSIONS = ['codehilite', 'extra', 'admonition', 'sane_lists', 'toc']
これだけでもだいぶ素敵なmarkdownライフが送れそうだ。
数式表示
ちょっと待って、mathjax が入ってへんやん!
mathjax は python-markdownだけを使う限りでは サードパーティ使えってことらしい(kramではあったのにね)
Nikola は mathjax を盛り込んであります。ヒュー!
https://getnikola.com/handbook.html#math
ただし、デフォルトで使えるようになってるわけでなく、
To use mathematics in a post, you must add the mathjax tag.
なので、数式を使う投稿のタグに mathjax
を入れておきます。
たとえば、HTMLなら Euler’s formula: \(e^{ix} = \cos x + i\sin x\)
markdown だと両端の backslash が markdown処理されてしまうので二重にしておく。
Euler’s formula: \\(e^{ix} = \cos x + i\sin x\\)
インラインはこれしか使えず($...$
はダメ)、スタンダロンでは \[...\]
と $$...$$
が使える。
これで kramdown 以上の markdown 環境が整った気がするぞい。