From b0cd6c622494666add6bdd7674ec5b7791bc83d0 Mon Sep 17 00:00:00 2001 From: John MacFarlane <jgm@berkeley.edu> Date: Sat, 12 Jun 2021 10:16:44 -0700 Subject: [PATCH] Fix regression in citeproc processing. If inline references are used (in the metadata `references` field), we should still only include in the bibliography items that are actually cited -- unless `nocite` is used. Closes #7376. --- src/Text/Pandoc/Citeproc.hs | 4 +++- test/command/7376.md | 16 ++++++++++++++++ test/command/pandoc-citeproc-356.md | 9 ++------- 3 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 test/command/7376.md diff --git a/src/Text/Pandoc/Citeproc.hs b/src/Text/Pandoc/Citeproc.hs index ad3b26c0f..a5b26c9b4 100644 --- a/src/Text/Pandoc/Citeproc.hs +++ b/src/Text/Pandoc/Citeproc.hs @@ -194,7 +194,9 @@ getReferences mblocale (Pandoc meta bs) = do then const True else (`Set.member` citeIds) let inlineRefs = case lookupMeta "references" meta of - Just (MetaList rs) -> mapMaybe metaValueToReference rs + Just (MetaList rs) -> + filter (idpred . unItemId . referenceId) + $ mapMaybe metaValueToReference rs _ -> [] externalRefs <- case lookupMeta "bibliography" meta of Just (MetaList xs) -> diff --git a/test/command/7376.md b/test/command/7376.md new file mode 100644 index 000000000..229c61cfb --- /dev/null +++ b/test/command/7376.md @@ -0,0 +1,16 @@ +``` +% pandoc --citeproc -t plain +--- +references: +- id: item1 + type: book + author: + - family: Doe + given: Jane + issued: 2020 + title: The title +... +^D + + +``` diff --git a/test/command/pandoc-citeproc-356.md b/test/command/pandoc-citeproc-356.md index 4463ef63f..b4f998dae 100644 --- a/test/command/pandoc-citeproc-356.md +++ b/test/command/pandoc-citeproc-356.md @@ -15,11 +15,6 @@ references: [@bar] ^D -(Alice 2042) - -::: {#refs .references .csl-bib-body .hanging-indent} -::: {#ref-foo .csl-entry} -Alice. 2042. -::: -::: +[WARNING] Citeproc: citation bar not found +(**bar?**) ```