From db495a2dd3b4a228745d30cf9c15847348597042 Mon Sep 17 00:00:00 2001 From: Michael Hoffmann Date: Tue, 6 Jul 2021 12:23:47 +0200 Subject: [PATCH] Don't incorporate externally linked images in EPUB documents Just like it is possible to avoid incorporating an image in EPUB by passing `data-external="1"` to a raw HTML snippet, this makes the same possible for native Images, by looking for an associated `external` attribute. --- MANUAL.txt | 6 ++++++ src/Text/Pandoc/Writers/EPUB.hs | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/MANUAL.txt b/MANUAL.txt index 52563a8faf2a..c9dc9e62bc20 100644 --- a/MANUAL.txt +++ b/MANUAL.txt @@ -6177,6 +6177,12 @@ with the `src` attribute. For example: +If the input format already is HTML then `data-external="1"` will work +as expected for `` elements. Similarly, for Markdown, external +images can be declared with `![img](url){external=1}`. Note that this +only works for images; the other media elements have no native +representation in pandoc's AST and requires the use of raw HTML. + # Jupyter notebooks When creating a [Jupyter notebook], pandoc will try to infer the diff --git a/src/Text/Pandoc/Writers/EPUB.hs b/src/Text/Pandoc/Writers/EPUB.hs index 3c092a2c1bd0..508fb6a98602 100644 --- a/src/Text/Pandoc/Writers/EPUB.hs +++ b/src/Text/Pandoc/Writers/EPUB.hs @@ -1131,7 +1131,8 @@ transformInline :: PandocMonad m => WriterOptions -> Inline -> E m Inline -transformInline _opts (Image attr lab (src,tit)) = do +transformInline _opts (Image attr@(_,_,kvs) lab (src,tit)) + | isNothing (lookup "external" kvs) = do newsrc <- modifyMediaRef $ T.unpack src return $ Image attr lab ("../" <> newsrc, tit) transformInline opts x@(Math t m)