diff options
author | John MacFarlane <jgm@berkeley.edu> | 2020-10-15 17:41:13 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2020-10-15 17:41:45 -0700 |
commit | eb3307da4e53097da52997e276c08b188ed40960 (patch) | |
tree | 7b28e8ea2c64be6999f34ae10209b4c45954ab6f | |
parent | 988d381aad150431f1b8b46349526fb5379e0fa0 (diff) | |
download | pandoc-eb3307da4e53097da52997e276c08b188ed40960.tar.gz |
Fix handling of xdata in bibtex/biblatex bibliographies.
Closes #6752.
-rw-r--r-- | src/Text/Pandoc/Citeproc/BibTeX.hs | 4 | ||||
-rw-r--r-- | test/command/6752.md | 36 |
2 files changed, 38 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Citeproc/BibTeX.hs b/src/Text/Pandoc/Citeproc/BibTeX.hs index 4828115b6..b24ad0319 100644 --- a/src/Text/Pandoc/Citeproc/BibTeX.hs +++ b/src/Text/Pandoc/Citeproc/BibTeX.hs @@ -61,7 +61,8 @@ readBibtexString :: Variant -- ^ bibtex or biblatex readBibtexString variant locale idpred contents = do case runParser (((resolveCrossRefs variant <$> bibEntries) <* eof) >>= mapM (itemToReference locale variant) . - filter (idpred . identifier)) + filter (\item -> idpred (identifier item) && + entryType item /= "xdata")) (fromMaybe defaultLang $ localeLanguage locale, Map.empty) "" contents of Left err -> Left err @@ -1058,7 +1059,6 @@ getTypeAndGenre :: Bib (Text, Maybe Text) getTypeAndGenre = do lang <- gets localeLang et <- asks entryType - guard $ et /= "xdata" reftype' <- resolveKey' lang <$> getRawField "type" <|> return mempty st <- getRawField "entrysubtype" <|> return mempty diff --git a/test/command/6752.md b/test/command/6752.md new file mode 100644 index 000000000..b2d51d2ca --- /dev/null +++ b/test/command/6752.md @@ -0,0 +1,36 @@ +``` +% pandoc -f biblatex -t csljson +@xdata{XDPubAlfredAKnopf, + publisher = {Alfred A.~Knopf}, + address = {New York, NY} +} +@book{Klinkenborg2012, + author = {Verlyn Klinkenborg}, + title = {Several short sentences about writing}, + date = {2012}, + xdata = {XDPubAlfredAKnopf}, +} +^D +[ + { + "author": [ + { + "family": "Klinkenborg", + "given": "Verlyn" + } + ], + "id": "Klinkenborg2012", + "issued": { + "date-parts": [ + [ + 2012 + ] + ] + }, + "publisher": "Alfred A. Knopf", + "publisher-place": "New York, NY", + "title": "Several short sentences about writing", + "type": "book" + } +] +``` |