On 25.11.23 21:44, Tomas Vondra wrote:
while working on a patch I noticed we do this in the SGML docs (for
example in indexam.sgml and a bunch of other files):
<para>
... some text ...
</para>
<para>
<programlisting>
some code
</programlisting>
... description of the code.
</para>
That is, the program listing is in a paragraph that starts immediately
before it. I just noticed this ends up like this in the HTML:
<p>... some text ...</p>
<p></p>
<pre>some code</pre>
<p>... description of the code.</p>
That is, there's an empty <p></p> before <pre>, which seems a bit weird,
but it seems to render fine (at least in Firefox), so maybe it looks
weird but is not a problem in practice ...
This is because in HTML you can't have <pre> inside <p> but in DocBook
you can have <programlisting> inside <para> (and other similar cases).
So the DocBook XSLT stylesheets fix that up by splitting the <p> into
separate <p> elements before and after the <pre>. It's just a
coincidence that one of them is empty in this case.