我在graphviz文档中使用Sphinx,并希望重用由RestructuredText代码自动生成的链接。
你可能想直接跳到底部的UPDATE 2 摘要(剧透:对我不起作用)
我从
获得的输出Hello
-----
Test of a graph
.. graphviz::
digraph process {
a [label="first", href="http://google.com"];
b [label="second", href="#World"];
a -> b;
}
World
-----
Something else.
是正确的,但尽管生成的图片是SVG
,但first
和second
无法点击:
如果我右键单击嵌入的图片并在新标签页中打开它,它会显示我可以点击的活动链接。看起来嵌入图像会阻止链接处于活动状态。
我的conf.py
与graphviz相关的元素:
extensions = [
'sphinx.ext.todo', 'sphinx.ext.graphviz'
]
graphviz_output_format = 'svg'
在Sphinx中是否有特定的内容可以为嵌入式图形设置此行为?
我尝试使用updated Sphinx(它引入了与graphviz相关的更改)。结果是:
IFRAME
:总结是嵌入功能(谢谢@xuhdev的工作)至少对我来说是不起作用的。
答案 0 :(得分:2)
我发现了问题,我认为这是一个错误。 graphviz扩展插入<img>
内的svg图像,这使得svg文件是非交互式的。我made a pull request通过用对象替换img标记来解决问题。您可以通过使用我的分支来解决此问题:
pip install git+https://github.com/xuhdev/sphinx@graphviz-interactive-svg
添加内联svg文件选项的替代解决方案也是available。
您还需要使用target
更新graphviz文件:
digraph process {
a [label="first", href="http://google.com", target="_top"];
b [label="second", href="#World"];
a -> b;
}
您可以查看可能的目标here。