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

jmq*_*jmq 12 restructuredtext python-sphinx

先前的问题,解释如何将色彩范围增加了一些新结构化.

回顾一下这个程序:

首先,你有这个角色.

.. role:: red

An example of using :red:`interpreted text`
Run Code Online (Sandbox Code Playgroud)

它转化为如下.

<p>An example of using <span class="red">interpreted text</span></p>
Run Code Online (Sandbox Code Playgroud)

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

.red {
    color:red;
}
Run Code Online (Sandbox Code Playgroud)

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

.. role:: red

:red:`paragraph 1

      paragraph 2

      paragraph 3`
Run Code Online (Sandbox Code Playgroud)

第1,2和3段都是"红色".如果我尝试这样做,我会收到警告消息:

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

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

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

我正在使用Sphinx 1.1.3.

Kev*_*orn 11

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

.. class:: red

    This is a paragraph.

    This is another paragraph.
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 你在sphinx中使用`rst-class`是正确的.我不得不使用它来使它工作,但它现在的工作就像我想要的那样.谢谢. (3认同)