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

时间:2020-02-12 05:29:28

标签: python python-sphinx sidebar tableofcontents

我正在用Sphinx记录我的Python项目。由于我的一些文档页面相当长,因此我希望在侧边栏中同时具有本地和全局目录。我通过实现

html_sidebars = { '**': ['localtoc.html', 'globaltoc.html', 'searchbox.html'] }

结果几乎是期望的。但是,本地目录和全局目录都具有相同的标题(“目录”)。也就是说,看起来像

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

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

这使读者感到困惑。

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

是否有任何方法可以在本地替换localtoc.html,即仅替换当前项目?

1 个答案:

答案 0 :(得分:1)

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

在Sphinx根目录(位于_templates文件所在的位置)中创建一个conf.py文件夹,并将localtoc.html从Sphinx安装复制到该文件夹​​。

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

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

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

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