【发布时间】:2018-05-26 03:33:55
【问题描述】:
如何让我的 Sphinx RST 文件包含指向“contents.html”Python 帮助页面的链接?
更多详情
我有一个离线环境中的 RST 帮助文档 (index.rst)。我已经使用命令make.bat html 下载并成功构建了 Python 文档。然后我将此文档复制到 C:\Temp\PyDoc。
然后我更新了我的 conf.py 文件以包含以下 Intersphinx 映射:
intersphinx_mapping = {'python': ('C:/Temp/PyDoc', None)}
然后,在我的 index.rst 文件中,我有类似的内容:
Contents:
.. toctree::
:maxdepth: 1
:ref:`Python <python:contents>`
Python 链接已从生成的文档中删除,并带有警告消息:
警告:toctree 包含对不存在文档':ref:`Python
`'的引用
我已验证输出包含文本:
从 C:/Temp/PyDoc/objects.inv 加载 intersphinx 库存...
我还通过运行验证了 Python 文档中存在“内容”标签:
python -m sphinx.ext.intersphinx "C:/Temp/PyDoc/objects.inv" | findstr contents
生成包含该行的输出:
contents Python 文档内容 :contents.html
有人知道如何从我的 RST 文件中引用这个外部文档吗?
【问题讨论】:
-
如果你使用
:any:而不是:ref:,它是否有效? -
很遗憾,没有。我收到了同样的警告,但
:ref:被:any:取代。 -
无论如何,我不希望
:ref:起作用,因为该角色用于交叉引用诸如.. _contents:之类的显式标签。您要链接的页面不包含任何标签(请参阅github.com/python/cpython/blob/3.6/Doc/contents.rst)。 -
我没有尝试在本地创建文档。
:any:`Python <python:contents>`对我有用,如果它是一个常规的内联交叉引用(不是目录树项),使用intersphinx_mapping = {'python': ('https://docs.python.org/3', None)}。
标签: python-sphinx toctree