2

在 rst2html 生成的 HTML 输出中,所有级别的节都带有“节”类。我可以配置吗?

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

如果我想对不同级别的部分应用不同的样式,如何解决这个问题?

4

2 回答 2

2

我通过编写自己的第一个编写器类继承 docutils.writers.html4css1.Writer 解决了这个问题,并在其构造函数中,将继承 docutils.html4css1.HTMLTranslator 的类 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 级的部分将获得一个 class section section2

于 2011-07-23T00:06:46.260 回答
0

你可以试试class指令。这是一个特定于 HTML 的指令,它允许为跟随它的元素设置任意类。完整的描述在这里:http ://docutils.sourceforge.net/docs/ref/rst/directives.html#class

这是一个例子:

常规标题
===============

.. 类:: myclass

类 myclass 的部分
******************************

常规款
于 2011-07-18T20:30:26.860 回答