在 Sphinx 中使用 default_role = "any" 抑制未找到引用的警告

Suppress warnings for unfound references with default_role = "any" in Sphinx

我使用 any 作为使用 Sphinx 构建我的文档时的默认角色,它通过自动链接一些标记的引用并将其他引用格式化为代码来按预期工作,同时避免使用标记使文档字符串混乱。

不幸的是,当以这种方式构建文档时,输出中充斥着对 any 找不到目标的引用的警告:

WARNING: 'any' reference target not found: […]

有什么方法可以抑制这些警告吗?

到目前为止,我能以这种方式找到的唯一资源是 this question,但是它具体针对完全不同的警告。

我提交了一个feature request for this, which was rejected but yielded a solution nontheless (thanks to Takeshi Komiya):

将以下内容添加到 conf.py

def on_missing_reference(app, env, node, contnode):
    if node['reftype'] == 'any':
        return contnode
    else:
        return None

def setup(app):
    app.connect('missing-reference', on_missing_reference)