@@ -401,15 +401,21 @@ writeEPUB opts doc@(Pandoc meta _) = do
401 let chapterEntries = zipWith chapToEntry [1..] chapters
401 let chapterEntries = zipWith chapToEntry [1..] chapters
403 -- incredibly inefficient (TODO):
403 -- incredibly inefficient (TODO):
404+ let containsMathML ent = epub3 &&
404− let containsMathML ent = "<math" `isInfixOf` (B8.unpack $ fromEntry ent)
405+ "<math" `isInfixOf` (B8.unpack $ fromEntry ent)
406+ let containsSVG ent = epub3 &&
407+ "<svg" `isInfixOf` (B8.unpack $ fromEntry ent)
408+ let props ent = ["mathml" | containsMathML ent] ++ ["svg" | containsSVG ent]
406 -- contents.opf
410 -- contents.opf
407 let chapterNode ent = unode "item" !
411 let chapterNode ent = unode "item" !
408 ([("id", takeBaseName $ eRelativePath ent),
412 ([("id", takeBaseName $ eRelativePath ent),
409 ("href", eRelativePath ent),
413 ("href", eRelativePath ent),
410 ("media-type", "application/xhtml+xml")]
414 ("media-type", "application/xhtml+xml")]
415+ ++ case props ent of
411− ++ [("properties","mathml") | epub3 &&
417+ xs -> [("properties", unwords xs)])
412− containsMathML ent]) $ ()
418+ $ ()
413 let chapterRefNode ent = unode "itemref" !
419 let chapterRefNode ent = unode "itemref" !
414 [("idref", takeBaseName $ eRelativePath ent)] $ ()
420 [("idref", takeBaseName $ eRelativePath ent)] $ ()
415 let pictureNode ent = unode "item" !
421 let pictureNode ent = unode "item" !