From 76748ee0fec8c2c1b8b85d6c8dfb0c5ad168d171 Mon Sep 17 00:00:00 2001 From: John MacFarlane <jgm@berkeley.edu> Date: Tue, 29 Mar 2022 19:41:14 -0700 Subject: [PATCH] JATS reader: handle pub-date. Closes #8000. --- src/Text/Pandoc/Readers/JATS.hs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Text/Pandoc/Readers/JATS.hs b/src/Text/Pandoc/Readers/JATS.hs index 2dee2bab3..9442e2506 100644 --- a/src/Text/Pandoc/Readers/JATS.hs +++ b/src/Text/Pandoc/Readers/JATS.hs @@ -341,6 +341,7 @@ parseMetadata e = do getAuthors e getAffiliations e getAbstract e + getPubDate e return mempty getTitle :: PandocMonad m => Element -> JATS m () @@ -380,6 +381,19 @@ getAbstract e = addMeta "abstract" blks Nothing -> pure () +getPubDate :: PandocMonad m => Element -> JATS m () +getPubDate e = + case filterElement (named "pub-date") e of + Just d -> do + case maybeAttrValue "iso-8601-date" d of + Just isod -> addMeta "date" (text isod) + Nothing -> do + let yr = strContent <$> filterElement (named "year") d + let mon = strContent <$> filterElement (named "month") d + let day = strContent <$> filterElement (named "day") d + addMeta "date" $ text $ T.intercalate "-" $ catMaybes [yr, mon, day] + Nothing -> pure () + getContrib :: PandocMonad m => Element -> JATS m Inlines getContrib x = do given <- maybe (return mempty) getInlines