aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/SelfContained.hs
AgeCommit message (Collapse)AuthorFilesLines
2018-12-18Decompress .svgz when converting to "data:" URIAlexander Krotov1-1/+1
Address #5163
2018-03-18Use NoImplicitPrelude and explicitly import Prelude.John MacFarlane1-0/+2
This seems to be necessary if we are to use our custom Prelude with ghci. Closes #4464.
2018-03-16Monoid/Semiground cleanup relying on custom Prelude.John MacFarlane1-1/+0
2018-01-05Update copyright notices to include 2018Albert Krewinkel1-2/+2
2017-11-01SelfContained: use base64 for css links with media attribute.John MacFarlane1-0/+1
This fixes `--self-contained` with s5. Closes #4026.
2017-10-27hlint suggestions.John MacFarlane1-8/+5
2017-10-27Automatic reformating by stylish-haskell.John MacFarlane1-3/+3
2017-10-20SelfContained: data-background-image instead of data-background.John MacFarlane1-1/+1
Really closes #3979.
2017-10-16SelfContained: handle data-background attribute on section.John MacFarlane1-2/+3
This should help with #3979. In my test, I got a data uri for data-background. But it didn't actually work in the browser (the background image didn't show). Not sure whether this is a problem in reveal.js or a problem in pandoc...
2017-09-30Removed unneeded import.John MacFarlane1-1/+0
2017-09-30Removed writerSourceURL, add source URL to common state.John MacFarlane1-56/+54
Removed `writerSourceURL` from `WriterOptions` (API change). Added `stSourceURL` to `CommonState`. It is set automatically by `setInputFiles`. Text.Pandoc.Class now exports `setInputFiles`, `setOutputFile`. The type of `getInputFiles` has changed; it now returns `[FilePath]` instead of `Maybe [FilePath]`. Functions in Class that formerly took the source URL as a parameter now have one fewer parameter (`fetchItem`, `downloadOrRead`, `setMediaResource`, `fillMediaBag`). Removed `WriterOptions` parameter from `makeSelfContained` in `SelfContained`.
2017-05-23Shared: Provide custom isURI that rejects unknown schemes [isURI]Albert Krewinkel1-2/+2
We also export the set of known `schemes`. The new function replaces the function of the same name from `Network.URI`, as the latter did not check whether a scheme is well-known. E.g. MediaWiki wikis frequently feature pages with names like `User:John`. These links were interpreted as URIs, thus turning internal links into global links. This is prevented by also checking whether the scheme of a URI is frequently used (i.e. is IANA registered or an otherwise well-known scheme). Fixes: #2713 Update set of well-known URIs from IANA list All official IANA schemes (as of 2017-05-22) are included in the set of known schemes. The four non-official schemes doi, isbn, javascript, and pmid are kept.
2017-05-20SelfContained: handle @import with quoted string.John MacFarlane1-11/+25
2017-05-20SelfContained: fixed problem with embedded fonts.John MacFarlane1-13/+41
Closes #3629. However, there is still room for improvement. `@import` with following media declaration is not handled. Also `@import` with a simple filename (rather than `url(...)` is not handled.
2017-05-13Update dates in copyright noticesAlbert Krewinkel1-2/+2
This follows the suggestions given by the FSF for GPL licensed software. <https://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html>
2017-05-05Revert "SelfContained: special handling for css @import."John MacFarlane1-36/+5
This reverts commit 89b3fcc8e050def3779fed716d70bfd4e7120a6b.
2017-05-05SelfContained: special handling for css @import.John MacFarlane1-5/+36
We now avoid creating a data URI for the url under an @import.
2017-05-05SelfContained: Handle url() inside material retrieved from url().John MacFarlane1-3/+12
This can happen e.g. with an @import of a google web font. (What is imported is some CSS which contains an url reference to the font itself.) Also, allow unescaped pipe (|) in URL. This is intended to help with #3629, but it doesn't seem to work.
2017-03-30SelfContained: export makeDataURIJohn MacFarlane1-1/+1
2017-03-04Stylish-haskell automatic formatting changes.John MacFarlane1-16/+16
2017-02-26`--self-contained`: don't incorporate elements with `data-external="1"`.John MacFarlane1-0/+2
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.
2017-02-24Some fixes to the preceding revisions in SelfContained.John MacFarlane1-27/+42
Make sure we don't duplicate end tags for script or link.
2017-02-24SelfContained: don't use data URIs for script or style.John MacFarlane1-10/+36
Instead, just use script or style tags with the content inside. The old method with data URIs prevents certain optimizations outside pandoc. Exception: data URIs are still used when a script contains `</script>` or a style contains `</`. Closes #3423. Also, in MIME, use application/javascript (not application/x-javascript).
2017-02-24Refactored getData from getDataURI in SelfContained.John MacFarlane1-5/+15
2017-02-23Put makeSelfContained in PandocMonad instead of IO.John MacFarlane1-46/+43
This removes the need to pass MediaBag around and improves exceptions. It also opens up the possibility of using makeSelfContained purely.
2017-02-20Use lazy loading for reveal.js slide shows.John MacFarlane1-1/+1
* In HTML writer, with reveal.js we use data-src instead of src for images. * In SelfContained, we also load resources from data-src. Closes #2283.
2017-01-25Removed writerMediaBag from WriterOpts.John MacFarlane1-3/+3
...since this is now handled through PandocMonad. Added an explicit MediaBag parameter to makePDF and makeSelfContained.
2017-01-25Text.Pandoc.Shared: Removed fetchItem, fetchItem'.John MacFarlane1-2/+4
Made changes where these are used, so that the version of fetchItem from PandocMonad can be used instead.
2017-01-25SelfContained: put makeSelfContained in MonadIO.John MacFarlane1-2/+3
2016-03-22Updated copyright dates to include 2016.John MacFarlane1-2/+2
2015-11-09Revert "Use -XNoImplicitPrelude and 'import Prelude' explicitly."John MacFarlane1-1/+0
This reverts commit c423dbb5a34c2d1195020e0f0ca3aae883d0749b.
2015-11-08Use -XNoImplicitPrelude and 'import Prelude' explicitly.John MacFarlane1-0/+1
This is needed for ghci to work with pandoc, given that we now use a custom prelude. Closes #2503.
2015-10-28Fixed omitted `url(...)` in CSS data-uri with `--self-contained`.John MacFarlane1-1/+1
Fixes #2489.
2015-10-14Use custom Prelude to avoid compiler warnings.John MacFarlane1-1/+1
- The (non-exported) prelude is in prelude/Prelude.hs. - It exports Monoid and Applicative, like base 4.8 prelude, but works with older base versions. - It exports (<>) for mappend. - It hides 'catch' on older base versions. This allows us to remove many imports of Data.Monoid and Control.Applicative, and remove Text.Pandoc.Compat.Monoid. It should allow us to use -Wall again for ghc 7.10.
2015-07-15`--self-contained`: Fixed overaggressive CSS minimization.John MacFarlane1-1/+2
Previously `--self-contained` wiped out all spaces in CSS, including semantically significant spaces! Closes #2301. Closes #2286.
2015-06-28Fixed regression in CSS parsing with `--self-contained`.John MacFarlane1-39/+47
In 1b44acf0c59b70cc63f48a23c6f77e45a982aaf9 we replaced some hackish CSS parsing with css-text, which I thought was a complete CSS parser. It turns out that it is very buggy, which results in lots of things being silently dropped from CSS when `--self-contained` is used (#2224). This commit replaces the use of css-text with a small but more principled css preprocessor, which only removes whitespace and replaces URLs with base 64 data when possible. Closes #2224.
2015-05-04SelfContained: properly handle data URIs in css urls.John MacFarlane1-32/+48
Also use a proper css parser (adds dependency on text-css). Closes #2129.
2015-05-01SelfContained: cssURLs no longer tries to fetch fragment URLs.John MacFarlane1-7/+11
The current test is: does the URL start with a `#`? Closes #2121.
2015-04-26Updated copyright notices to -2015. Closes #2111.John MacFarlane1-2/+2
2015-02-13Improved building of data URIs in SelfContained.John MacFarlane1-8/+15
Now base64 is used except for 'text/*' mime types. Closes #1940.
2014-12-31SelfContained: Add `;charset=utf-8` to script mime type if missing.John MacFarlane1-1/+4
Closes #1842.
2014-10-04Added `track` to list of tags treated by `--self-contained`.John MacFarlane1-1/+2
Closes #1664.
2014-08-17MIME cleanup.Artyom Kazak1-2/+3
* Create a type synonym for MIME type (instead of `String`). * Add `getMimeTypeDef` function. * Avoid recreating MIME type `Map`s every time. * Move “Formula-...” case handling into `getMimeType`.
2014-08-02SelfContained: Fixed determining of source URL from within CSS files.John MacFarlane1-2/+9
(This fixes a bug introduced a couple commits back.)
2014-08-02Text.Pandoc.SelfContained changes.John MacFarlane1-57/+27
* mkSelfContained now takes just two arguments, WriterOptions and the string. * It no longer looks in data files. This only made sense when we had copies of slidy and S5 code there. * Shared.fetchItem' is used instead of the nearly duplicate getItem.
2014-07-31New module, Text.Pandoc.MediaBag.John MacFarlane1-2/+2
Moved `MediaBag` definition and functions from Shared: `lookupMedia`, `mediaDirectory`, `insertMedia`, `extractMediaBag`. Removed `emptyMediaBag`; use `mempty` instead, since `MediaBag` is a Monoid.
2014-07-31Made MediaBag a newtype, and added mime type information to media.John MacFarlane1-11/+15
Shared now exports functions for interacting with a MediaBag: - `emptyMediaBag` - `lookuMedia` - `insertMedia` - `mediaDirectory` - `extractMediaBag`
2014-07-30Allow --self-contained to get content from MediaBag.John MacFarlane1-25/+34
Added a parameter to makeSelfContained (API change).
2014-05-09Update copyright notices for 2014, add missing noticesAlbert Krewinkel1-2/+2
2014-03-05SelfContained: Handle "poster" attribute in "video" tags.John MacFarlane1-8/+10
Closes #1188.