2012年1月時点で日本語でSphinxを使う時のストレスを減らす拡張機能

最近 Twitter を見ていたら

というのを見かけました。
この Sphinx 拡張は @shibukawa の渋日記: 日本語でSphinxを使う時のストレスを減らす拡張機能 をベースにして、
ディレクティブなどへの対応を行ったもののようです。

当初、@shibukawa はこの Sphinx 拡張の目的をこんな風に説明をしていました。

Sphinxで日本語を書くときに、日本語の途中で改行を入れると、そこに空欄の文字が入ってしまい、
ブラウザで見るときにちょっと見た目が悪くなったりします。
まぁ、これはSphinxのせいというよりも、ブラウザのせいですが。

どういうことでしょうか。見てみるとわかりやすいので、実際に試してみます。
Sphinx に以下の文章を与えて HTML 化してみます。

改行を含んだ日本語を
使ってみると Sphinx では改行の部分に
空白が含まれてしまいます。

.. warning::

   ディレクティブの中でも
   同じように改行が空白に
   見えてしまいます。

HTML 化したものがこちらです。

@shibukawa の指摘通り、改行があった部分に空白が入ってしまいますね。
("日本語を" や "ディレクティブの中でも" の後ろの部分を見てみてください)
大きな問題ではないものの、ちょっと気になりますね。

では、@hinaclegear さんの新しい japanesesupport.py を使ってみましょう。
インストールは bitbucket からファイルを持ってくるだけです。

% mkdir -p lib
% wget -O lib/japanesesupport.py 'https://bitbucket.org/hinaclegear/attachments/raw/5c23420125f4/20120113_japanesesupport.py'

あとは conf.py に設定を書き足しておきます。

sys.path.insert(0, os.path.abspath('lib'))
extensions += ['japanesesupport']

インストールはこれだけです。
あとは普段通り HTML 出力をすると自動的に Sphinx 拡張が動いてくれます。

japanesesupport.py を有効にして HTML に変換するとこんなふうになります。

改行の代わりにでていた空白がなくなってすっきりしましたね。

今回は便利な Sphinx 拡張である japanesesupport.py の紹介でした。