日本語でreStructuredText
実のところ、私はあんまり reStructuredText /Shinx が好きではない。Markdown と比べるとシンプルさで劣り、TeXと比べると印字品質で劣る。この辺の中途半端さが、restを愛せない大きな理由だが、もう一点、日本語の文章を書くのに適切なマークアップ言語ではない、というのも大きい。英語などの、単語と単語の間にスペースがある言語向けに設定されており、日本語で書こうとするとイライラが溜まってどうしょうもないのだ。
とはいえ、SphinxはPythonの公式ドキュメントで使われているツールでもあり、ちょっと複雑なドキュメントを書くには Pandoc を使うよりは便利なことも多いので、ある程度は使えるようにしてみたい。ということで、私が使っていて一番イライラする、インラインマークアップの改善に取り組んでみた。
通常のrestでは、インラインマークアップの前後に空白や区切り文字が必要なため、
restは*うざい*!
とは書けない。
restは\ *うざい*\ !
などと書かなければならない。実にうざいので、スペース無しでもマークアップとして認識できるようにしてみた。
このパッチでは、前後のスペースや区切り文字などのチェックをいっさいチェックせず、`*` などの記号は全てマークアップとなる --no-inline-delimiters オプションを追加している。
$ rst2html.py --no-inline-delimiters sample.rst
ディレクティブでも指定できる。
.. no-inline-delimiters yes ここでは*普通に*マークアップを書ける .. no-inline-delimiters no ここでは\ *書けない*\ !
この方式で日本語環境でも使いやすくなったのではないかと思うが、どうだろうか?現在わかっている問題点として、アンダーラインを含んだ英単語がマークアップとして認識されてしまう、という点がある。
mod_wsgi
とすると、これは mod へのリンクと解釈されてしまうので
mod\_wsgi
と書かなければならない。許容範囲といえば許容範囲な気もするが、できれば治したい気もする。他にもなにか落とし穴があるかもしれない。気がついた点があれば、こちら で議論に参加していただきたい。
知らなかったが、Docutilsの開発者 David Goodger さんの奥様は日本人だそうで、Davidさんも日本語の知識がおありだそうだ。このパッチについても前向きに検討して頂いてる雰囲気なので、興味や意見があれば、ぜひともご協力いただきたい。