2

rst2html によって生成された HTML 出力では、すべてのレベルのセクションがすべて「section」というクラスになっています。設定できますか?

したがって、独自の CSS を HTML 出力に適用したい場合、トップレベルのセクションとサブセクションに異なるスタイルを使用することはできません。それらは同じクラス名を持っているからです。

異なるレベルのセクションに異なるスタイルを適用したい場合、この問題を解決するにはどうすればよいですか?

4

2 に答える 2

2

この問題を解決するには、独自の最初のライタークラスInheriting docutils.writers.html4css1.Writerを作成し、そのコンストラクターで、クラスHTMLTranslatorInheritingdocutils.writers.html4css1.HTMLTranslatorのインスタンスをtranslator_class属性に割り当てます。

具体的には、私のHTMLTranslatorクラスでは、メソッドvisit_sectionはオーバーライドされます::

def visit_section(self, node):
    self.section_level += 1
    self.body.append(
        self.starttag(node, 'div', CLASS='section section%d' % self.section_level))

したがって、レベル2のセクションはクラスを取得しsection section2ます。

于 2011-07-23T00:06:46.260 に答える
0

classディレクティブを試してみてください。これは HTML 固有のディレクティブであり、それに続く要素に任意のクラスを設定できます。完全な説明はここにあります: http://docutils.sourceforge.net/docs/ref/rst/directives.html#class

次に例を示します。

通常のヘッダー
==============

.. クラス:: マイクラス

クラス myclass を含むセクション
****************************

通常の段落
于 2011-07-18T20:30:26.860 に答える