Add a class to a table in Sphinx?

拟墨画扇 提交于 2019-12-17 20:35:47

问题


I have a table in rst, and I want to add a class to it, when compiling to HTML with Sphinx. According to the docs, adding a .. class:: directive before the table should add the class to the table, but instead it adds a definition list.

The table code is:

.. class:: special

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

which results in:

<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>

What am I doing wrong? I'm using Sphinx 1.3.1


回答1:


The Sphinx default domain is Python and it contains a class directive which shadows the original Docutils directive with the same name.

To make it work, use rst-class instead:

.. rst-class:: special

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

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




回答2:


Alternatively you could instead wrap your table with a .. table:: directive and use its :class: option:

.. table::
   :class: special

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

See the corresponding docutils docs here.



来源:https://stackoverflow.com/questions/33493589/add-a-class-to-a-table-in-sphinx

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!