在 rst2html 生成的 HTML 输出中,所有级别的节都带有“节”类。我可以配置吗?
因此,如果我想将自己的 CSS 应用于 HTML 输出,我不能对顶级部分和子部分使用不同的样式,因为它们具有相同的类名?
如果我想对不同级别的部分应用不同的样式,如何解决这个问题?
在 rst2html 生成的 HTML 输出中,所有级别的节都带有“节”类。我可以配置吗?
因此,如果我想将自己的 CSS 应用于 HTML 输出,我不能对顶级部分和子部分使用不同的样式,因为它们具有相同的类名?
如果我想对不同级别的部分应用不同的样式,如何解决这个问题?
我通过编写自己的第一个编写器类继承 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
。
你可以试试class
指令。这是一个特定于 HTML 的指令,它允许为跟随它的元素设置任意类。完整的描述在这里:http ://docutils.sourceforge.net/docs/ref/rst/directives.html#class
这是一个例子:
常规标题 =============== .. 类:: myclass 类 myclass 的部分 ****************************** 常规款