summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorMiran <narimiran@disroot.org>2020-09-21 17:01:12 +0200
committerGitHub <noreply@github.com>2020-09-21 17:01:12 +0200
commit464518327211ea3a693e9ae5e9b03c739d410ac4 (patch)
treee1ea10e4e82e0b6d3a5a15d48fb8e76de8b01976 /lib
parent40a868bccc6934aba99a9e490dad04296533b00f (diff)
downloadNim-464518327211ea3a693e9ae5e9b03c739d410ac4.tar.gz
fix #6430, support `:target:` for images (#15379)
Diffstat (limited to 'lib')
-rw-r--r--lib/packages/docutils/rstgen.nim12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/packages/docutils/rstgen.nim b/lib/packages/docutils/rstgen.nim
index 2ec25cc6e..9f707f4e8 100644
--- a/lib/packages/docutils/rstgen.nim
+++ b/lib/packages/docutils/rstgen.nim
@@ -848,6 +848,18 @@ proc renderImage(d: PDoc, n: PRstNode, result: var string) =
     """
   else:
     htmlOut = "<img src=\"$1\"$2/>"
+
+  # support for `:target:` links for images:
+  var target = esc(d.target, getFieldValue(n, "target").strip())
+  if target.len > 0:
+    # `htmlOut` needs to be of the following format for link to work for images:
+    # <a class="reference external" href="target"><img src=\"$1\"$2/></a>
+    var htmlOutWithLink = ""
+    dispA(d.target, htmlOutWithLink,
+      "<a class=\"reference external\" href=\"$2\">$1</a>",
+      "\\href{$2}{$1}", [htmlOut, target])
+    htmlOut = htmlOutWithLink
+
   dispA(d.target, result, htmlOut, "\\includegraphics$2{$1}",
         [esc(d.target, arg), options])
   if len(n) >= 3: renderRstToOut(d, n.sons[2], result)