@@ -41,6 +41,7 @@ import qualified Text.Pandoc.Class as P
41import Data.Time
41import Data.Time
42import Text.Pandoc.Definition
42import Text.Pandoc.Definition
43import Text.Pandoc.Error
43import Text.Pandoc.Error
44+import Text.Pandoc.ImageSize
44import Text.Pandoc.Logging
45import Text.Pandoc.Logging
45import Text.Pandoc.MIME (MimeType, extensionFromMimeType, getMimeType)
46import Text.Pandoc.MIME (MimeType, extensionFromMimeType, getMimeType)
46import Text.Pandoc.Options (EPUBVersion (..), HTMLMathMethod (..),
47import Text.Pandoc.Options (EPUBVersion (..), HTMLMathMethod (..),
@@ -450,14 +451,23 @@ pandocToEPUB version opts doc = do
450 Nothing -> return ([],[])
451 Nothing -> return ([],[])
451 Just img -> do
452 Just img -> do
452 let coverImage = takeFileName img
453 let coverImage = takeFileName img
454+ imgContent <- lift $ P.readFileLazy img
455+ (coverImageWidth, coverImageHeight) <-
456+ case imageSize opts' (B.toStrict imgContent) of
457+ Right sz -> return $ sizeInPixels sz
458+ Left err' -> (0, 0) <$ report
459+ (CouldNotDetermineImageSize img err')
453 cpContent <- lift $ writeHtml
460 cpContent <- lift $ writeHtml
454 opts'{ writerVariables =
461 opts'{ writerVariables =
455 ("coverpage","true"):
462 ("coverpage","true"):
456 ("pagetitle",
463 ("pagetitle",
457 escapeStringForXML plainTitle):
464 escapeStringForXML plainTitle):
465+ ("cover-image", coverImage):
466+ ("cover-image-width", show coverImageWidth):
467+ ("cover-image-height",
468+ show coverImageHeight):
458 cssvars True ++ vars }
469 cssvars True ++ vars }
459− (Pandoc meta [RawBlock (Format "html") $ "<div id=\"cover-image\">\n<img src=\"../media/" ++ coverImage ++ "\" alt=\"cover image\" />\n</div>"])
470+ (Pandoc meta [])
460− imgContent <- lift $ P.readFileLazy img
461 coverEntry <- mkEntry "text/cover.xhtml" cpContent
471 coverEntry <- mkEntry "text/cover.xhtml" cpContent
462 coverImageEntry <- mkEntry ("media/" ++ coverImage)
472 coverImageEntry <- mkEntry ("media/" ++ coverImage)
463 imgContent
473 imgContent