diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2022-02-05 23:34:44 -0800 |
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2022-02-05 23:34:44 -0800 |
| commit | 6cc253aab68fa7b1bb53704350923628826464ea (patch) | |
| tree | 3037f8c747f9c24c50552ff64badbb861b8c7f8b /src | |
| parent | 3da5440858c7542d6405f4a579071bc7c2ea3a11 (diff) | |
RIS reader: support ID and DO fields.
Diffstat (limited to 'src')
| -rw-r--r-- | src/Text/Pandoc/Readers/RIS.hs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/RIS.hs b/src/Text/Pandoc/Readers/RIS.hs index d81b265d1..27c92cec9 100644 --- a/src/Text/Pandoc/Readers/RIS.hs +++ b/src/Text/Pandoc/Readers/RIS.hs @@ -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"] |
