You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Sphinx文档构建时隐藏单个章节?求对应directive

解决RST文档构建时隐藏单个章节的问题

RST本身并没有原生的.. hidden::指令,但有几种实用方法可以实现你想要的“构建时隐藏单个章节”的需求,下面给你详细说明:

方法1:使用原生only指令(无需额外配置)

Sphinx和大部分RST解析器都支持.. only::条件编译指令,你可以用never作为条件,让指定内容在任何输出格式中都被忽略:

Visible section
===============
这里是我想要展示的示例内容

.. only:: never

   Not visible section
   ===================
   这是我编写的文本,但当前构建时希望将其从最终文档中隐藏。

把需要隐藏的章节缩进后放在.. only:: never的块里,这样不管是生成HTML、PDF还是其他格式,这个章节都不会出现在最终产物中。

方法2:自定义hidden指令(完全贴合你的设想)

如果你更偏好.. hidden::这种直观的写法,可以通过Sphinx扩展自定义一个简单的指令,让它不输出任何内容。只需要在你的文档项目的conf.py中添加以下代码:

from docutils.parsers.rst import Directive
from docutils import nodes

class HiddenDirective(Directive):
    has_content = True
    def run(self):
        # 直接返回空列表,不生成任何文档节点
        return []

def setup(app):
    app.add_directive('hidden', HiddenDirective)

之后你就可以完全按照你设想的方式使用了:

Visible section
===============
这里是我想要展示的示例内容

.. hidden::

   Not visible section
   ===================
   这是我编写的文本,但当前构建时希望将其从最终文档中隐藏。

额外提示:如果要隐藏整个文件

如果你的需求是隐藏整个RST文件,而不是单个章节,可以在conf.py中修改exclude_patterns配置,把目标文件路径加进去:

exclude_patterns = ['path/to/your/hidden_file.rst']

不过这个方法只适用于整文件隐藏,不适合单个章节的场景。

内容的提问来源于stack exchange,提问作者matteo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:26:00