SphinxでCSSのclassを変更する

r_rudiさんから引き継ぎました、 Sphinx アドベントカレンダー 2012 21日目です。

Sphinx MLから拾ってきた小ネタです。

Figureをセンタリングしたい

figureやimageを使って画像を貼り付けたはいいけど、センタリングしたい! と言うときがあるかと思います。

そういうときは、以下のように、 :figclass: オプションをつけてみましょ う。こうすると、CSSのクラスに指定したクラスが付け加わります。

.. figure:: hoge.png
   :figclass: align-center

この例では align-center というクラスが加わり、センタリングされます。

デフォルトのテーマでは

  • align-center

  • align-right

  • align-left

が設定されていますので、お好みに応じて設定すると良いと思います。

あるいは、自分でCSSを定義しておき、好きなクラスを振ることもできます。 また、空白区切りで複数書くこともできます。

classオプション

さて、このfigclass、実は他のディレクティブにも使える場合があります。

.. csv-table:: Frozen Delights!
   :class: something-special-class

   "Albatross", 2.99, "On a stick!"
   "Crunchy Frog", 1.49, "If we took the bones out"
   "Gannet Ripple", 1.99, "On a stick!"

こんな感じで例えばcsv-tableにも設定出来ます。

詳しくは ディレクティブの紹介 を参照してく ださい。

classディレクティブ

上のはディレクティブに対するオプションでした。でも、たまには「このパラ グラフにクラスを適用したい!」ということもあるでしょう。

そういう場合には、 rst-class ディレクティブを使います。

.. rst-class:: hoge

   ほげですよ

こう書くと、「ほげですよ」の部分がhogeクラスとなります。

なお、通常のdocutilsでは class ディレクティブを使うのですが、 Sphinxではデフォルトドメインに class ディレクティブが存在するため、この ディレクティブはそのままでは使用することができません。そのため、 rst-class という名前で再定義されています。

この辺は reStructuredText入門 を参照してください。

まとめ

今回は表示のときにクラスを制御するというちょっとしたtipsでした。

明日は @Harrison さんです。よろしくお願いします。

Comments

comments powered by Disqus