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

如何在reStructuredText中引入文件时调整章节层级?

reStructuredText引入文件时调整章节层级的解决方案

标准reStructuredText的.. include::指令本身没有直接调整引入内容章节层级的选项,但有两种实用方法能满足你的需求,无需修改原文件:

方法1:用Sphinx的toctree替代include(推荐,适用于Sphinx构建的文档)

如果你的文档是用Sphinx构建的,直接把include换成toctree,通过嵌套结构和参数自动调整层级:

Main title
==========

Subtitle
--------
.. toctree::
   :hidden:  # 隐藏toctree本身的条目,只展示文件内的标题
   :maxdepth: 3

   file1  # 这里写文件名,不用加.rst后缀

.. include:: file2.rst

这样file1.rst里的2级标题会自动降级为3级,嵌套在Subtitle这个2级标题下,完全匹配你的新结构需求。

方法2:构建时动态替换标题下划线(适用于纯docutils场景)

如果不用Sphinx,可以在构建流程里加个临时替换步骤,把目标文件的2级标题下划线(---)换成3级的(~~~),生成临时文件后再引入,构建完成后删除临时文件。

比如写个Makefile片段:

build-docs:
	# 临时替换file1的标题下划线
	sed 's/^---$$/~~~/' file1.rst > file1_temp.rst
	# 生成HTML文档
	rst2html index.rst output.html
	# 删除临时文件
	rm file1_temp.rst

然后修改主文件的include指向临时文件:

Main title
==========

Subtitle
--------
.. include:: file1_temp.rst

.. include:: file2.rst

这样原文件完全不用改动,就能实现层级调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:33:27