从类的交叉引用中省略模块名称
背景
我有一个项目叫做 ciscoconfparse,这个项目的文档是用 Sphinx 来编写的;项目的文档可以在 这里 找到。
这个 源代码目录 里有多个文件:
ciscoconfparse.py
里面包含了CiscoConfParse
和IOSConfigList
这两个类models_cisco.py
里面有一个叫IOSCfgLine
的类
这是我如何记录 IOSCfgLine
的一个例子……
.. module:: models_cisco
IOSCfgLine Object
-----------------
.. autoclass:: IOSCfgLine
:members:
:inherited-members:
现在的 Sphinx 文档中,类的超链接看起来很糟糕,包含了文件名和类名;比如说 models_cisco.IOSCfgLine
就是一个例子。
文档截图示例:
问题
我该如何使用 autoclass
来记录不同 Python 文件中的类,并且在生成的文档中只显示类名,而不是连同文件名一起显示?换句话说,我只想看到 IOSCfgLine
的超链接,而不是 models_cisco.IOSCfgLine
。
1 个回答
2
如果你只想在链接中显示名字本身,可以在链接中使用 ~
符号:
:class:`~models_cisco.IOSCfgLine`
这样显示的结果会是 IOSCfgLine
,而不是 models_cisco.IOSCfgLine
。
不过,如果我没看错的话,你的代码库中所有的类都在顶层包的命名空间里。所以你也可以这样来写文档(也就是不需要 .. module:: models_cisco
,而是 .. module:: ciscoconfparse
)。