我正在为我的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中重复它们时会发生一些不好的事情,并且不会生成任何锚点。
我认为这是一个错误,而不是一个功能:)无论如何,有没有人知道如何修复它?