编程语言
首页 > 编程语言> > python – 如何链接到intersphinx中的根页面

python – 如何链接到intersphinx中的根页面

作者:互联网

我在项目中启用了sphinx.ext.intersphinx并添加了以下配置:

intersphinx_mapping = {
    'python': ('https://docs.python.org/3', None),
    'pyserial': ('https://pythonhosted.org/pyserial/', None),
}

我的index.rst中有以下内容:

This project depends on the :ref:`pyserial <pyserial:???>` library.

我想链接指向http://pythonhosted.org/pyserial/,intersphinx_mapping中的根URL,但我不知道是什么???应该.

如果我这样做:ref:`pyserial`或:ref:`pyserial< pyserial>`,我得到警告:未定义标签:pyserial(如果链接没有标题,标签必须在节标题之前)

如果我这样做:ref:`pyserial<>`我得到警告:未定义标签:(如果链接没有标题,标签必须在节标题之前)

我可以用`pyserial< http://pythonhosted.org/pyserial/>`_替换:ref:但我真的想通过intersphinx引用页面,以避免断开链接.

我在Anaconda的Python 3.6.2上使用sphinx 1.6.3.我并没有过度依赖我试图链接到的图书馆.我怀疑答案不会真正与图书馆联系在一起.

如果重要的是,对pyserial文档的定期引用工作得很好.例如:py:class:`serial.Serial`链接到https://pythonhosted.org/pyserial/pyserial_api.html#serial.Serial.

解决方法:

您已满足以下要求.这是最后一个令人沮丧的常见问题.

>配置项目以使用intersphinx.
>远程文档使用Sphinx,实际上有一个名为objects.inv的清单文件.运行sphinx-build时,日志条目应该是这样的:

loading intersphinx inventory from https://docs.python.org/3/objects.inv...
loading intersphinx inventory from https://pythonhosted.org/pyserial/objects.inv...

>使用intersphinx的Python项目的语法如下,就像任何cross-referencing link一样:

:role_name:`title <target>`

所以在你的情况下:

:ref:`pyserial <pyserial:reference-label-name>`

>最后,给定页面的库存中可能不存在某些所需目标. This answer shows how to see all intersphinx targets,使用以下内容:

python -m sphinx.ext.intersphinx 'https://pythonhosted.org/pyserial/objects.inv'

出现所有API对象,这就是您可以链接到这些对象的原因,但只存在有限数量的其他对象:

std:label
        examples                                 Examples                                : examples.html#examples
        genindex                                 Index                                   : genindex.html#
        miniterm                                 serial.tools.miniterm                   : tools.html#miniterm
        modindex                                 Module Index                            : py-modindex.html#
        search                                   Search Page                             : search.html#
        urls                                     URL Handlers                            : url_handlers.html#urls

缺乏任意标签是作者常见的烦恼.

你也可以check the project’s reST source for targets,在这种情况下,没有像… _my-reference-label:这样的参考标签.

要解决此问题,您可以使用以下任意一个目标:

:ref:`pyserial <pyserial:genindex>`

…或者更好的是向项目提交拉取请求,在该项目中,您至少为索引页面提供标签,等待其接受,然后将其用于intersphinx链接.其他作者会很感激.

标签:python,python-sphinx,restructuredtext
来源: https://codeday.me/bug/20190527/1163473.html