diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2022-03-29 19:41:14 -0700 |
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2022-03-29 19:41:14 -0700 |
| commit | 76748ee0fec8c2c1b8b85d6c8dfb0c5ad168d171 (patch) | |
| tree | 8bc99487aaa238f47723f513074541c593bfd2e6 /src/Text | |
| parent | a9498a15687e072b1694aa037c1fc96554310cc1 (diff) | |
JATS reader: handle pub-date.
Closes #8000.
Diffstat (limited to 'src/Text')
| -rw-r--r-- | src/Text/Pandoc/Readers/JATS.hs | 14 |
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 |
