aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils Carlson <nils@nilscarlson.se>2020-10-26 19:49:03 +0000
committerGitHub <noreply@github.com>2020-10-26 12:49:03 -0700
commitdd3d920ba096b3415e11ea0a26d1f5efa4b18cc9 (patch)
tree28560bb62b7a370f947da4f42a24955967422341
parent9ab04a92f83b9d9e1ec123c25c10f244e41654e0 (diff)
downloadpandoc-dd3d920ba096b3415e11ea0a26d1f5efa4b18cc9.tar.gz
DocBook Reader: fix duplicate bibliography bug (#6773)
Also add unit test to ensure the behavior stays consistent.
-rw-r--r--src/Text/Pandoc/Readers/DocBook.hs9
-rw-r--r--test/command/docbook-bibliography.md20
2 files changed, 24 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/DocBook.hs b/src/Text/Pandoc/Readers/DocBook.hs
index 26de68f5f..190ba1d31 100644
--- a/src/Text/Pandoc/Readers/DocBook.hs
+++ b/src/Text/Pandoc/Readers/DocBook.hs
@@ -794,11 +794,10 @@ parseBlock (Elem e) =
"titleabbrev" -> skip
"authorinitials" -> skip
"bibliography" -> sect 0
- "bibliodiv" -> do
- tit <- case filterChild (named "title") e of
- Just _ -> sect 1
- Nothing -> return mempty
- (tit <>) <$> parseMixed para (elContent e)
+ "bibliodiv" ->
+ case filterChild (named "title") e of
+ Just _ -> sect 1
+ Nothing -> return mempty
"biblioentry" -> parseMixed para (elContent e)
"bibliomisc" -> parseMixed para (elContent e)
"bibliomixed" -> parseMixed para (elContent e)
diff --git a/test/command/docbook-bibliography.md b/test/command/docbook-bibliography.md
new file mode 100644
index 000000000..37ac05b30
--- /dev/null
+++ b/test/command/docbook-bibliography.md
@@ -0,0 +1,20 @@
+```
+% pandoc -f docbook -t native --quiet
+<bibliodiv>
+<title>Document References</title>
+<bibliomixed>
+<bibliomisc><anchor xml:id="refTheFirst" xreflabel="[1]"/>[1] First reference</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc><anchor xml:id="refTheSecond" xreflabel="[2]"/>[2] Second reference</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc><anchor xml:id="refTheThird" xreflabel="[3]"/>[3] Third reference</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+^D
+[Header 1 ("",[],[]) [Str "Document",Space,Str "References"]
+,Para [Span ("refTheFirst",[],[]) [],Str "[1]",Space,Str "First",Space,Str "reference"]
+,Para [Span ("refTheSecond",[],[]) [],Str "[2]",Space,Str "Second",Space,Str "reference"]
+,Para [Span ("refTheThird",[],[]) [],Str "[3]",Space,Str "Third",Space,Str "reference"]]
+```