Python sphinx 如何在Sphinx TOC中包含主页?

Python sphinx 如何在Sphinx TOC中包含主页?,python-sphinx,toctree,Python Sphinx,Toctree,假设我有一个狮身人面像项目,其来源如下: index.rst installation.rst templating/ index.rst module.rst fieldtype.rst index.rst(主页)具有以下目录树: .. toctree:: :titlesonly: installation templating/index 我希望我的模板包括一个侧栏,列出所有3个顶级页面(主页、安装、模板/索引) 我尝试在主页中添加第二个隐藏的

假设我有一个狮身人面像项目,其来源如下:

index.rst
installation.rst
templating/
    index.rst
    module.rst
    fieldtype.rst
index.rst(主页)具有以下目录树:

.. toctree::
   :titlesonly:

   installation
   templating/index
我希望我的模板包括一个侧栏,列出所有3个顶级页面(主页、安装、模板/索引)

我尝试在主页中添加第二个隐藏的目录树:

.. toctree::
   :hidden:

   index

.. toctree::
   :titlesonly:

   installation
   templating/index
这实际上给了我期望的结果,只是它将
下一个
变量设置为当前页面。因此,我的模板中有以下代码:

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() }}
下一步:
…始终从主页输出主页链接。不好

我一直试图将实际的主页链接硬编码到模板的侧栏中:

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() }}
{%set homeClass='current'如果pagename=='index'其他'%}
{{toctree()}}
这也行得通,只是我不想强制在web服务器的webroot上访问文档——我希望它们也能从文件系统中工作

我不能简单地将URL设置为“index.html”,因为当您位于templating/中的文件中时,这将不起作用


我错过了什么明显的东西吗?必须有一种方法可以使主页进入TOC,而不中断
next
链接,并且具有在本地文件系统上工作的动态路径,甚至可以从子文件夹中工作。

您是否可以重命名Sphinx项目的根目录树页面,或者重命名模板/索引页面?
master\u doc
变量允许您命名项目中包含根目录树指令的文件,而不必调用
index.rst
。。。在我们的文档项目中,为了解决类似的问题,我们有一个
模板/index.html
文件,我们的根目录树页面实际上被称为
参考。rst

结果是答案隐藏在斯芬克斯的:

特殊条目名称
self
表示包含目录树指令的文档。如果您想从目录树生成“站点地图”,这很有用

self
添加到TOC树中完美实现了这一技巧!如果您将其放在单独的隐藏目录树指令中,它也不会显示在主页的目录中:

.. toctree::
   :hidden:

   self


.. toctree::
   :titlesonly:

   installation
   templating/index

谢谢,但问题是把目录放回到主页上。我尝试使用rST“include”指令,但不起作用……而且
Home
将self链接重命名为“Home”,不幸的是
self
没有包含任何副标题(请参阅)。