aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/SelfContained.hs
AgeCommit message (Collapse)AuthorFilesLines
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.
2013-10-16Use isURI instead of isAbsoluteURI.John MacFarlane1-3/+3
It allows fragments identifiers.
2013-07-18Improved fetching of external resources.John MacFarlane1-2/+3
* In Shared, openURL and fetchItem now return an Either, for better error handling. (API change.) * Better error message when fetching a URL fails with `--self-contained`. * EPUB writer: If resource not found, skip it, as in Docx writer. * Closes #916.
2013-04-10Added comment/todo to SelfContained.John MacFarlane1-0/+1
2013-03-26SelfContained: handle src in embed, audio, source, input tags.John MacFarlane1-9/+4
2013-03-25SelfContained: strip off fragment, query of relative URLJohn MacFarlane1-4/+8
before treating as a filename. This fixes `--self-contained` when used with CSS files that include web fonts using the method described here: http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/ Examples from reveal.js themes: "../../lib/font/league_gothic-webfont.eot?#iefix" "../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular" Closes #739.
2013-01-11Refactoring:John MacFarlane1-2/+16
* Shared now exports fetchItem (instead of getItem) and openURL * fetchItem has different parameters than getItem and includes some logic formerly in the ODT and Docx writers * getItem still used in SelfContained
2013-01-11Move getItem from SelfContained to Share; export getItem.John MacFarlane1-28/+3
2012-12-29Data files changes.John MacFarlane1-13/+3
* Added `embed_data_files` flag. (not yet used) * Shared no longer exports `findDataFile`. * `readDataFile` now returns a strict bytestring. * Shared now exports `readDataFileUTF8` which returns a string like the old `readDataFile`. * Rewrote modules to use new data file functions and to avoid using functions from Paths_pandoc directly.
2012-09-25Removed need for utf8-string package.John MacFarlane1-1/+1
* Depend on text. * Expose Text.Pandoc.UTF8. * Text.Pandoc.UTF8 now exports toString, fromString, toStringLazy, fromStringLazy. * These are used instead of the old utf8-string functions.