diff options
author | John MacFarlane <jgm@berkeley.edu> | 2017-02-26 22:48:02 +0100 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2017-02-26 22:48:02 +0100 |
commit | 377c27befedd8f9e54975296a71bf4c954399d2d (patch) | |
tree | 65fd31def34118e6189d47f78753f629eb946788 | |
parent | d7e25d203ac7ff1a18b5d0d6bbffa48d1e033e2c (diff) | |
download | pandoc-377c27befedd8f9e54975296a71bf4c954399d2d.tar.gz |
`--self-contained`: don't incorporate elements with `data-external="1"`.
You can leave an external link as it is by adding the attribute
data-external="1" to the element. Pandoc will then not try to
incorporate its content when `--self-contained` is used. This is
similar to a feature already supported by the EPUB writer.
Closes #2656.
-rw-r--r-- | MANUAL.txt | 13 | ||||
-rw-r--r-- | src/Text/Pandoc/SelfContained.hs | 2 |
2 files changed, 10 insertions, 5 deletions
diff --git a/MANUAL.txt b/MANUAL.txt index e46efd256..2c9fdcbe6 100644 --- a/MANUAL.txt +++ b/MANUAL.txt @@ -634,11 +634,14 @@ Options affecting specific writers stylesheets at absolute URLs will be downloaded; those at relative URLs will be sought relative to the working directory (if the first source file is local) or relative to the base URL (if the first source - file is remote). Limitation: resources that are loaded dynamically - through JavaScript cannot be incorporated; as a result, `--self-contained` - does not work with `--mathjax`, and some advanced features (e.g. - zoom or speaker notes) may not work in an offline "self-contained" - `reveal.js` slide show. + file is remote). Elements with the attribute + `data-external="1"` will be left alone; the documents they + link to will not be incorporated in the document. + Limitation: resources that are loaded dynamically through + JavaScript cannot be incorporated; as a result, + `--self-contained` does not work with `--mathjax`, and some + advanced features (e.g. zoom or speaker notes) may not work + in an offline "self-contained" `reveal.js` slide show. `--html-q-tags` diff --git a/src/Text/Pandoc/SelfContained.hs b/src/Text/Pandoc/SelfContained.hs index e6d859421..378b2fe98 100644 --- a/src/Text/Pandoc/SelfContained.hs +++ b/src/Text/Pandoc/SelfContained.hs @@ -69,6 +69,8 @@ makeDataURI (mime, raw) = convertTags :: PandocMonad m => Maybe String -> [Tag String] -> m [Tag String] convertTags _ [] = return [] +convertTags sourceURL (t@TagOpen{}:ts) + | fromAttrib "data-external" t == "1" = (t:) <$> convertTags sourceURL ts convertTags sourceURL (t@(TagOpen tagname as):ts) | tagname `elem` ["img", "embed", "video", "input", "audio", "source", "track"] = do |