在rst2html生成的HTML输出中,所有级别的部分都具有类“section”,我可以配置吗?

时间:2011-07-10 16:32:35

标签: restructuredtext docutils

对不起我的英语不好,请给我一些耐心。谢谢!

因此,如果我想将自己的css应用于html输出,我就不能为顶级部分和子部分使用不同的样式,因为它们具有相同的类名?

如果我想将不同的样式应用于不同级别的部分,如何解决此问题?

谢谢!

2 个答案:

答案 0 :(得分:2)

我通过编写自己的第一个编写器类继承docutils.writers.html4css1.Writer解决了这个问题,并在其构造函数中为其指定了一个类HTMLTranslator的实例,将docutils.writers.html4css1.HTMLTranslator继承到其translator_class属性。 / p>

具体来说,在我的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

答案 1 :(得分:0)

您可以尝试class指令。这是一个特定于HTML的指令,它允许将任意类设置为其后面的元素。完整说明如下:http://docutils.sourceforge.net/docs/ref/rst/directives.html#class

以下是一个例子:

Regular header
==============

.. class:: myclass

Section with a class myclass
****************************

Regular paragraph