如何在 reStructuredText 指令选项中指定空格或空字符串?

Jas*_*n S 5 restructuredtext python-sphinx

我想要一个空字符串或一个空格作为标题 - 我该怎么做?

.. code-block:: c
   :name: forever
   :caption: ""

   for (;;)
   {
     ;
   }
Run Code Online (Sandbox Code Playgroud)

这不起作用,我收到一条错误消息;如果我使用" "输出中显示的引号。

G. *_*lde 1

这取决于相关选项,请参阅下面的“代码块” :caption:

\n

rST标记规范规定:“指令选项是使用字段列表指示的;字段名称和内容是特定于指令的。”\n字段列表可能有一个空的 field_body,因此空字符串的最简单输入就是一个空字符串。\nA工作示例是

\n
.. image:: foo.png\n   :alt:\n
Run Code Online (Sandbox Code Playgroud)\n

空字符串会覆盖该值(图像 URI),HTML 浏览器在渲染 HMTL 输出时将默默地忽略丢失的图像。

\n

其他选项(例如:class:或“sidebar”指令的:subtitle:)在没有值的情况下使用时会引发异常。这也适用于 Sphinx 添加的“代码块”指令中的 :caption: 。

\n

然而, :caption: 值被解析为内联 reStructuredText(不幸的是,详细信息未记录),因此任何不生成可见输出的构造都可以用于获取空标题。

\n

我的建议是使用空的\xc2\xb9 注释:

\n
.. code-block:: c\n   :name: forever\n   :caption: ..\n\n   for (;;) { ; }\n
Run Code Online (Sandbox Code Playgroud)\n

另一种方法是定义并使用空格字符的替换,例如

\n
.. |space| unicode:: 32 \n\n.. code-block:: c\n   :name: forever\n   :caption: |space|\n\n   for (;;) { ; }\n
Run Code Online (Sandbox Code Playgroud)\n

\xc2\xb9与标准 rST 字段正文中的注释相反, 后面的内容..不会被抑制。

\n