我如何在Sphinx目录中包含主页?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (75)

假设我有一个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

扫码关注云+社区

领取腾讯云代金券