在 Sphinx 中将 class 添加到 table?

Add a class to a table in Sphinx?

我首先有一个 table,我想在使用 Sphinx 编译为 HTML 时向其添加一个 class。根据 the docs,在 table 之前添加一个 .. class:: 指令应该将 class 添加到 table,但它会添加一个定义列表。

table代码是:

.. class:: special

== == ==
a  b  c
1  2  3
== == ==

这导致:

<dl class="class">
<dt id="special">
<em class="property">class </em><code class="descname">special</code><a class="headerlink" href="#special" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<table border="1" class="docutils">
<colgroup>
<col width="33%" />
<col width="33%" />
<col width="33%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td>a</td>
<td>b</td>
<td>c</td>
</tr>
<tr class="row-even"><td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
</table>

我做错了什么?我正在使用 Sphinx 1.3.1

Sphinx 默认域是 Python,它包含一个 class 指令,该指令隐藏了具有相同名称的原始 Docutils 指令。

要使其正常工作,请改用 rst-class

.. rst-class:: special

== == ==
a  b  c
1  2  3
== == ==

http://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#id2

或者您可以用 .. table:: 指令包装 table 并使用它的 :class: 选项:

.. table::
   :class: special

   == == ==
   a  b  c
   1  2  3
   == == ==

查看相应的 docutils 文档 here