Sphinxで打ち消し線を使う


2012年 04月 27日

Sphinx のベースになっている reST フォーマットには打ち消し線用の書式がありません。
ですが、お仕事で文書を書いていると「ある仕様がなくなったこと」を示したいことがあるため、
稀に打ち消し線を使いたくなることがあります。

周りの人に聞いてみたところ、テーマをいじる方法や
各 reST におまじないを書く方法などを教えてもらったのですが、
ふとした時に使いたくなっても忘れてしまいそうな印象を受けました。

そこで打ち消し線を簡単に使えるよう、簡単な拡張を作ってみました。
Sphinx プロジェクトのディレクトリに以下の内容を sphinxcontrib_roles.py という名前で保存します。
次に conf.py の末尾に以下の記述を追加します。
ここでは strike、red という二つのロールを定義しています。 CSS の定義でそれぞれ打ち消し線表示、赤い文字にする、という表示にしています。 あとは reST 本文の中でこれらのロールを指定するだけです。 たとえば :strike:`ここは打ち消し線表示` と書いて HTML ファイルを生成すると 以下のように出力されます。 define_roles.png HTML 以外のフォーマットでは効果がありませんが、 HTML 出力はよく使われると思うので程よくマークアップすると良いと思います。 ただ、見た目ばかりに気を取られると Sphinx(reST) のメリットが薄れていくのでご注意を。