Sphinx:自定义侧边栏部分标题

Sphinx: customize sidebar section titles

我正在用 Sphinx 记录我的 Python 项目。由于我的一些文档页面相当长,我想在边栏中同时包含本地和全局 table 内容。我通过

实现了这一点
html_sidebars = { '**': ['localtoc.html', 'globaltoc.html', 'searchbox.html'] }

结果几乎如愿。但是,内容的本地和全局 table 具有相同的标题 ("Table of Contents")。也就是看起来像

Table of Contents
 - Subheading 1
 - Subheading 2
 - Subheading 3

Table of Contents
 - Subpage 1
 - Subpage 2
 - Subpage 3

这让 reader 感到困惑。

我在 Python 安装的 sphinx 包文件夹中找到了文件 localtoc.html,根据我的需要调整 html(替换标题)很简单。但是,我不想更改 Sphinx 源文件,并且通过 python 包构建我自己的主题对我来说似乎太过分了。

有没有办法在本地替换 localtoc.html,即仅针对当前项目?

您可以覆盖 localtoc.html 模板的行为。

在您的 Sphinx 根目录(conf.py 文件所在的同一位置)创建一个 _templates 文件夹,然后将 localtoc.html 从您的 Sphinx 安装复制到此文件夹。

然后您可以根据需要修改此文件。删除此行:

<h3><a href="{{ pathto(master_doc) }}">{{ _('Table of Contents') }}</a></h3>

删除多余的标题,或者您可以根据需要替换任何文本(例如,将 <a> 的内容更改为 Local Contents 或任何您喜欢的内容。

请注意,更改 localtoc.html 会删除两个标题的 top。如果这是你想要的,太好了!如果没有,您可以以相同的方式使用 globaltoc.html 复制该过程。