将可点击的SVG图像插入Sphinx文档

6 restructuredtext python-sphinx read-the-docs

我有多个节点的SVG图像文件,每个节点都与URL关联。如果直接在浏览器中打开此文件,则可以单击每个节点,它将打开不同的URL。但是,当我在Sphinx文档中使用此图片时,它不起作用-图片整体呈现,因此我需要打开它,View Image然后才能单击节点。

我正在使用标准的图像指令:

.. image:: myfile.svg
Run Code Online (Sandbox Code Playgroud)

可能我需要使用其他东西吗?

Nær*_*een 6

一种简单的解决方案是在此.. image:: myfile.svg命令中添加指向 svg 文件的链接:

.. image:: myfile.svg
   :target: _images/myfile.svg
Run Code Online (Sandbox Code Playgroud)

注意检查生成html文件时复制图像的相对目录。默认情况下,它应该是_images/.

这样,您可以单击 SVG 文件,在普通页面中查看它,然后像往常一样单击它(不是完美的解决方案,但仍然......)。


mb2*_*b21 6

Sphinx会<img>为图像生成标签,这在大多数情况下是有意义的。但是,要使svg内部的链接可单击,应使用一个<object>标记,即:

.. raw:: html

    <object data="myfile.svg" type="image/svg+xml"></object>
Run Code Online (Sandbox Code Playgroud)

(关于您链接到的GitHub问题,我认为Sphinx不能在这里做很多事情-这确实很复杂-缺少在.. image指令中引入新选项的方法,该选项可以让用户指定呈现为img还是object标签。 )


win*_*i2k 5

我可能误解了 OP 的要求,但为什么不将 SVG 作为 html 包含到 sphinx 文档中呢?这似乎对我有用:

.. raw:: html
    :file: images/image.svg
Run Code Online (Sandbox Code Playgroud)