@@ -600,16 +600,24 @@ addMetadataFromElement e = do
600 Nothing -> return ()
600 Nothing -> return ()
601 Just z -> addMetaField "author" z
601 Just z -> addMetaField "author" z
602 addMetaField "subtitle" e
602 addMetaField "subtitle" e
603− addMetaField "author" e
603+ addAuthor e
604 addMetaField "date" e
604 addMetaField "date" e
605 addMetaField "release" e
605 addMetaField "release" e
606 addMetaField "releaseinfo" e
606 addMetaField "releaseinfo" e
607 return mempty
607 return mempty
610+ case filterChildren (named "author") elt of
612+ [z] -> fromAuthor z >>= addMeta "author"
613+ zs -> mapM fromAuthor zs >>= addMeta "author"
615+ mconcat . intersperse space <$> mapM getInlines (elChildren elt)
608− where addMetaField fieldname elt =
616+ addMetaField fieldname elt =
609− case filterChildren (named fieldname) elt of
617+ case filterChildren (named fieldname) elt of
610− [] -> return ()
618+ [] -> return ()
611− [z] -> getInlines z >>= addMeta fieldname
619+ [z] -> getInlines z >>= addMeta fieldname
612− zs -> mapM getInlines zs >>= addMeta fieldname
620+ zs -> mapM getInlines zs >>= addMeta fieldname
614addMeta :: PandocMonad m => ToMetaValue a => Text -> a -> DB m ()
622addMeta :: PandocMonad m => ToMetaValue a => Text -> a -> DB m ()
615addMeta field val = modify (setMeta field val)
623addMeta field val = modify (setMeta field val)