DjangoでreStructuredText
探し方が悪かったのか、見つけるのに手間取った。でもその割に設定はすごく簡単だったというオチ。まあそもそも素のdjangoで出来るという考えが全くなかったのがいけない。
まず、docutilsがインストールされてないと元も子もないので、無ければインストールする。
$ pip install docutils
続いて、settings.pyのINSTALLED_APPSにdjango.contrib.markupを追加する。
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', ... 'django.contrib.markup', # これ追加 ... )
あとはテンプレート中に {% load markup %} を追加して、ReSTなテキストに対して restructuredtext というテンプレートフィルターをかませば、htmlに変換されて表示される。
{% load markup %} ... <div id="article-body"> {{ article.body|restructuredtext }} </div> ...
ちなみに、細かい挙動のカスタマイズに関しては、settings.pyのなかに
RESTRUCTUREDTEXT_FILTER_SETTINGS = {'initial_header_level': 3}
みたいにすることで制御することができるらしい。
参考:DjangoでreStructuredTextではまった点のメモ - 偏った言語信者の垂れ流し