在Sphinx中为文本块应用CSS和角色而不是内联跨度

时间:2012-10-15 17:10:54

标签: python-sphinx restructuredtext

a previous question解释了如何为某些reStructuredText添加颜色范围。

回顾一下程序:

首先,你有角色。

.. role:: red

An example of using :red:`interpreted text`

它转化为如下。

<p>An example of using <span class="red">interpreted text</span></p>

现在,你有了红色类,你可以使用CSS来改变颜色。

.red {
    color:red;
}

如果您想要跨越多行的文字,您如何做到这一点?例如:

.. role:: red

:red:`paragraph 1

      paragraph 2

      paragraph 3`

第1,2和2段; 3都将是“红色”。如果我尝试这样做,我会收到警告信息:

  

警告:内联解释的文本或短语引用start-string,不带结束字符串。

它不会创建跨度并在文本中插入“:red:”。它只是不将其解释为字符串(如警告所示)。

基本上,这可以在reStructuredText中完成,如果可以,怎么做?

我正在使用Sphinx 1.1.3。

1 个答案:

答案 0 :(得分:10)

有很多方法可以做到这一点,但其中一种方法是使用class指令:

.. class:: red

    This is a paragraph.

    This is another paragraph.

大多数docutils HTML编写者会将其作为类html属性放入html输出中,然后您可以使用CSS设置样式。

但是,在Sphinx中,至少在某些情况下,您可能需要使用rst-class而不是class。请参阅:http://sphinx.pocoo.org/rest.html#id3

此外,RestructuredText中的许多块级元素都采用:class:参数,这几乎完全相同。