diff options
author | Michael Hoffmann <brennan.brisad@gmail.com> | 2021-07-07 18:26:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-07 09:26:37 -0700 |
commit | 565330033a623ed7bf4d0a3b57dd14710cf27703 (patch) | |
tree | 329f0def2db3ed68bfad0e62e4c398884df4e6ec | |
parent | e56e2b0e0be9256ddef798d28f5d2af6e756508d (diff) | |
download | pandoc-565330033a623ed7bf4d0a3b57dd14710cf27703.tar.gz |
Don't incorporate externally linked images in EPUB documents (#7430)
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.
-rw-r--r-- | MANUAL.txt | 6 | ||||
-rw-r--r-- | src/Text/Pandoc/Writers/EPUB.hs | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/MANUAL.txt b/MANUAL.txt index 52563a8fa..c9dc9e62b 100644 --- a/MANUAL.txt +++ b/MANUAL.txt @@ -6177,6 +6177,12 @@ with the `src` attribute. For example: </source> </audio> +If the input format already is HTML then `data-external="1"` will work +as expected for `<img>` 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 3c092a2c1..508fb6a98 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) |