aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers/EPUB.hs
AgeCommit message (Collapse)AuthorFilesLines
2017-01-25Implement Errors in PandocMonadJesse Rosenthal1-12/+16
Errors can be thrown purely with `throwError`. At the moment there are only three kinds of errors: 1. PandocFileReadError FilePath (for problems reading a file from the filesystem) 2. PandocShouldNeverHappenError String (for stuff that should never happen but we need to pattern-match anyway) 3. PandocSomeError String (a grab bag of everything else) Of course, we need to subdivide the third item in this list.
2017-01-25Convert all writers to use PandocMonad.Jesse Rosenthal1-22/+22
Since PandocMonad is an instance of MonadError, this will allow us, in a future commit, to change all invocations of `error` to `throwError`, which will be preferable for the pure versions. At the moment, we're disabling the lua custom writers (this is temporary). This requires changing the type of the Writer in Text.Pandoc. Right now, we run `runIOorExplode` in pandoc.hs, to make the conversion easier. We can switch it to the safer `runIO` in the future. Note that this required a change to Text.Pandoc.PDF as well. Since running an external program is necessarily IO, we can be clearer about using PandocIO.
2017-01-25Convert writers to use PandocMonad typeclass.Jesse Rosenthal1-24/+25
Instead of Free Monad with runIO
2017-01-25Free: Remove readFileUTF8.Jesse Rosenthal1-1/+1
This is just defined in term of a bytestring, so we convert when necessary.
2017-01-25Remove IO UUID functions.Jesse Rosenthal1-1/+2
2017-01-25Implement runTest functions.Jesse Rosenthal1-5/+3
These work with a State monad and a Reader monad to produce deterministic results. It can probably be simplified somewhat.
2017-01-25Remove IORef from EPUB writer.Jesse Rosenthal1-51/+62
2017-01-25Introduce pure versions of IO Writers.Jesse Rosenthal1-37/+44
Using Text.Pandoc.Free, introduce pure versions of Docx, EPUB, ICML, and ODT writers. Each of the pure versions is exported along with the IO version (produced by running `runIO` on the pure reader). Ideally, this should make the writers easier to test.
2016-11-30Options: Removed writerStandalone, made writerTemplate a Maybe.John MacFarlane1-1/+0
Previously setting writerStandalone = True did nothing unless a template was provided in writerTemplate. Now a fragment will be generated if writerTemplate is Nothing; otherwise, the specified template will be used and standalone output generated. [API change]
2016-10-02EPUB writer: use stringify instead of plain writer for metadata.John MacFarlane1-6/+4
This means that underscores won't be used for emphasis, or CAPS for bold. The metadata fields will just have unadorned text. Closes #3066.
2016-07-14Fixed compiler warnings.John MacFarlane1-1/+1
2016-03-26EPUB writer: set 'navpage' variable on nav page.John MacFarlane1-1/+2
This allows templates to treat it differently.
2016-01-22Changed type of Shared.uniqueIdent argument from [String] to Set String.John MacFarlane1-2/+3
This avoids performance problems in documents with many identically named headers. Closes #2671.
2015-12-11Implemented SoftBreak and new `--wrap` option.John MacFarlane1-1/+2
Added threefold wrapping option. * Command line option: deprecated `--no-wrap`, added `--wrap=[auto|none|preserve]` * Added WrapOption, exported from Text.Pandoc.Options * Changed type of writerWrapText in WriterOptions from Bool to WrapOption. * Modified Text.Pandoc.Shared functions for SoftBreak. * Supported SoftBreak in writers. * Updated tests. * Updated README. Closes #1701.
2015-11-19Merge branch 'new-image-attributes' of https://github.com/mb21/pandoc into ↵John MacFarlane1-6/+6
mb21-new-image-attributes * Bumped version to 1.16. * Added Attr field to Link and Image. * Added `common_link_attributes` extension. * Updated readers for link attributes. * Updated writers for link attributes. * Updated tests * Updated stack.yaml to build against unreleased versions of pandoc-types and texmath. * Fixed various compiler warnings. Closes #261. TODO: * Relative (percentage) image widths in docx writer. * ODT/OpenDocument writer (untested, same issue about percentage widths). * Update pandoc-citeproc.
2015-11-12EPUB writer: don't download linked media when `data-external` attribute set.John MacFarlane1-1/+2
By default pandoc downloads all linked media and includes it in the EPUB container. This can be disabled by setting `data-external` on the tags linking to media that should not be downloaded. Example: <audio controls="1"> <source src="http://www.sixbarsjail.it/tmp/bach_toccata.mp3" type="audio/mpeg"></source> </audio> Closes #2473.
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-14More changes to avoid compiler warnings on ghc 7.10.John MacFarlane1-2/+1
* CPP around deprecated `parseTime`. * Text.Pandoc.Compat.Locale -> Text.Pandoc.Compat.Time, now exports Data.Time.
2015-10-14Use custom Prelude to avoid compiler warnings.John MacFarlane1-1/+0
- 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-10-13epub with `--webtex`: include image file rather than data: URI.John MacFarlane1-12/+8
Closes #2363.
2015-08-07Updated readers, writers and README for link attributemb211-3/+3
2015-08-07Updated readers and writers for new image attribute parameter.John MacFarlane1-2/+2
(mb21)
2015-05-27Fixed compiler warning.John MacFarlane1-1/+1
2015-05-27EPUB writer: Improved chapter splitting and internal link rewriting.John MacFarlane1-53/+34
Closes #1887. Closes #2163. Closes #2162.
2015-05-21EPUB writer: Split references into separate chapter.John MacFarlane1-0/+4
Previously the div-enclosed reference section produced by pandoc-citeproc would not be split into its own chapter, which caused various problems. See #2162, #2163. I'm not sure this is a complete fix. I note that the bibliography doesn't appear in nav or toc, which seems bad.
2015-05-13EPUB writer: Properly handle image URLs without an extension.John MacFarlane1-36/+42
We now look at the mime type from the server and attach an appropriate extension. Closes #1855.
2015-05-09Revert "EPUB writer: stylesheet changes. Closes #2040."John MacFarlane1-26/+18
This reverts commit 1c2951dfd9ee72e5270cb974a06098adb9178f89. See #2040. The semantics was too squishy. `--css` takes a URL, but for EPUB we need files that we can read. I prefer keeping the old system for now, with `--epub-stylesheet`.
2015-05-08EPUB writer: stylesheet changes. Closes #2040.John MacFarlane1-18/+26
* Allow `--css` to be used to specify stylesheets. * Deprecated `--epub-stylesheet` and made it a synoynym of `--css`. * If a code block with class "css" is given as contents of the `stylesheet` metadata field, use its literal code as contents of the epub stylesheet. Otherwise, treat it as a filename and read the file. * Note: `--css` and `stylesheet` in metadata are not compatible. `stylesheet` takes precedence.
2015-05-01EPUB writer: Use plain writer for metadata dc: fields.John MacFarlane1-2/+5
This gives better results when we have, e.g. multiple paragraphs. Note that tags aren't allowed in these fields. Closes #2121.
2015-04-26EPUB writer: Remove linear=no from cover itemref.John MacFarlane1-1/+1
Closes #1609.
2015-04-26Updated copyright notices to -2015. Closes #2111.John MacFarlane1-2/+2
2015-04-02EPUB writer: Take TOC title from toc-title metadata field.John MacFarlane1-2/+5
2015-02-13Allow wildcards in `--epub-embed-font` arguments.John MacFarlane1-2/+9
Closes #1939.
2015-01-17EPUB writer: properly handle internal links to IDs in spans, divs.John MacFarlane1-11/+18
Closes #1884.
2015-01-05ghc 7.10.1 RC1 requires FlexibleContexts ↵Mark Wright1-1/+1
https://ghc.haskell.org/trac/ghc/wiki/Migration/7.10#Inferredtype-signaturesnowmayrequiretoenableFlexibleContextsGADTsorTypeFamilies
2014-12-19Added Text.Pandoc.Compat.Locale to assist with transition to time 1.5.John MacFarlane1-2/+1
2014-12-15EPUB writer: include "landmarks" section in nav document for epub3.John MacFarlane1-3/+23
Closes #1757.
2014-12-15EPUB writer: Removed playOrder from navpoint elements in ncx file.John MacFarlane1-2/+1
These aren't required, and they make manual modification of epubs difficult. Closes #1760.
2014-11-17Really fix #1758. Add `id="cover"` to body on cover page.John MacFarlane1-2/+3
Not title page!
2014-11-16Use regular page template for nav.xhtml.John MacFarlane1-11/+8
This includes the HTML doctype. Closes #1759.
2014-10-08EPUB reader: Further URI handling improvements.John MacFarlane1-25/+12
Now we outsource most of the work to `fetchItem'`. Also, do not include queries in file extensions. Improves fix to #1671. It is possible that this will have some unexpected effects, so further testing would be good.
2014-10-08EPUB writer: correctly resolve relative URIs. (Closes #1671.)John MacFarlane1-11/+14
2014-10-08Fixed absolute URI detection in EPUB writer. Closes #1672.John MacFarlane1-2/+2
2014-10-08EPUB writer: Don't add sourceURL to absolute URIs!John MacFarlane1-5/+10
Closes #1669. If there are further issues, please open a new, targeted issue on the tracker. Some notes on the further issues you gestured at: Data URIs are indeed dereferenced, but why is this a problem? (The function being used to fetch from URLs is used for many different formats. Preserving data URIs would make sense in EPUBs, but not for e.g. PDF output. And by dereferencing we can get a smaller, more efficient EPUB, with the data stored as bytes in a file rather than encoded in textual representation.) "absolute uris are not recognized" -- I assume that is the problem just fixed. If not, please open a new issue. "relative uris are resolved (wrongly) like file paths" -- can you give an example? `<base>` tag is ignored. Yes. I didn't know about the base tag. Could you open a new issue just for this?
2014-09-01EPUB writer: Don't include nav node in spine unless --toc was requested.John MacFarlane1-4/+2
Previously we included it in the spine with `linear="no"`, leading to odd results in some readers. Closes #1593.
2014-09-01EPUB writer: Fixed typo.John MacFarlane1-1/+1
2014-08-31EPUB writer: Extract title even from structured title.John MacFarlane1-7/+21
Added docTitle'.
2014-08-31EPUB writer: Don't use opf:title-type for epub2.John MacFarlane1-2/+2
It is not supported and epubcheck complains.
2014-08-30Merge branch 'mime' of https://github.com/Aelve/John into Aelve-mimeJohn MacFarlane1-2/+2
Conflicts: src/Text/Pandoc/Writers/Docx.hs