Docx writer: fixed core metadata.

- Don't create empty date nodes if no date given.
- Don't create multiple dc:creator nodes; instead separate by
  semicolons.

Closes #1046.
This commit is contained in:
John MacFarlane 2013-11-07 08:46:52 -08:00
parent 5b99112f22
commit 2efd0951d3

View file

@ -231,10 +231,11 @@ writeDocx opts doc@(Pandoc meta _) = do
,("xmlns:dcmitype","http://purl.org/dc/dcmitype/")
,("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance")]
$ mknode "dc:title" [] (stringify $ docTitle meta)
: mknode "dcterms:created" [("xsi:type","dcterms:W3CDTF")]
(maybe "" id $ normalizeDate $ stringify $ docDate meta)
: mknode "dcterms:modified" [("xsi:type","dcterms:W3CDTF")] () -- put current time here
: map (mknode "dc:creator" [] . stringify) (docAuthors meta)
: mknode "dc:creator" [] (intercalate "; " (map stringify $ docAuthors meta))
: maybe []
(\x -> [ mknode "dcterms:created" [("xsi:type","dcterms:W3CDTF")] $ x
, mknode "dcterms:modified" [("xsi:type","dcterms:W3CDTF")] $ x
]) (normalizeDate $ stringify $ docDate meta)
let docPropsEntry = toEntry docPropsPath epochtime $ renderXml docProps
let relsPath = "_rels/.rels"