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
复制该过程。
我正在用 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
复制该过程。