我使用Sphinx生成一些文档。我有一个reStructuredText文档,我想把图像放入其中。情况是图像应该是可点击的,以便在用户点击图像后,应该以完整尺寸显示该图像。我使用image指令及其目标选项,如下所示:
.. image:: /images/some_image.png
:alt: Image descripion
:align: center
:target: `big_some_image`_
.. _big_some_image: /images/some_image.png
问题在于我在渲染页面中得到:
<a href="/images/some_image.png"><img src="../../../_images/some_image.png"></a>
因此,image指令中存在正确的src
,但超链接中的href
属性不正确。
问题:
有没有办法以image指令的方式生成链接?我的意思是相对于该文件。
还有其他(内置)方式有“thumbnail-&gt;点击 - &gt;大图片”行为吗?
答案 0 :(得分:10)
只需使用缩放选项:
.. image:: large_image.png
:scale: 20%
单击缩放图像时,完整图像将加载到其自己的窗口中。所以这不会增加页面上的图像大小,但无论如何这都会很麻烦。
答案 1 :(得分:3)
当您在Sphinx中使用image
指令时,Sphinx会进行一些特殊处理以查找图像文件并将其复制到您的项目中(例如您的_images
目录),然后将HTML呈现为指向那个地方。
但是target
选项只是将URL作为参数。它对您的Sphinx项目一无所知,或者您的图像如何布局,并且不会尝试猜测。
如果您想让它指向同一文件的更大版本,您可能需要执行一些手动步骤(例如将文件复制到特定位置),或者可能提供大文件的相对URL ,而不是你的例子中的绝对URL。
如果您想采用完全不同的方式,您还可以尝试覆盖和修改项目的HTML模板,添加一些JavaScript以获得所需的点击大图像效果。
答案 2 :(得分:1)
看起来现在有一个Sphinx扩展程序可以执行此操作,而且非常好,sphinxcontrib-fancybox 0.3.2。使用pip
安装,在conf.py中将其添加到您的扩展程序,然后使用fancybox
指令:
.. fancybox:: images/image.png
答案 3 :(得分:0)
相对链接似乎有效。对于 Mapserver 文档设置,如果图像放在images
目录中,则以下代码中的相对链接在我的本地构建中起作用。下面是使用 figure 的示例( target 链接中的“images”之前的下划线(“_”)):
.. figure:: ../../images/carto-elements.png
:height: 400
:width: 600
:align: center
:target: ../../_images/symcon-overlay.png