docs: Adapt to semantic tag usage of docutils-0.17 and later

Docutils-0.17 switched to using <main> instead of a <div
class='document'> and <section> instead of <div class='section'>.

To ensure that our pages still work we need to slightly adapt our XSL
stylesheet to select the <main> tag properly and adapt the CSS to also
select the 'section' element instead of a class and to apply to a <main>
tag with the appropriate names.

Docutils-0.17 also changed to use 'h2' for section heading instead of
'h1'.

Note the styles applied to the 'main' element with certain id can't be
made more universal by just applying to the id itself, as in certain
cases (e.g. 'documentation') we also have sections with that name. This
was previously ensured by also matching the 'document' class which would
make it equal to the 'main' element.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
Peter Krempa 2022-04-12 13:00:45 +02:00
parent b27937972f
commit 8b60342f76
2 changed files with 15 additions and 0 deletions

View File

@ -95,6 +95,7 @@
margin-right: 1em;
}
main,
.document {
margin-left: auto;
margin-right: auto;
@ -104,9 +105,13 @@
width: 70em;
}
main#index,
#index.document,
main#hvsupport,
#hvsupport.document,
main#documentation,
#documentation.document,
main#knowledge-base,
#knowledge-base.document
{
width: inherit;
@ -397,7 +402,9 @@ h6:hover > a.headerlink {
}
div.panel,
#documentation section,
#documentation .section,
#knowledge-base section,
#knowledge-base .section
{
width: 24%;
@ -407,7 +414,9 @@ div.panel,
}
div.panel h2,
#documentation section h2,
#documentation .section h1,
#knowledge-base section h2,
#knowledge-base .section h1 {
margin-top: 0px;
padding: 0.5em;

View File

@ -120,9 +120,15 @@
<body onload="pageload()">
<div id="body">
<xsl:choose>
<!-- docutils-0.16 and older use a div as container for contents -->
<xsl:when test="html:html/html:body/html:div/@class='document'">
<xsl:apply-templates select="/html:html/html:body/*" mode="content"/>
</xsl:when>
<!-- docutils-0.17 adopted use of the 'main' semantic container -->
<xsl:when test="html:html/html:body/html:main">
<xsl:apply-templates select="/html:html/html:body/*" mode="content"/>
</xsl:when>
<!-- for our older html-only files -->
<xsl:otherwise>
<div class="document">
<xsl:if test="html:html/html:body/@id">