summaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2022-03-29 19:41:14 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2022-03-29 19:41:14 -0700
commit76748ee0fec8c2c1b8b85d6c8dfb0c5ad168d171 (patch)
tree8bc99487aaa238f47723f513074541c593bfd2e6 /src/Text
parenta9498a15687e072b1694aa037c1fc96554310cc1 (diff)
JATS reader: handle pub-date.
Closes #8000.
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/Readers/JATS.hs14
1 files changed, 14 insertions, 0 deletions
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