在rst2html生成的HTML输出中,各级节都是类“section”,我可以配置它吗?

发布于 2024-11-19 11:28:58 字数 161 浏览 4 评论 0原文

在 rst2html 生成的 HTML 输出中,各级节都具有类“section”。我可以配置它吗?

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

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

In the HTML output generated by rst2html, sections at all levels are all with class "section". Can I config it?

Thus, if I want apply my own CSS to the HTML output, I just can not use different styles for top-level section and sub-section, because they have the same class name?

How to solve this problem if I want to apply different styles to sections at different level?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难以启齿的温柔 2024-11-26 11:28:59

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

I have solved this problem by writing my own rst writer class Inheriting docutils.writers.html4css1.Writer, and in its constructor, assign it a instance of class HTMLTranslator Inheriting docutils.writers.html4css1.HTMLTranslator to its translator_class attribute.

Specifically, in my HTMLTranslator class, the method visit_section is overridden::

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

Thus, section at level 2 will get a class section section2.

萝莉病 2024-11-26 11:28:59

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

这是一个示例:

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

.. class:: myclass

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

Regular paragraph

You might give a try to class directive. This is an HTML-specific directive and it allows setting an arbitrary class to the elements that follow it. The full description is here: http://docutils.sourceforge.net/docs/ref/rst/directives.html#class

Here is an example:

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

.. class:: myclass

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

Regular paragraph
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文