我正在为我的 Python 包编写文档,并且我正在使用 sphinx 和 autodoc 扩展。我想要两个版本的文档:用户文档和开发者文档。这两者之间的重叠非常大,所以我基于一个来源生成它们。通过 ifconfig 扩展包含仅针对一个输出的部分。
现在我想要两个版本的 API 规范,一个是用户的基本版本,一个是开发人员的详细版本:
API
~~~~~~~~~~~~~~~~~~~~~~~~~
.. ifconfig:: develdoc
.. autoclass:: settings.Settings
:members:
:private-members:
:special-members:
.. ifconfig:: not develdoc
.. autoclass:: settings.Settings
:members:
一般来说,它工作正常,但有一个问题。在第二个指令生成的文档中(在本例中:用户文档)有类及其方法的条目,但它们没有与之关联的 HTML 锚点。在文档的其他部分,链接Settings
是活动的,但它们无处可去(点击时没有任何反应)。
如果我将订单切换为:
API
~~~~~~~~~~~~~~~~~~~~~~~~~
.. ifconfig:: not develdoc
.. autoclass:: settings.Settings
:members:
.. ifconfig:: develdoc
.. autoclass:: settings.Settings
:members:
:private-members:
:special-members:
开发人员文档中的锚点仅适用于私人和特殊成员。所以看起来第一个 ifconfig “保留”了它的所有方法,当它们在第二个 ifconfig 中重复时,会发生一些不好的事情并且没有生成锚。
我想这是一个错误而不是一个功能:) 无论如何,有人知道如何修复它吗?