RIS reader: support ID and DO fields.

This commit is contained in:
John MacFarlane 2022-02-05 23:34:44 -08:00
parent 3da5440858
commit 6cc253aab6
2 changed files with 8 additions and 2 deletions

View file

@ -88,6 +88,7 @@ risRecordToReference keys = addId $ foldr go defref keys
case key of
"TY" -> \ref -> ref{ referenceType =
fromMaybe "misc" (M.lookup val risTypes) }
"ID" -> \ref -> ref{ referenceId = ItemId val }
"VL" -> addVar "volume" val
"KW" -> \ref ->
ref{ referenceVariables =
@ -100,6 +101,7 @@ risRecordToReference keys = addId $ foldr go defref keys
(referenceVariables ref) }
"PB" -> addVar "publisher" val
"PP" -> addVar "publisher-place" val
"DO" -> addVar "DOI" val
"SP" -> \ref ->
case M.lookup "page" (referenceVariables ref) of
Nothing -> addVar "page" val ref
@ -165,7 +167,10 @@ risRecordToReference keys = addId $ foldr go defref keys
, referenceType = mempty
, referenceDisambiguation = Nothing
, referenceVariables = mempty }
addId rec = rec{ referenceId = ItemId (authors <> pubdate) }
addId rec =
if referenceId rec == mempty
then rec{ referenceId = ItemId (authors <> pubdate) }
else rec
authors = T.intercalate "_" $
[T.takeWhile (\c -> c /= ',' && not (isSpace c)) n
| (k, n) <- keys, k == "AU" || k == "A1"]

View file

@ -1,6 +1,7 @@
```
% pandoc -f ris -t csljson
TY - BOOK
ID - Chang_Keisler_Model_Theory
AU - Chang, C. C.
AU - Keisler, H. Jerome
PY - 1990
@ -47,7 +48,7 @@ ER -
}
],
"edition": "3",
"id": "Chang_Keisler_1990",
"id": "Chang_Keisler_Model_Theory",
"issued": {
"date-parts": [
[