git.iko.soy/typeable/pandoc
on master help sign in
Clean up `mediaTypeOf` a bit.
feebab9Artyom Kazak
src/Text/Pandoc/Writers/EPUB.hs+6−6
@@ -32,7 +32,7 @@ module Text.Pandoc.Writers.EPUB ( writeEPUB ) where
32import Data.IORef
32import Data.IORef
33import qualified Data.Map as M
33import qualified Data.Map as M
34import Data.Maybe ( fromMaybe )
34import Data.Maybe ( fromMaybe )
35−import Data.List ( isInfixOf, intercalate )
35+import Data.List ( isPrefixOf, isInfixOf, intercalate )
36import System.Environment ( getEnv )
36import System.Environment ( getEnv )
37import Text.Printf (printf)
37import Text.Printf (printf)
38import System.FilePath ( (</>), takeExtension, takeFileName )
38import System.FilePath ( (</>), takeExtension, takeFileName )
@@ -825,11 +825,11 @@ ppTopElement = ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ++) . unEntity .
825 unEntity (x:xs) = x : unEntity xs
825 unEntity (x:xs) = x : unEntity xs
826
826
827mediaTypeOf :: FilePath -> Maybe String
827mediaTypeOf :: FilePath -> Maybe String
828+mediaTypeOf x =
829+ let mediaPrefixes = ["image", "video", "audio"] in
828−mediaTypeOf x = case getMimeType x of
830+ case getMimeType x of
829− Just y@('i':'m':'a':'g':'e':_) -> Just y
831+ Just y | any (`isPrefixOf` y) mediaPrefixes -> Just y
830− Just y@('v':'i':'d':'e':'o':_) -> Just y
831− Just y@('a':'u':'d':'i':'o':_) -> Just y
832− _ -> Nothing
832+ _ -> Nothing
833
833
834data IdentState = IdentState{
834data IdentState = IdentState{
835 chapterNumber :: Int,
835 chapterNumber :: Int,