git.iko.soy/typeable/pandoc
on master help sign in
Fix handling of xdata in bibtex/biblatex bibliographies.
eb3307dJohn MacFarlane
src/Text/Pandoc/Citeproc/BibTeX.hs+2−2
@@ -61,7 +61,8 @@ readBibtexString :: Variant -- ^ bibtex or biblatex
61readBibtexString variant locale idpred contents = do
61readBibtexString variant locale idpred contents = do
62 case runParser (((resolveCrossRefs variant <$> bibEntries) <* eof) >>=
62 case runParser (((resolveCrossRefs variant <$> bibEntries) <* eof) >>=
63 mapM (itemToReference locale variant) .
63 mapM (itemToReference locale variant) .
64− filter (idpred . identifier))
64+ filter (\item -> idpred (identifier item) &&
65+ entryType item /= "xdata"))
65 (fromMaybe defaultLang $ localeLanguage locale, Map.empty)
66 (fromMaybe defaultLang $ localeLanguage locale, Map.empty)
66 "" contents of
67 "" contents of
67 Left err -> Left err
68 Left err -> Left err
@@ -1058,7 +1059,6 @@ getTypeAndGenre :: Bib (Text, Maybe Text)
1058getTypeAndGenre = do
1059getTypeAndGenre = do
1059 lang <- gets localeLang
1060 lang <- gets localeLang
1060 et <- asks entryType
1061 et <- asks entryType
1061− guard $ et /= "xdata"
1062 reftype' <- resolveKey' lang <$> getRawField "type"
1062 reftype' <- resolveKey' lang <$> getRawField "type"
1063 <|> return mempty
1063 <|> return mempty
1064 st <- getRawField "entrysubtype" <|> return mempty
1064 st <- getRawField "entrysubtype" <|> return mempty
test/command/6752.mdnew file+36
@@ -0,0 +1,36 @@
1+```
2+% pandoc -f biblatex -t csljson
3+@xdata{XDPubAlfredAKnopf,
4+    publisher   = {Alfred A.~Knopf},
5+    address     = {New York, NY}
6+}
7+@book{Klinkenborg2012,
8+    author      = {Verlyn Klinkenborg},
9+    title       = {Several short sentences about writing},
10+    date        = {2012},
11+    xdata       = {XDPubAlfredAKnopf},
12+}
13+^D
14+[
15+ {
16+ "author": [
17+ {
18+ "family": "Klinkenborg",
19+ "given": "Verlyn"
20+ }
21+ ],
22+ "id": "Klinkenborg2012",
23+ "issued": {
24+ "date-parts": [
25+ [
26+ 2012
27+ ]
28+ ]
29+ },
30+ "publisher": "Alfred A. Knopf",
31+ "publisher-place": "New York, NY",
32+ "title": "Several short sentences about writing",
33+ "type": "book"
34+ }
35+]
36+```