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

Sphinx侧边栏导航如何仅显示.rst文件标题?

解决sphinx_press_theme侧边栏仅显示页面标题的问题

我之前折腾这个主题的时候也碰到过类似的导航显示问题,结合你的文档结构和需求,咱们一步步来调整:

问题根源

sphinx_press_theme的侧边栏导航逻辑和Sphinx默认主题差异挺大的——默认主题会按toctree的层级展示页面+页面内子标题,而这个主题默认可能会优先渲染页面内的子标题,反而漏了嵌套目录下的独立页面标题(比如你的About页面)。

具体解决方案

1. 调整toctree的核心配置

首先修改index.rst里的toctree,确保直接列出所有需要在侧边栏显示的.rst文件,并把maxdepth设为1(这样只会抓取每个页面的主标题,不会拉取页面内的子标题):

.. toctree::
   :maxdepth: 1
   :caption: Contents:

   introduction/introduction
   introduction/about/about

⚠️ 注意:如果你的introduction/introduction.rst里还嵌套了指向about页面的toctree,一定要删掉它——否则主题会把About当成Introduction的子项,而不是独立的侧边栏条目。

2. 配置主题的侧边栏深度

在conf.py里添加html_theme_options,强制主题只展示一级导航(也就是页面主标题),不渲染页面内的子标题:

html_theme = "sphinx_press_theme"
html_theme_options = {
    "sidebar_depth": 1,
}

3. 确保页面主标题格式正确

每个.rst文件的主标题必须用一级标题格式(标题文本下方用等号下划线),这样Sphinx才会把它识别为页面的顶级标题,进而在导航中显示:
比如introduction/about/about.rst的开头应该是:

About
=====

这里是About页面的内容...

4. 重新构建文档

执行构建命令更新静态文件:

make html

这样调整后,侧边栏应该就只会显示你想要的Contents: Introduction About这几个页面标题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 09:17:47