使用阅读文档主题时如何将Sphinx生成的索引添加到边栏?

问题描述 投票:14回答:2

我想在使用sphinx-rtd-theme时有一个指向侧栏中自动生成的索引的链接。我已经尝试将它添加到toctree:

.. toctree::

    first
    second
    Index <:ref:`genindex`>

但这导致了

WARNING: toctree contains reference to nonexisting document u':ref:`geinindex`'

从狮身人面像,没有其他影响。

我想我可以简单地在主题layout.html文件中对索引进行硬编码,但也许有更好的方法,不涉及修改标准主题?

TIA任何提示!

python-sphinx read-the-docs
2个回答
10
投票

如果您了解Sphinx和Jinja如何工作,这很容易。不幸的是,如果你不这样做,Sphinx docs on templating不会给你足够的信息。简而言之,您必须覆盖模板:

  • 确保sphinx docs文件夹下有_templates文件夹。
  • 确保它列在你的conf.py中,例如templates_path = ['_templates']
  • 在名为layout.html的文件夹中创建一个文件。
  • 把这个片段放在里面然后保存。感叹号/标记迫使jinja使用父模板。不要忘记它,否则你会得到一个递归错误。您只需要覆盖menu块。 {% extends "!layout.html" %} {% block menu %} {{ super() }} <a href="genindex.html">Index</a> {% endblock %}

1
投票

怎么样:

.. toctree::

    first
    second

* :ref:`genindex`
© www.soinside.com 2019 - 2024. All rights reserved.