使用image指令的target属性的类似缩略图的行为

时间:2012-09-28 08:21:11

标签: image python-sphinx restructuredtext

我使用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;大图片”行为吗?

4 个答案:

答案 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