22

我想在使用sphinx-rtd-theme. 我试过将它添加到目录树中:

.. toctree::

    first
    second
    Index <:ref:`genindex`>

但这导致

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

从狮身人面像,没有其他效果。

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

TIA 的任何提示!

4

2 回答 2

24

如果您了解 Sphinx 和 Jinja 的工作原理,这很容易。不幸的是,如果您不这样做,则有关模板的 Sphinx 文档不会为您提供足够的信息。简而言之,您必须覆盖模板:

  • 确保您_templates的 sphinx docs 文件夹下有一个文件夹。
  • 确保它列在你的conf.py,例如 templates_path = ['_templates']
  • 在文件夹中创建一个名为layout.html.
  • 将此片段放入并保存。感叹号/标记强制 jinja 使用父模板。不要忘记它,否则你会得到一个递归错误。您只需要覆盖该menu块。

    {% extends "!layout.html" %}
    
      {% block menu %}
        {{ super() }}
        <a href="genindex.html">Index</a>
      {% endblock %}
    
于 2016-06-15T19:08:05.837 回答
3

怎么样:

.. toctree::

    first
    second

* :ref:`genindex`
于 2015-02-25T00:43:25.307 回答