Python sphinx Sphinx autodoc:由于ifconfig,未生成永久链接

Python sphinx Sphinx autodoc:由于ifconfig,未生成永久链接,python-sphinx,autodoc,Python Sphinx,Autodoc,我正在为我的Python软件包编写文档,并将sphinx与autodoc扩展一起使用。我想要两个版本的文档:用户文档和开发人员文档。这两者之间的重叠非常大,因此我基于一个源生成它们。仅针对一个输出的特定部件通过ifconfig扩展包括在内 现在我想要两个版本的API规范,一个面向用户,一个面向开发人员: API ~~~~~~~~~~~~~~~~~~~~~~~~~ .. ifconfig:: develdoc .. autoclass:: settings.Settings

我正在为我的Python软件包编写文档,并将sphinx与autodoc扩展一起使用。我想要两个版本的文档:用户文档和开发人员文档。这两者之间的重叠非常大,因此我基于一个源生成它们。仅针对一个输出的特定部件通过ifconfig扩展包括在内

现在我想要两个版本的API规范,一个面向用户,一个面向开发人员:

API
~~~~~~~~~~~~~~~~~~~~~~~~~

.. ifconfig:: develdoc

    .. autoclass:: settings.Settings    
        :members:
        :private-members:
        :special-members:


.. ifconfig:: not develdoc

    .. autoclass:: settings.Settings    
        :members:
一般来说,它工作正常,但有一个问题。在由第二个指令生成的文档中(在本例中为用户文档),有类及其方法的条目,但它们没有与之关联的HTML锚。在文档的其他部分,指向
设置的链接处于活动状态,但它们不会指向任何地方(单击时不会发生任何事情)

如果我将订单切换为:

API
~~~~~~~~~~~~~~~~~~~~~~~~~

.. ifconfig:: not develdoc

    .. autoclass:: settings.Settings    
        :members:


.. ifconfig:: develdoc

    .. autoclass:: settings.Settings    
        :members:
        :private-members:
        :special-members:
开发人员文档中的锚仅供私人和特殊成员使用。因此,看起来第一个ifconfig“保留”了它的所有方法,当它们在第二个ifconfig中重复时,会发生一些不好的事情,并且不会生成锚


我想这是一个bug而不是一个特性:)不管怎样,有人知道如何修复它吗?

我找到了一个避免使用
ifconfig
的解决方案。在我的
conf.py
中,我根据
develdoc
的值将
autodoc\u default\u标志设置为
['members']
['members'、'private-members'、'special-members']
。解决了问题,但使其成为全球性的东西。