我想扩展内置的sphinx-doc扩展名sphinx.ext.graphviz,但有一些功能。由于这些功能对我的用例非常特殊,我不想扩展sphinx.ext.graphviz本身。
基本上我只想(graphviz sources for reference)
我已阅读sphinx-doc extension developer guide但未完全阅读 了解构建阶段/过程以及如何“组合”扩展,如上所述。
是否可以修改“构建阶段”之间的内联graphviz代码 1:阅读“和”构建阶段3:解决“以某种方式使用额外的 sphinx扩展“调用”sphinx.ext.graphviz?
答案 0 :(得分:0)
sphinx-doc贡献者提供的解决方案[https://github.com/sphinx-doc/sphinx/issues/2246]:
也许您可以使用以下代码执行此操作:
def on_doctree_read(app, doctree):
for node in doctree.traverse(graphviz):
code = re.sub('\];', ', color = red];', node['code']) # change color of nodes and edges
node['code'] = code
def setup(app):
app.connect('doctree-read', on_doctree_read)
在这个例子中,我使用了doctree-read事件。它是在阅读阶段提出的。更详细地说,您可以在http://www.sphinx-doc.org/en/stable/extdev/appapi.html#sphinx-core-events
看到什么是“狮身人面像核心事件”