EPUB changes.
* Epub writer now exports writeEPUB, not writeEPUB2 and writeEPUB3. * Options now exports EPUBVersion * WriterOptions now includes writerEpubVersion.
This commit is contained in:
parent
ea3eaaa553
commit
0cc9504796
3 changed files with 14 additions and 16 deletions
|
@ -92,8 +92,7 @@ module Text.Pandoc
|
|||
, writeRTF
|
||||
, writeODT
|
||||
, writeDocx
|
||||
, writeEPUB2
|
||||
, writeEPUB3
|
||||
, writeEPUB
|
||||
, writeFB2
|
||||
, writeOrg
|
||||
, writeAsciiDoc
|
||||
|
@ -207,8 +206,10 @@ writers = [
|
|||
,("json" , PureStringWriter $ \_ -> encodeJSON)
|
||||
,("docx" , IOByteStringWriter writeDocx)
|
||||
,("odt" , IOByteStringWriter writeODT)
|
||||
,("epub" , IOByteStringWriter writeEPUB2)
|
||||
,("epub3" , IOByteStringWriter writeEPUB3)
|
||||
,("epub" , IOByteStringWriter $ \o ->
|
||||
writeEPUB o{ writerEpubVersion = Just EPUB2 })
|
||||
,("epub3" , IOByteStringWriter $ \o ->
|
||||
writeEPUB o{ writerEpubVersion = Just EPUB3 })
|
||||
,("fb2" , IOStringWriter writeFB2)
|
||||
,("html" , PureStringWriter writeHtmlString)
|
||||
,("html5" , PureStringWriter $ \o ->
|
||||
|
|
|
@ -36,6 +36,7 @@ module Text.Pandoc.Options ( Extension(..)
|
|||
, CiteMethod (..)
|
||||
, ObfuscationMethod (..)
|
||||
, HTMLSlideVariant (..)
|
||||
, EPUBVersion (..)
|
||||
, WriterOptions (..)
|
||||
, def
|
||||
, isEnabled
|
||||
|
@ -173,6 +174,8 @@ instance Default ReaderOptions
|
|||
-- Writer options
|
||||
--
|
||||
|
||||
data EPUBVersion = EPUB2 | EPUB3 deriving (Eq, Show, Read)
|
||||
|
||||
data HTMLMathMethod = PlainMath
|
||||
| LaTeXMathML (Maybe String) -- url of LaTeXMathML.js
|
||||
| JsMath (Maybe String) -- url of jsMath load script
|
||||
|
@ -234,6 +237,7 @@ data WriterOptions = WriterOptions
|
|||
, writerHighlightStyle :: Style -- ^ Style to use for highlighting
|
||||
, writerSetextHeaders :: Bool -- ^ Use setext headers for levels 1-2 in markdown
|
||||
, writerTeXLigatures :: Bool -- ^ Use tex ligatures quotes, dashes in latex
|
||||
, writerEpubVersion :: Maybe EPUBVersion -- ^ Nothing or EPUB version
|
||||
, writerEpubMetadata :: String -- ^ Metadata to include in EPUB
|
||||
, writerEpubStylesheet :: Maybe String -- ^ EPUB stylesheet specified at command line
|
||||
, writerEpubFonts :: [FilePath] -- ^ Paths to fonts to embed
|
||||
|
@ -274,6 +278,7 @@ instance Default WriterOptions where
|
|||
, writerHighlightStyle = pygments
|
||||
, writerSetextHeaders = True
|
||||
, writerTeXLigatures = True
|
||||
, writerEpubVersion = Nothing
|
||||
, writerEpubMetadata = ""
|
||||
, writerEpubStylesheet = Nothing
|
||||
, writerEpubFonts = []
|
||||
|
|
|
@ -27,7 +27,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|||
|
||||
Conversion of 'Pandoc' documents to EPUB.
|
||||
-}
|
||||
module Text.Pandoc.Writers.EPUB ( writeEPUB2, writeEPUB3 ) where
|
||||
module Text.Pandoc.Writers.EPUB ( writeEPUB ) where
|
||||
import Data.IORef
|
||||
import Data.Maybe ( fromMaybe, isNothing )
|
||||
import Data.List ( isInfixOf, intercalate )
|
||||
|
@ -58,20 +58,12 @@ import Prelude hiding (catch)
|
|||
import Control.Exception (catch, SomeException)
|
||||
import Text.Blaze.Html.Renderer.Utf8 (renderHtml)
|
||||
|
||||
data EPUBVersion = EPUB2 | EPUB3 deriving Eq
|
||||
|
||||
writeEPUB2, writeEPUB3 :: WriterOptions -- ^ Writer options
|
||||
-> Pandoc -- ^ Document to convert
|
||||
-> IO B.ByteString
|
||||
writeEPUB2 = writeEPUB EPUB2
|
||||
writeEPUB3 = writeEPUB EPUB3
|
||||
|
||||
-- | Produce an EPUB file from a Pandoc document.
|
||||
writeEPUB :: EPUBVersion
|
||||
-> WriterOptions -- ^ Writer options
|
||||
writeEPUB :: WriterOptions -- ^ Writer options
|
||||
-> Pandoc -- ^ Document to convert
|
||||
-> IO B.ByteString
|
||||
writeEPUB version opts doc@(Pandoc meta _) = do
|
||||
writeEPUB opts doc@(Pandoc meta _) = do
|
||||
let version = maybe EPUB2 id (writerEpubVersion opts)
|
||||
let epub3 = version == EPUB3
|
||||
epochtime <- floor `fmap` getPOSIXTime
|
||||
let mkEntry path content = toEntry path epochtime content
|
||||
|
|
Loading…
Add table
Reference in a new issue