【问题标题】:Is it possible to link graphviz elements to sphinx links?是否可以将 graphviz 元素链接到 sphinx 链接?
【发布时间】:2015-12-14 14:28:08
【问题描述】:

我在我的Sphinx 文档中使用graphviz,并希望重用由 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.

是正确的,但尽管生成的图像是SVGfirstsecond 不可点击:

如果我右键单击嵌入的图像并在新选项卡中打开它,它有我可以点击的活动链接。看起来嵌入图像阻止了链接处于活动状态。 p>

我的conf.py与graphviz相关的元素:

extensions = [
    'sphinx.ext.todo', 'sphinx.ext.graphviz'
]
graphviz_output_format = 'svg'

在 Sphinx 中是否有一些特定的设置可以让嵌入式图形具有这种行为?

更新

bug report filed

更新 2

我用updated Sphinx 尝试了这个(它引入了与graphviz 相关的更改)。结果是:

  • 无法打开新页面。我选择了一个非 HTTPS 页面 (http://www.timeanddate.com/) 而不是 Google,然后我将页面嵌入到了 IFRAME

  • 结果在不同浏览器(Chrome 47、FF 43、IE Edge)上是一致的

总结是嵌入功能(感谢@xuhdev 的工作)至少对我来说是非功能性的。

【问题讨论】:

  • 链接不存在是什么意思?
  • 我的意思是,firstsecond 在独立版本中都不可点击。
  • 我测试了你的例子---它对我有用......
  • 也许你可以多发一点你的conf.py
  • 已更新。在您最初发表评论后,我还澄清了这个问题。

标签: python-sphinx graphviz


【解决方案1】:

我发现了问题,我认为这是一个错误。 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

【讨论】:

  • 谢谢!同时,我在 github 中提交了一个错误 (github.com/sphinx-doc/sphinx/issues/2175),您可能想要链接到它,或者我可以删除它,无论实用。
  • 我尝试了您的代码,添加了链接(并且它们指向正确的 URL),但单击它们时没有任何反应。如果我右键单击链接(例如,在我的示例中为 first)并选择在不同的选项卡中打开 - 它可以工作(我得到 google.com)。
  • 具体来说,点击链接时Chrome上没有任何动作;在 Firefox 中,图像消失(留空)。
  • 不幸的是,这并没有改变行为(与所描述的相同,对于 Chrome 和 FF)
  • @WoJ 这有点奇怪,因为它在 FF 上非常适合我。保存 RST 文件后,您能否确保已成功重建 html 文件?您是否点击了“第一”(“第二”不起作用)?
猜你喜欢
  • 1970-01-01
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多