内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
假设我有一个Sphinx项目,其中包含以下来源:
index.rst
installation.rst
templating/
index.rst
module.rst
fieldtype.rst
index.rst具有以下TOC树:
.. toctree::
:titlesonly:
installation
templating/index
我试过在主页上添加第二个隐藏的TOC树:
.. toctree::
:hidden:
index
.. toctree::
:titlesonly:
installation
templating/index
这实际上给了我想要的结果,除了它使next
变量设置为当前页面。所以这个代码在我的模板中:
Next up: <a href="{{ next.link }}">{{ next.title }}</a>
我一直试图将实际的主页链接硬编码到模板的边栏中:
{% set homeClass = 'current' if pagename == 'index' else '' %}
<ul class="{{ homeClass }}">
<li class="toctree-l1 {{ homeClass }}"><a class="{{ homeClass }} reference internal" href="/index.html">Home</a></li>
</ul>
{{ toctree() }}
答案隐藏在Sphinx的TOC树页面上:
特殊条目名称
self
代表包含toctree指令的文档。如果您想从toctree生成“站点地图”,这很有用。
添加self
到TOC树完美的技巧!如果你把它放在一个单独的,隐藏的toctree指令中,它不会出现在主页的目录中:
.. toctree::
:hidden:
self
.. toctree::
:titlesonly:
installation
templating/index
你可以重命名你的Sphinx项目的根目录页面,或者,也可以是模板/索引页面?这个master_doc
变量可以让你在你的项目中命名包含root toctree指令的文件,并且不必index.rst
在我们的文档项目中调用...来解决这个问题,我们有一个template/index.html
文件和我们的根目录页面实际上被调用reference.rst
。