如何在Sphinx中交叉引用由autodoc生成的函数?
我正在使用 Sphinx 的 autodoc
功能,根据我 Python 库中的文档字符串生成文档。
关于交叉引用的语法,可以在 这里找到。
为了让文档的其他部分能够引用某个部分,必须在该部分前面加上一个标签。
我有一个 .rst(ReStructuredText)文件,里面是我某个类的内容。它使用了
.. autoclass:: classname
:members:
来生成这个类的文档。
我的问题是,如何在文档的另一个 .rst 文件中引用这个类自动生成的方法呢?如果我试着在方法的文档字符串里放一个标签,Sphinx 会报错。如果我在方法标题前放标签,Sphinx 又识别不了。
有没有简单的方法可以做到这一点,还是说我必须在我的类文件里明确写出方法名,并在前面加上标签呢?
这里有一个例子,展示了在 [Python 文档2 中如何做我需要的事情(我假设它使用了 autodoc 功能,但我不太确定)。
2 个回答
12
除了已经提供的很棒的答案之外:
如果你想给某个模块(比如方法、函数、属性等)添加一个别名,可以使用以下语法:
:mod:`Alias Name <package.module>`
这样在文档中就会显示为对别名
的引用,并且链接到你提供的模块。
127
你不需要添加标签。要引用一个Python的类、方法或其他文档对象,可以使用Python领域提供的标记方式。
比如,下面的代码定义了一个指向mymethod
方法的引用:
:py:meth:`mymodule.MyClass.mymethod`
或者更简单一点(因为Python领域是默认的):
:meth:`mymodule.MyClass.mymethod`
你在问题中提到的TextWrapper.wrap
的文档里包含了两个这样的引用(点击“显示源代码”可以看到reST的标记)。