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

Sphinx RTD Theme子标题嵌套显示异常问题求助

解决Sphinx + RTD主题侧边栏目录异常问题

问题根源

你用.. include::把整个README.rst导入到单个index.rst里,这种单文件结构会让Sphinx的文档树解析逻辑混乱。RTD主题的侧边栏导航依赖Sphinx正确识别文档的层级结构,而单文件里的二级标题(比如From PyPI)会被误识别为上一级标题(Installation)的子项,而非同级顶级章节。

具体解决步骤

  1. 拆分文档结构,放弃单文件导入
    把README里的各个大章节拆成独立的rst文件:

    • 将Description部分存为description.rst
    • Installation相关内容存为installation.rst
    • Usage和Implementation分别存为usage.rst、implementation.rst
      项目根目录的README.rst保留原样,文档源文件里不再直接include整个文件。
  2. 重构index.rst的toctree结构
    修改index.rst,用toctree明确指定文档层级:

    ################
    django-npi-field
    ################
    
    .. toctree::
       :maxdepth: 2
       :caption: 目录
    
       description
       installation
       usage
       implementation
    
  3. 修正RTD主题的导航配置
    在conf.py里调整主题参数,注意RTD主题用navigation_depth控制导航深度,而非普通的max_depth:

    html_theme = "sphinx_rtd_theme"
    html_theme_options = {
        "collapse_navigation": False,  # 先关闭折叠,确认层级正确后再按需开启
        "navigation_depth": 2,
    }
    
  4. 处理README内容复用(可选)
    如果需要在文档里复用README的内容,不要直接include整个文件,而是用精准截取的方式,比如:

    .. include:: ../README.rst
       :start-line: 5
       :end-line: 10
    

    只导入需要的段落,避免破坏文档树的层级结构。

  5. 消除AttributeError警告
    拆分文档后这个警告大概率会自动消失,如果还存在,检查各个rst文件里的链接定义、指令格式,比如确认外部链接的引用没有语法错误。

内容的提问来源于stack exchange,提问作者null-and-void

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:05:59