【问题标题】:Sphinx meth role does not create a linkSphinx meth 角色不会创建链接
【发布时间】:2021-10-15 15:39:13
【问题描述】:

在 python 模块中,在模块的文档字符串中,我有以下内容:

:meth:`my_method`

我在当前模块中有以下类:

class GameP:

    ...

    def my_method(self):
        return f"{self._name} {self.selected}"

Sphinx 没有为此创建链接,而在 Sphinx 文档中我们有:

通常,首先搜索这些角色中的名称而不进行任何进一步的限定,然后在前面加上当前模块名称,然后在前面加上 当前模块和类名(如果有的话)。如果您在名称前加上一个点,则此顺序会颠倒。例如,在 Python 的 codecs127 模块的文档中,:py:func:open 总是指内置函数,而:py:func:.open 指的是 codecs.open()。

为什么粗体部分不适合我? :meth: 角色没有为我创建链接。

【问题讨论】:

    标签: python python-sphinx docstring cross-reference


    【解决方案1】:

    恕我直言,文档不是很清楚,但如果您使用:meth:`.my_method` (带点),它就可以工作。这个点让 Sphinx 在任何地方寻找匹配的 my_method

    如果交叉引用在GameP 类的文档字符串中,则不需要点。但在这种情况下,交叉引用在模块文档字符串中,并且在模块级别没有“当前类名”。

    【讨论】:

    • 感谢您的回复。我已经阅读了文档,它说. 用于反转搜索操作。这与您提到的不同。你说过任何地方。你能告诉我我们在 sphinx 文档中的错误吗?
    • 我认为如果你在名字前面加上一个点,这个顺序是相反的是不清楚的。但它也说如果名称以点为前缀,并且没有找到完全匹配,则将目标作为后缀并搜索具有该后缀的所有对象名称。 这就是我的意思我说 Sphinx 会在任何地方寻找匹配项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多