@@ -72,13 +72,14 @@ writeEPUB :: EPUBVersion
72 -> Pandoc -- ^ Document to convert
72 -> Pandoc -- ^ Document to convert
73 -> IO B.ByteString
73 -> IO B.ByteString
74writeEPUB version opts doc@(Pandoc meta _) = do
74writeEPUB version opts doc@(Pandoc meta _) = do
75+ let epub3 = version == EPUB3
75 epochtime <- floor `fmap` getPOSIXTime
76 epochtime <- floor `fmap` getPOSIXTime
76 let mkEntry path content = toEntry path epochtime content
77 let mkEntry path content = toEntry path epochtime content
77 let opts' = opts{ writerEmailObfuscation = NoObfuscation
78 let opts' = opts{ writerEmailObfuscation = NoObfuscation
78 , writerStandalone = True
79 , writerStandalone = True
79 , writerWrapText = False }
80 , writerWrapText = False }
80 let sourceDir = writerSourceDirectory opts'
81 let sourceDir = writerSourceDirectory opts'
81− let vars = writerVariables opts'
82+ let vars = ("epub3", if epub3 then "true" else "false"):writerVariables opts'
82 let mbCoverImage = lookup "epub-cover-image" vars
83 let mbCoverImage = lookup "epub-cover-image" vars
84 titlePageTemplate <- readDataFile (writerUserDataDir opts)
85 titlePageTemplate <- readDataFile (writerUserDataDir opts)
@@ -106,7 +107,8 @@ writeEPUB version opts doc@(Pandoc meta _) = do
107 -- title page
108 -- title page
108 let tpContent = fromStringLazy $ writeHtmlString
109 let tpContent = fromStringLazy $ writeHtmlString
109− opts'{writerTemplate = titlePageTemplate}
110+ opts'{writerTemplate = titlePageTemplate,
111+ writerVariables = vars}
110 (Pandoc meta [])
112 (Pandoc meta [])
111 let tpEntry = mkEntry "title_page.xhtml" tpContent
113 let tpEntry = mkEntry "title_page.xhtml" tpContent
@@ -140,7 +142,7 @@ writeEPUB version opts doc@(Pandoc meta _) = do
140 let chapToEntry :: Int -> [Tag String] -> Entry
142 let chapToEntry :: Int -> [Tag String] -> Entry
141 chapToEntry num ts = mkEntry (showChapter num)
143 chapToEntry num ts = mkEntry (showChapter num)
142 $ fromStringLazy
144 $ fromStringLazy
143− $ renderTemplate [("body",renderTags ts), ("pagetitle",show num)]
145+ $ renderTemplate (("body",renderTags ts):("pagetitle",show num):vars)
144 $ pageTemplate
146 $ pageTemplate
146 let chapterEntries = zipWith chapToEntry [1..] chunks
148 let chapterEntries = zipWith chapToEntry [1..] chunks