如何让我的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 <python:contents>
‘的引用
我已经验证了输出中包含以下文本:
正在从C:/Temp/PyDoc/objects.inv加载intersphinx清单...
我还通过运行以下命令验证了Python文档中存在"contents“标记:
python -m sphinx.ext.intersphinx "C:/Temp/PyDoc/objects.inv" | findstr contents
它会生成包含以下行的输出:
Python目录:
文档内容: contents.html
有人知道如何从我的RST文件中引用此外部文档吗?
发布于 2018-05-26 15:53:47
在intersphinx的配置中,dict的键值是一个tuple,它由逗号分隔的值组成,而不是冒号分隔的值。
intersphinx_mapping = {'python': ('C:/Temp/PyDoc', None)}
编辑
toctree
条目需要一个有效的目标,它可以是相对于当前文件的文件,也可以是从conf.py
所在的文档根目录开始的绝对文件。目标也可以是URL。我怀疑您生成的HTML不是上面的任何一个,所以您需要将它移动到Sphinx可以找到它的地方。
语法应该用于文档,而不是Python对象,因为页面是一个目录。我没有尝试这个例子,因为我没有下载和构建Python文档,所以我怀疑它能否工作。
.. toctree::
:maxdepth: 1
:doc:`Python <python:contents>`
或者,您可以只使用URL (或类似的相对或绝对目标)。这对我来说是一个完全合格的URL。
.. toctree::
:maxdepth: 1
Python <https://docs.python.org/3/contents.html>
最后,您可以尝试包含,但我认为这并不是您真正想要的。
https://stackoverflow.com/questions/50539097
复制相似问题