Python 在Sphinx中,我可以注册一组应该始终转换为链接的关键字吗?
我的文档字符串引用了我定义的其他python类。每次Sphinx遇到这些类中的一个时,我都希望它插入到另一个类的文档的链接。这在斯芬克斯有可能吗 具体来说,我有一个文档字符串,如:Python 在Sphinx中,我可以注册一组应该始终转换为链接的关键字吗?,python,python-sphinx,Python,Python Sphinx,我的文档字符串引用了我定义的其他python类。每次Sphinx遇到这些类中的一个时,我都希望它插入到另一个类的文档的链接。这在斯芬克斯有可能吗 具体来说,我有一个文档字符串,如: '''This class contains a bunch of Foo objects''' 我可以写: '''This class contains a bunch of :class:`~foo.Foo` objects''' 但我更希望Sphinx能找到所有匹配的Foo文本,并让它看起来像我输入的一样
'''This class contains a bunch of Foo objects'''
我可以写:
'''This class contains a bunch of :class:`~foo.Foo` objects'''
但我更希望Sphinx能找到所有匹配的Foo
文本,并让它看起来像我输入的一样
:class:
~foo.foo
斯芬克斯为此有大量解释文本角色
我想输入Foo并让Sphinx像我写的那样解释它:class:~Foo.Foo
这听起来不切实际。它似乎会瘫痪你的文本解析。寻找解释文本和RST支持的少数引用规则(*| `
)是关于实用性的限制
您所要求的可能会导致RST花一整天的时间在所有可能的上下文中检查每个实例Foo
,并推断出您是否需要链接。只有在未修饰的Foo
实例中才需要此功能;简单的搜索和替换不起作用
您可能会弄乱docstring预处理
这可能允许您在文档字符串文本上尝试全局搜索和替换策略。您可以使用宏
在我的项目中,我有一个头文件,其中包含所有“重要”类和全局函数及其缩写。两行示例:
.. |PostItem| replace:: :class:`PostItem <hklib.PostItem>`
.. |PostNotFoundError| replace:: :class:`PostNotFoundError <hklib.PostNotFoundError>`
(您也可以使用autogen
扩展名包含Python源文件中的docstring。这些文件中的宏也将被替换。)
关于您的示例:我会将Foo
添加到头文件中,并以以下方式写入docstring:
'''This class contains a bunch of |Foo| objects'''
'''This class contains a bunch of |Foo| objects'''