MoinMoinでMarkdownを使う

Markdown と、その拡張記法である Github Flavored Markdown (GFM)、および Markdown Extra を同時に使いたい。
また、Markdown では html タグを直接記述することができるが、wiki で許可するには危険なので禁止したい。

Python 用の Markdown パーサー (python-markdown) があり、各種設定で上記が実現できる。

MoinMoin側プラグイン

既に MoinMoin 用に、python-markdown に丸投げするパーサープラグイン (Markdown Parser) がある。
これを一部改変して使う。

Markdown/自作パーサー

変更点

python-markdown の設定

python-markdown は Extension で機能を拡張/変更することができる。
これを使って GFM 対応等々の拡張を施す。

記法の拡張

GFM, Markdown Extra を導入したい。

GFM について

Markdown Extra について

Markdown Extra

python-markdown にデフォルトで拡張機能が入っているので、有効にするだけでよい。
上記自作パーサーでは wikiconfig.py 中でパーサーに渡す引数を設定できるのでそれを利用する。

    markdownargs = {
        'extension': ['extra']
    }

もちろん、MoinMoin 側のプラグイン自体をいじって直接に引数を渡してやってもよい。

GFM

py-gfm を導入する。python-markdown 用の extension.
デフォルトでは入っていないので自前で取得してくる必要がある。

適当な場所にレポジトリを clone する。

git clone https://github.com/dart-lang/py-gfm.git

clone したレポジトリへのパスを sys.path に追加して import できるようにする。
例えば、wikiconfig.py にそのように追記する。

    sys.path.insert(0, 'path/to/py-gfm')

さらに、wikiconfig.py 等でパーサーに渡す引数を設定する。

    markdownargs = {
        'extensions': ['gfm']
        }

参考記事

その他の拡張

他にもいくつかビルトインの extension が用意されている。
また、他のサードパーティー製 extension もある。

html タグの禁止

パーサーへの引数 safe_mode を適切に設定してやればよい。
デフォルトでは許可するようになっている。
上記自作プラグインでは safe_mode=’escape’ をデフォルトとした。
変更するには wikiconfig.py 中で以下のようにする。

    markdownargs = {
        'safe_mode': '設定値'
    }

Moin/Markdown (最終更新日時 2014-05-21 14:17:15 更新者 dossist)