在狮身人面像,我可以注册了一堆,应始终被翻译成链接的关键字?
-
20-09-2019 - |
题
我的文档字符串有,我已经定义的其他蟒蛇类的引用。每次遇到狮身人面像这些类中的一个,我想它插入一个链接到文档的其他类。这可能在斯芬克斯?
具体地讲,我有一个文档字符串等:
'''This class contains a bunch of Foo objects'''
可以写:
'''This class contains a bunch of :class:`~foo.Foo` objects'''
但我宁愿狮身人面像找到所有文字匹配Foo
并使它看起来好像我输入了
类别:~foo.Foo
解决方案
您可以使用宏。
在我的项目,我有一个包含所有“重要”类和全局函数及其简称的头文件。两个示例行:
.. |PostItem| replace:: :class:`PostItem <hklib.PostItem>`
.. |PostNotFoundError| replace:: :class:`PostNotFoundError <hklib.PostNotFoundError>`
在我rst
文件,包括我这个头文件。然后,我可以使用这些宏中任何rst
文件:
.. include:: defs.hrst
|PostItem| is a nice class. |PostNotFoundError|, on the other hand is not.
(可以包括从Python源文件文档字符串为好,使用autogen
扩展名。在这些宏也将被替换。)
关于你的例子:我想补充Foo
的头文件和写文档字符串是这样的:
'''This class contains a bunch of |Foo| objects'''
其他提示
斯芬克斯具有解释文本角色的巨大数目这一点。
http://sphinx.pocoo.org/markup /inline.html#cross-referencing-python-objects
我要进入Foo和狮身人面像有它解释为,虽然我曾写过:类:
~foo.Foo
听起来不实际的。现在看来似乎会瘫痪RST尝试分析文本。寻找解释的文本和RST支持几个引用规则(*_|`
)是关于这就是实际的限制。
你问什么可能导致RST采取一切一天来检查每一个可能的背景和原因,每个实例Foo
您是否想要一个链接或没有。你只在Foo
的,否则,未经修饰的情况下,希望这样;琐碎的搜索和替换是行不通的。
可以惹文档字符串预处理。
http://sphinx.pocoo.org/ext/autodoc.html #文档字符串-预处理
这可能让你尝试进行全局搜索和替换您的文档字符串文本策略。
不隶属于 StackOverflow