2015-12-14 49 views
1

我在我的Sphinx文档中使用graphviz,并且希望重用由RestructuredText代码自动生成的链接。是否有可能将graphviz元素链接到狮身人面像链接?

您可能需要在底部,直接跳转到更新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,firstsecond不可点击的事实:

enter image description here

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

conf.py相关的graphviz的元素:

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

有什么具体设置在狮身人面像有这种行为的内嵌图表?

UPDATE

bug report filed

UPDATE 2

我试图与一个updated Sphinx(其拉动有关graphviz的变化)。结果是:

  • 打开新页面不起作用。我选择了一个非HTTPS页面(http://www.timeanddate.com/),而不是谷歌,我得到嵌入IFRAME页:

enter image description here

  • 结果是跨浏览器(Chrome 47,FF 43,IE一致边缘)

总结是,嵌入功能(谢谢@xuhdev的工作),至少对我来说,是不起作用的。

+0

你是什么意思链接不存在? – xuhdev

+0

我的意思是,既不是'first'也不''second'在嵌入式版本上是可单击的,而它们是独立的。 – WoJ

+0

我测试了你的例子---它适用于我... – xuhdev

回答

2

我发现了这个问题,我认为它是一个错误。 graphviz扩展在<img>中插入svg图像,这使得svg文件是非交互式的。我有made a pull request通过用对象替换img标记来解决这个问题。您可以使用我的分支在这一刻解决方法:

pip install git+https://github.com/xuhdev/[email protected] 

其中添加一个选项内联SVG文件的替代解决方案也是available

你也需要target更新您的graphviz的文件:

digraph process { 
     a [label="first", href="http://google.com", target="_top"]; 
     b [label="second", href="#World"]; 
     a -> b; 
    } 

您可以查看可能的目标here

+0

谢谢!在此期间,我在github中提交了一个bug(https://github.com/sphinx-doc/sphinx/issues/2175),您可能想链接到它,或者我可以删除它,无论实际情况如何。 – WoJ

+0

我试过你的代码,链接被添加(并且它们指向正确的URL),但是当它们被点击时没有任何反应。如果我右键单击该链接(例如,在我的示例中为“first”)并选择在不同的选项卡中打开 - 它可以工作(我可以使用google.com)。 – WoJ

+0

具体来说,点击链接时Chrome上没有任何操作;在Firefox中图像消失(留空)。 – WoJ

相关问题