git.iko.soy/typeable/pandoc
on master help sign in
Don't strip meta and link elements in epub metadata.
d7e658cJohn MacFarlane
src/Text/Pandoc/Writers/EPUB.hs+5−3
@@ -248,12 +248,14 @@ metadataElement metadataXML uuid lang title authors date mbCoverImage =
248 let userNodes = parseXML metadataXML
248 let userNodes = parseXML metadataXML
249 elt = unode "metadata" ! [("xmlns:dc","http://purl.org/dc/elements/1.1/")
249 elt = unode "metadata" ! [("xmlns:dc","http://purl.org/dc/elements/1.1/")
250 ,("xmlns:opf","http://www.idpf.org/2007/opf")] $
250 ,("xmlns:opf","http://www.idpf.org/2007/opf")] $
251− filter isDublinCoreElement $ onlyElems userNodes
251+ filter isMetadataElement $ onlyElems userNodes
252 dublinElements = ["contributor","coverage","creator","date",
252 dublinElements = ["contributor","coverage","creator","date",
253 "description","format","identifier","language","publisher",
253 "description","format","identifier","language","publisher",
254 "relation","rights","source","subject","title","type"]
254 "relation","rights","source","subject","title","type"]
255− isDublinCoreElement e = qPrefix (elName e) == Just "dc" &&
255+ isMetadataElement e = (qPrefix (elName e) == Just "dc" &&
256− qName (elName e) `elem` dublinElements
256+ qName (elName e) `elem` dublinElements) ||
257+ (qPrefix (elName e) == Nothing &&
258+ qName (elName e) `elem` ["link","meta"])
257 contains e n = not (null (findElements (QName n Nothing (Just "dc")) e))
259 contains e n = not (null (findElements (QName n Nothing (Just "dc")) e))
258 newNodes = [ unode "dc:title" title | not (elt `contains` "title") ] ++
260 newNodes = [ unode "dc:title" title | not (elt `contains` "title") ] ++
259 [ unode "dc:language" lang | not (elt `contains` "language") ] ++
261 [ unode "dc:language" lang | not (elt `contains` "language") ] ++