Improved reading <xref> elements in DocBook files (#8065)

<xref> elements can also be used to link to <figure> elements. Alas, the
DocBook reader was not aware of this and thus generated a link text
which just said 'figure_title'.

https://tdg.docbook.org/tdg/4.5/figure.html explains that <figure>
elements can contain <title> elements, so let's try to use that if it is
available.
This commit is contained in:
Frerich Raabe 2022-05-12 04:07:03 +02:00 committed by GitHub
parent b0195b7ef4
commit b888a8c77e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 53 additions and 1 deletions

View file

@ -1342,6 +1342,7 @@ parseInline (Elem e) =
"sect5" -> descendantContent "title" el
"cmdsynopsis" -> descendantContent "command" el
"funcsynopsis" -> descendantContent "function" el
"figure" -> descendantContent "title" el
_ -> qName (elName el) <> "_title"
where
xrefLabel = attrValue "xreflabel" el

View file

@ -24,6 +24,9 @@ cross-reference text: <xref linkend="ch02"/>.
<listitem><para>A link to an
<sgmltag>funcsynopsis</sgmltag> element: <xref linkend="func01"/>.
</para></listitem>
<listitem><para>A link to a
<sgmltag>figure</sgmltag> element: <xref linkend="fig01"/>.
</para></listitem>
</itemizedlist>
</chapter>
@ -65,6 +68,14 @@ cross-reference text: <xref linkend="ch02"/>.
</funcprototype>
</funcsynopsis>
<figure id="fig01"><title>The Pythagorean Theorem Illustrated</title>
<mediaobject>
<imageobject>
<imagedata fileref="figures/pythag.png"/>
</imageobject>
<textobject><phrase>An illustration of the Pythagorean Theorem</phrase></textobject>
</mediaobject>
</figure>
</chapter>
</book>

View file

@ -141,6 +141,33 @@ Pandoc
, Str "."
]
]
, [ Para
[ Str "A"
, Space
, Str "link"
, Space
, Str "to"
, Space
, Str "a"
, SoftBreak
, Str "figure"
, Space
, Str "element:"
, Space
, Link
( "" , [] , [] )
[ Str "The"
, Space
, Str "Pythagorean"
, Space
, Str "Theorem"
, Space
, Str "Illustrated"
]
( "#fig01" , "" )
, Str "."
]
]
]
, Header
1
@ -174,4 +201,17 @@ Pandoc
, Plain [ Str "int1" ]
, Plain [ Str "int" ]
, Plain [ Str "int2" ]
, Para
[ Image
( "fig01" , [] , [] )
[ Str "The"
, Space
, Str "Pythagorean"
, Space
, Str "Theorem"
, Space
, Str "Illustrated"
]
( "figures/pythag.png" , "fig:" )
]
]