diff --git a/src/Text/Pandoc/Writers/JATS/References.hs b/src/Text/Pandoc/Writers/JATS/References.hs index 76e7380dc..720299f05 100644 --- a/src/Text/Pandoc/Writers/JATS/References.hs +++ b/src/Text/Pandoc/Writers/JATS/References.hs @@ -67,14 +67,19 @@ referenceToJATS _opts ref = do , "issue" `varInTag` "issue" , "edition" `varInTag` "edition" , "page-first" `varInTag` "fpage" - , "page-last" `varInTag` "lpage" - , "pages" `varInTag` "page-range" , "ISBN" `varInTag` "isbn" , "ISSN" `varInTag` "issn" , "URL" `varInTag` "uri" , varInTagWith "doi" "pub-id" [("pub-id-type", "doi")] , varInTagWith "pmid" "pub-id" [("pub-id-type", "pmid")] - ] + ] ++ + case lookupVariable "page" ref >>= valToText of + Nothing -> [] + Just val -> + let isdash c = c == '-' || c == '\x2013' + (fpage, lpage) = T.dropWhile isdash <$> T.break isdash val + in [ inTags' "fpage" [] $ literal $ escapeStringForXML fpage, + inTags' "lpage" [] $ literal $ escapeStringForXML lpage ] where varInTag var tagName = varInTagWith var tagName [] diff --git a/test/command/7042.md b/test/command/7042.md index 413ebe704..f3a6b2ed8 100644 --- a/test/command/7042.md +++ b/test/command/7042.md @@ -50,7 +50,7 @@ references: id: full-journal-article-entry issue: 4356 issued: '1953-04-01' - pages: 737-738 + page: 737-738 pmid: 13054692 title: 'Molecular Structure of Nucleic Acids: A Structure for Deoxyribose Nucleic Acid' type: article-journal @@ -133,10 +133,10 @@ references: <year iso-8601-date="1953-04-01">1953</year><month>04</month><day>01</day> <volume>171</volume> <issue>4356</issue> - <fpage>737</fpage> - <page-range>737-738</page-range> <pub-id pub-id-type="doi">10.1038/171737a0</pub-id> <pub-id pub-id-type="pmid">13054692</pub-id> + <fpage>737</fpage> + <lpage>738</lpage> </element-citation> </ref> </ref-list>