在 Sphinx 中引用自定义图形类型

Reference a custom figure type in Sphinx

如果我尝试引用自定义图形 class

class MyFigure(
    sphinx.util.docutils.SphinxDirective, 
    docutils.parsers.rst.directives.images.Figure
):
    pass

def setup(app):
    app.add_role('fig', MyFigure)

然后像这样使用它

.. fig:: foo.png
    :name: myfig


Look at :ref:`myfig`.

任何引用都会失败

WARNING: undefined label: myfig

如何解决这个问题?

docutils.parsers.rst.directives.images.Figure 不是正确的 class 自定义,因为它不处理 name 属性。请改用 Sphinx 的补丁版本 sphinx.directives.patches.Figure