@@ -32,7 +32,7 @@ module Text.Pandoc.Writers.EPUB ( writeEPUB ) where
3232import Data.IORef
3333import qualified Data.Map as M
3434import Data.Maybe ( fromMaybe )
35−import Data.List ( isInfixOf, intercalate )
35+import Data.List ( isPrefixOf, isInfixOf, intercalate )
3636import System.Environment ( getEnv )
3737import Text.Printf (printf)
3838import System.FilePath ( (</>), takeExtension, takeFileName )
@@ -825,11 +825,11 @@ ppTopElement = ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ++) . unEntity .
825825 unEntity (x:xs) = x : unEntity xs
826826
827827mediaTypeOf :: FilePath -> Maybe String
828−mediaTypeOf x = case getMimeType x of
829− Just y@('i':'m':'a':'g':'e':_) -> Just y
830− Just y@('v':'i':'d':'e':'o':_) -> Just y
831− Just y@('a':'u':'d':'i':'o':_) -> Just y
832− _ -> Nothing
828+mediaTypeOf x =
829+ let mediaPrefixes = ["image", "video", "audio"] in
830+ case getMimeType x of
831+ Just y | any (`isPrefixOf` y) mediaPrefixes -> Just y
832+ _ -> Nothing
833833
834834data IdentState = IdentState{
835835 chapterNumber :: Int,