|
サイズ: 1405
コメント:
|
サイズ: 3731
コメント:
|
| 削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
| 行 5: | 行 5: |
| [Markdown][1] と、その拡張記法である [Github Flavored Markdown (GFM)][2]、および [Markdown Extra][3] を使いたい。 Python 用の Markdown パーサー (python-markdown) があるのでそれをそのまま使うことにする。 |
[Markdown][1] と、その拡張記法である [Github Flavored Markdown (GFM)][2]、および [Markdown Extra][3] を同時に使いたい。 また、Markdown では html タグを直接記述することができるが、wiki で許可するには危険なので禁止したい。 Python 用の Markdown パーサー (python-markdown) があり、各種設定で上記が実現できる。 |
| 行 14: | 行 16: |
| 既に MoinMoin 用に、python-markdown に丸投げするパーサープラグインがある。 | 既に MoinMoin 用に、python-markdown に丸投げするパーサープラグイン ([Markdown Parser](http://moinmo.in/ParserMarket/Markdown)) がある。 |
| 行 17: | 行 19: |
| [Markdown Parser](http://moinmo.in/ParserMarket/Markdown) | [[Markdown/自作パーサー]] |
| 行 19: | 行 21: |
| 改変したものはこちら | 変更点 |
| 行 21: | 行 23: |
| [[Markdown/改変済みパーサー]] | - パーサーに渡す[引数](http://pythonhosted.org/Markdown/reference.html)を wikiconfig.py 中で指定できるようになった (markdownargs = {'option': 'value', }) - html タグを直接記述できなくするため、デフォルトで html タグをエスケープするようにした (safe_mode='escape') |
| 行 25: | 行 28: |
| python-markdown はプラグインで機能を拡張/変更することができる。 | python-markdown は [Extension](http://pythonhosted.org/Markdown/extensions/index.html) で機能を拡張/変更することができる。 |
| 行 30: | 行 33: |
| GFM, Markdown Extra を導入する。 GFM |
GFM, Markdown Extra を導入したい。 GFM について |
| 行 35: | 行 40: |
| Markdown Extra | Markdown Extra について |
| 行 37: | 行 44: |
#### Markdown Extra python-markdown にデフォルトで拡張機能が入っているので、有効にするだけでよい。 上記自作パーサーでは wikiconfig.py 中でパーサーに渡す引数を設定できるのでそれを利用する。 ```python markdownargs = { 'extension': ['extra'] } ``` もちろん、MoinMoin 側のプラグイン自体をいじって直接に引数を渡してやってもよい。 #### GFM [py-gfm](https://github.com/dart-lang/py-gfm) を導入する。python-markdown 用の extension. デフォルトでは入っていないので自前で取得してくる必要がある。 適当な場所にレポジトリを clone する。 ``` git clone https://github.com/dart-lang/py-gfm.git ``` clone したレポジトリへのパスを sys.path に追加して import できるようにする。 例えば、wikiconfig.py にそのように追記する。 ```python sys.path.insert(0, 'path/to/py-gfm') ``` さらに、wikiconfig.py 等でパーサーに渡す引数を設定する。 ```python markdownargs = { 'extensions': ['gfm'] } ``` 参考記事 - [MoinMoin で Markdown (Github Flavored Markdown) を使う](http://tototoshi.hatenablog.com/entry/2014/05/14/023149) (tototoshi の日記) - [Python で Github Flavored Markdown をレンダリングする](http://tototoshi.hatenablog.com/entry/2014/05/17/020241) (tototoshi の日記) #### その他の拡張 他にもいくつか[ビルトインの extension](http://pythonhosted.org/Markdown/extensions/index.html) が用意されている。 また、[他のサードパーティー製 extension](https://github.com/waylan/Python-Markdown/wiki/Third-Party-Extensions) もある。 |
MoinMoinでMarkdownを使う
Markdown と、その拡張記法である Github Flavored Markdown (GFM)、および Markdown Extra を同時に使いたい。
また、Markdown では html タグを直接記述することができるが、wiki で許可するには危険なので禁止したい。
Python 用の Markdown パーサー (python-markdown) があり、各種設定で上記が実現できる。
MoinMoin側プラグイン
既に MoinMoin 用に、python-markdown に丸投げするパーサープラグイン (Markdown Parser) がある。
これを一部改変して使う。
変更点
- パーサーに渡す引数を wikiconfig.py 中で指定できるようになった (markdownargs = {‘option’: ‘value’, })
- html タグを直接記述できなくするため、デフォルトで html タグをエスケープするようにした (safe_mode=’escape’)
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']
}
参考記事
- MoinMoin で Markdown (Github Flavored Markdown) を使う (tototoshi の日記)
- Python で Github Flavored Markdown をレンダリングする (tototoshi の日記)
その他の拡張
他にもいくつかビルトインの extension が用意されている。
また、他のサードパーティー製 extension もある。