--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.
This commit is contained in:
John MacFarlane 2017-02-26 22:48:02 +01:00
parent d7e25d203a
commit 377c27befe
2 changed files with 10 additions and 5 deletions

View file

@ -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`

View file

@ -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