是否可以 link graphviz 元素到狮身人面像 links?
Is it possible to link graphviz elements to sphinx links?
我使用 graphviz in my Sphinx 文档并希望重复使用由 RestructuredText 代码自动生成的链接。
You may want to jump directly to the UPDATE 2 at the bottom for a
summary (spoiler: does not work for me)
我从
得到的输出
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 中进行特定设置才能使嵌入式图形具有这种行为?
更新
更新 2
我用 updated Sphinx 尝试了这个(它引入了与 graphviz 相关的更改)。结果是:
- 打开新页面无效。我选择了一个非 HTTPS 页面 (http://www.timeanddate.com/) 而不是 Google,我将页面嵌入到
IFRAME
:
- 跨浏览器结果一致(Chrome 47、FF 43、IE Edge)
总而言之,嵌入功能(感谢@xuhdev 的工作)至少对我来说是非功能性的。
我发现了问题,我认为这是一个错误。 graphviz 扩展在 <img>
内插入 svg 图像,这使得 svg 文件不可交互。我已经 made a pull request 通过将 img 标签替换为 object 来解决这个问题。您现在可以使用我的分支解决问题:
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。
我使用 graphviz in my Sphinx 文档并希望重复使用由 RestructuredText 代码自动生成的链接。
You may want to jump directly to the UPDATE 2 at the bottom for a summary (spoiler: does not work for me)
我从
得到的输出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 中进行特定设置才能使嵌入式图形具有这种行为?
更新
更新 2
我用 updated Sphinx 尝试了这个(它引入了与 graphviz 相关的更改)。结果是:
- 打开新页面无效。我选择了一个非 HTTPS 页面 (http://www.timeanddate.com/) 而不是 Google,我将页面嵌入到
IFRAME
:
- 跨浏览器结果一致(Chrome 47、FF 43、IE Edge)
总而言之,嵌入功能(感谢@xuhdev 的工作)至少对我来说是非功能性的。
我发现了问题,我认为这是一个错误。 graphviz 扩展在 <img>
内插入 svg 图像,这使得 svg 文件不可交互。我已经 made a pull request 通过将 img 标签替换为 object 来解决这个问题。您现在可以使用我的分支解决问题:
pip install git+https://github.com/xuhdev/sphinx@graphviz-interactive-svg
添加内联 svg 文件的选项的替代解决方案也是 available。
您还需要使用 target
:
digraph process {
a [label="first", href="http://google.com", target="_top"];
b [label="second", href="#World"];
a -> b;
}
您可以查看可能的目标 here。