9

我使用 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>

所以src图像指令是正确的,但href超链接的属性不正确。

问题:

  • 有没有办法以图像指令的方式生成链接?我的意思是相对于文件。

  • 是否有任何其他(内置)方式具有“缩略图->单击->大图像”行为?

4

4 回答 4

11

只需使用 scale 选项:

.. image:: large_image.png
    :scale: 20%

单击缩放后的图像时,完整的图像会在其自己的窗口中加载。所以这不会增加页面上的图像大小,但无论如何都会很混乱。

于 2013-02-21T00:56:24.407 回答
3

当您image在 Sphinx 中使用该指令时,Sphinx 会进行一些特殊处理以查找图像文件并将其复制到您的项目(如您的_images目录)中,然后呈现 HTML 以指向该位置。

但该target选项仅将 URL 作为参数。它对您的 Sphinx 项目或图像的布局方式一无所知,并且不会尝试猜测。

如果您想让它指向同一文件的更大版本,您可能需要执行一些手动步骤(例如可能将文件复制到特定位置),或者可能提供大文件的相对 URL,而不是您在示例中拥有的绝对 URL。

如果您想采用完全不同的方式,您还可以尝试覆盖和修改项目的 HTML 模板以添加一些 JavaScript 以获得所需的点击放大图像效果。

于 2012-10-25T18:43:06.887 回答
1

看起来现在有一个 Sphinx 扩展可以做到这一点,而且非常好,sphinxcontrib-fancybox 0.3.2。使用 安装pip,将其添加到 conf.py 中的扩展,然后使用fancybox指令:

.. fancybox:: images/image.png
于 2013-06-03T19:24:35.087 回答
0

相对链接似乎有效。对于Mapserver文档设置,如果将图像放置在images目录中,则以下代码中的相对链接在我的本地构建中有效。这是一个使用图的示例(目标链接中“图像”之前的下划线(“_”)是必要的):

.. figure:: ../../images/carto-elements.png
  :height: 400
  :width: 600
  :align: center
  :target: ../../_images/symcon-overlay.png
于 2017-09-21T07:34:28.317 回答