DocBook reader: Fix adding wrong metadata (#11347)

Now keep track of the current element stack to only add metadata if
inside an appropriate parent element.

Closes #11300.
This commit is contained in:
Tuong Nguyen Manh
2025-12-13 22:28:59 +01:00
committed by GitHub
parent 5673316d4c
commit e8ed40ef01
2 changed files with 82 additions and 6 deletions
+67
View File
@@ -0,0 +1,67 @@
```
% pandoc -f docbook -t native -s
<?xml version="1.0"?>
<book xmlns="http://docbook.org/ns/docbook" version="5.0" dir="ltr">
<info>
<title>Book title</title>
<subtitle>Book subtitle</subtitle>
</info>
<chapter>
<info>
<title>Chapter title</title>
</info>
<para>My sentence</para>
</chapter>
</book>
^D
Pandoc
Meta
{ unMeta =
fromList
[ ( "subtitle"
, MetaInlines [ Str "Book" , Space , Str "subtitle" ]
)
, ( "title"
, MetaInlines [ Str "Book" , Space , Str "title" ]
)
]
}
[ Header
1 ( "" , [] , [] ) [ Str "Chapter" , Space , Str "title" ]
, Para [ Str "My" , Space , Str "sentence" ]
]
```
```
% pandoc -f docbook -t native -s
<?xml version="1.0"?>
<book xmlns="http://docbook.org/ns/docbook" version="5.0" dir="ltr">
<chapter>
<info>
<title>Chapter title</title>
</info>
<para>My sentence</para>
</chapter>
<info>
<title>Book title</title>
<subtitle>Book subtitle</subtitle>
</info>
</book>
^D
Pandoc
Meta
{ unMeta =
fromList
[ ( "subtitle"
, MetaInlines [ Str "Book" , Space , Str "subtitle" ]
)
, ( "title"
, MetaInlines [ Str "Book" , Space , Str "title" ]
)
]
}
[ Header
1 ( "" , [] , [] ) [ Str "Chapter" , Space , Str "title" ]
, Para [ Str "My" , Space , Str "sentence" ]
]
```