JATS writer: Fix handling of CSL variable 'page'.

Not 'pages' as we had before.  It should go to 'lpage' and 'rpage',
not 'page-range'.  See
https://jats.nlm.nih.gov/archiving/tag-library/1.1/element/page-range.html

Fixed some mistakes in test #7042.
This commit is contained in:
John MacFarlane 2022-03-28 17:02:10 -07:00
parent 5c7dc4c7f3
commit 6217fd0976
2 changed files with 11 additions and 6 deletions

View file

@ -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 []

View file

@ -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>