猿问

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

我正在用 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

这让读者感到困惑。


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


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


海绵宝宝撒
浏览 120回答 1
1回答

holdtom

您可以覆盖localtoc.html模板的行为。_templates在您的 Sphinx 根目录(与您的conf.py文件所在的位置相同)中创建一个文件夹,然后localtoc.html从您的 Sphinx 安装复制到此文件夹。然后,您可以根据需要修改此文件。删除这一行:<h3><a&nbsp;href="{{&nbsp;pathto(master_doc)&nbsp;}}">{{&nbsp;_('Table&nbsp;of&nbsp;Contents')&nbsp;}}</a></h3>摆脱多余的标题,或者您可以根据需要替换任何文本(例如更改<a>to的内容Local Contents或您喜欢的任何内容。请注意,更改localtoc.html删除两个标题的顶部。如果这是你想要的,太好了!如果没有,您可以globaltoc.html以相同的方式复制该过程。
随时随地看视频慕课网APP

相关分类

Python
我要回答