Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Sphinx中,我可以注册一组应该始终转换为链接的关键字吗?_Python_Python Sphinx - Fatal编程技术网

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文本,并让它看起来像我输入的一样

我的文档字符串引用了我定义的其他python类。每次Sphinx遇到这些类中的一个时,我都希望它插入到另一个类的文档的链接。这在斯芬克斯有可能吗

具体来说,我有一个文档字符串,如:

'''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'''