DocBook Reader: fix duplicate bibliography bug (#6773)

Also add unit test to ensure the behavior stays consistent.
This commit is contained in:
Nils Carlson 2020-10-26 19:49:03 +00:00 committed by GitHub
parent 9ab04a92f8
commit dd3d920ba0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 5 deletions

View file

@ -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)

View file

@ -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"]]
```