diff options
author | Nils Carlson <nils@nilscarlson.se> | 2020-10-26 19:49:03 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-26 12:49:03 -0700 |
commit | dd3d920ba096b3415e11ea0a26d1f5efa4b18cc9 (patch) | |
tree | 28560bb62b7a370f947da4f42a24955967422341 | |
parent | 9ab04a92f83b9d9e1ec123c25c10f244e41654e0 (diff) | |
download | pandoc-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.hs | 9 | ||||
-rw-r--r-- | test/command/docbook-bibliography.md | 20 |
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"]] +``` |