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

时间:2014-08-11 12:36:22

标签: python-sphinx read-the-docs

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

.. toctree::

    first
    second
    Index <:ref:`genindex`>

但这导致了

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

来自Sphinx并没有其他影响。

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

任何提示的TIA!

2 个答案:

答案 0 :(得分:9)

如果您了解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 :(得分:1)

怎么样:

.. toctree::

    first
    second

* :ref:`genindex`