git.iko.soy/typeable/pandoc
on master help sign in
Handle the case where the "cover" meta does not link to the manifest
4334788blmage
src/Text/Pandoc/Readers/EPUB.hs+2−2
@@ -21,7 +21,7 @@ import Prelude
21import Codec.Archive.Zip (Archive (..), Entry, findEntryByPath, fromEntry,
21import Codec.Archive.Zip (Archive (..), Entry, findEntryByPath, fromEntry,
22 toArchiveOrFail)
22 toArchiveOrFail)
23import Control.DeepSeq (NFData, deepseq)
23import Control.DeepSeq (NFData, deepseq)
24−import Control.Monad (guard, liftM, liftM2)
24+import Control.Monad (guard, liftM, liftM2, mplus)
25import Control.Monad.Except (throwError)
25import Control.Monad.Except (throwError)
26import qualified Data.ByteString.Lazy as BL (ByteString)
26import qualified Data.ByteString.Lazy as BL (ByteString)
27import Data.List (isInfixOf, isPrefixOf)
27import Data.List (isInfixOf, isPrefixOf)
@@ -134,7 +134,7 @@ parseManifest content coverId = do
134 let items = findChildren (dfName "item") manifest
134 let items = findChildren (dfName "item") manifest
135 r <- mapM parseItem items
135 r <- mapM parseItem items
136 let cover = findAttr (emptyName "href") =<< filterChild findCover manifest
136 let cover = findAttr (emptyName "href") =<< filterChild findCover manifest
137− return (cover, M.fromList r)
137+ return (cover `mplus` coverId, M.fromList r)
138 where
138 where
139 findCover e = maybe False (isInfixOf "cover-image")
139 findCover e = maybe False (isInfixOf "cover-image")
140 (findAttr (emptyName "properties") e)
140 (findAttr (emptyName "properties") e)