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
没有包含任何副标题(请参阅)。