From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Stefan Hajnoczi" <stefanha@redhat.com>,
"Hanna Reitz" <hreitz@redhat.com>,
"Michael Roth" <michael.roth@amd.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Victor Toso de Carvalho" <victortoso@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Konstantin Kostiuk" <kkostiuk@redhat.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Pavel Dovgalyuk" <pavel.dovgaluk@ispras.ru>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Lukas Straub" <lukasstraub2@web.de>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Mads Ynddal" <mads@ynddal.dk>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Stefan Berger" <stefanb@linux.vnet.ibm.com>,
"Peter Xu" <peterx@redhat.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Cédric Le Goater" <clg@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"Ani Sinha" <anisinha@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
qemu-block@nongnu.org, "Jiri Pirko" <jiri@resnulli.us>,
"Alex Williamson" <alex.williamson@redhat.com>,
"Kevin Wolf" <kwolf@redhat.com>, "Eric Blake" <eblake@redhat.com>,
"John Snow" <jsnow@redhat.com>
Subject: [PATCH 06/13] docs/qapidoc: fix nested parsing under untagged sections
Date: Tue, 18 Jun 2024 20:30:05 -0400 [thread overview]
Message-ID: <20240619003012.1753577-7-jsnow@redhat.com> (raw)
In-Reply-To: <20240619003012.1753577-1-jsnow@redhat.com>
Sphinx does not like sections without titles, because it wants to
convert every section into a reference. When there is no title, it
struggles to do this and transforms the tree inproperly.
Depending on the rST used, this may result in an assertion error deep in
the docutils HTMLWriter.
(Observed when using ".. admonition:: Notes" under such a section - When
this is transformed with its own <title> element, Sphinx is fooled into
believing this title belongs to the section and incorrect mutates the
docutils tree, leading to errors during rendering time.)
When parsing an untagged section (free paragraphs), skip making a hollow
section and instead append the parse results to the prior section.
Many Bothans died to bring us this information.
Signed-off-by: John Snow <jsnow@redhat.com>
---
docs/sphinx/qapidoc.py | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
index f2f2005dd5f..66cf254a624 100644
--- a/docs/sphinx/qapidoc.py
+++ b/docs/sphinx/qapidoc.py
@@ -286,14 +286,20 @@ def _nodes_for_sections(self, doc):
if section.tag and section.tag == 'TODO':
# Hide TODO: sections
continue
+
+ if not section.tag:
+ # Sphinx cannot handle sectionless titles;
+ # Instead, just append the results to the prior section.
+ container = nodes.container()
+ self._parse_text_into_node(section.text, container)
+ nodelist += container.children
+ continue
+
snode = self._make_section(section.tag)
- if section.tag and section.tag.startswith('Example'):
+ if section.tag.startswith('Example'):
snode += self._nodes_for_example(dedent(section.text))
else:
- self._parse_text_into_node(
- dedent(section.text) if section.tag else section.text,
- snode,
- )
+ self._parse_text_into_node(dedent(section.text), snode)
nodelist.append(snode)
return nodelist
--
2.44.0
next prev parent reply other threads:[~2024-06-19 0:32 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-19 0:29 [PATCH 00/13] qapi: convert "Note" and "Example" sections to rST John Snow
2024-06-19 0:30 ` [PATCH 01/13] [DO-NOT-MERGE]: Add some ad-hoc linting helpers John Snow
2024-06-19 0:30 ` [PATCH 02/13] qapi: linter fixups John Snow
2024-06-19 0:30 ` [PATCH 03/13] docs/qapidoc: delint a tiny portion of the module John Snow
2024-06-19 6:28 ` Markus Armbruster
2024-06-19 17:06 ` John Snow
2024-06-19 0:30 ` [PATCH 04/13] qapi/parser: preserve indentation in QAPIDoc sections John Snow
2024-06-19 12:03 ` Markus Armbruster
2024-06-20 14:47 ` John Snow
2024-06-20 15:07 ` Markus Armbruster
2024-06-20 15:14 ` John Snow
2024-06-21 6:38 ` Markus Armbruster
2024-06-21 17:28 ` John Snow
2024-06-22 8:48 ` Markus Armbruster
2024-06-19 0:30 ` [PATCH 05/13] qapi/parser: fix comment parsing immediately following a doc block John Snow
2024-06-19 12:04 ` Markus Armbruster
2024-06-19 0:30 ` John Snow [this message]
2024-06-19 12:05 ` [PATCH 06/13] docs/qapidoc: fix nested parsing under untagged sections Markus Armbruster
2024-06-19 0:30 ` [PATCH 07/13] qapi: fix non-compliant JSON examples John Snow
2024-06-19 12:07 ` Markus Armbruster
2024-06-19 0:30 ` [PATCH 08/13] qapi: ensure all errors sections are uniformly typset John Snow
2024-06-19 12:10 ` Markus Armbruster
2024-06-20 15:25 ` John Snow
2024-06-19 0:30 ` [PATCH 09/13] qapi: convert "Note" sections to plain rST John Snow
2024-06-19 12:49 ` Markus Armbruster
2024-06-20 13:35 ` Markus Armbruster
2024-06-20 15:46 ` John Snow
2024-06-20 18:44 ` John Snow
2024-06-21 12:23 ` Markus Armbruster
2024-06-21 17:41 ` John Snow
2024-06-22 8:52 ` Markus Armbruster
2024-06-20 15:39 ` John Snow
2024-06-21 10:20 ` Markus Armbruster
2024-06-19 13:07 ` Markus Armbruster
2024-06-20 15:40 ` John Snow
2024-06-21 6:39 ` Markus Armbruster
2024-06-20 13:54 ` Markus Armbruster
2024-06-20 15:52 ` John Snow
2024-06-21 12:08 ` Markus Armbruster
2024-06-21 17:33 ` John Snow
2024-06-19 0:30 ` [PATCH 10/13] qapi: update prose in note blocks John Snow
2024-06-19 12:18 ` Markus Armbruster
2024-06-19 0:30 ` [PATCH 11/13] qapi: add markup to " John Snow
2024-06-19 12:19 ` Markus Armbruster
2024-06-19 0:30 ` [PATCH 12/13] qapi/parser: don't parse rST markup as section headers John Snow
2024-06-19 12:55 ` Markus Armbruster
2024-06-19 0:30 ` [PATCH 13/13] qapi: convert "Example" sections to rST John Snow
2024-06-19 13:20 ` Markus Armbruster
2024-06-19 17:32 ` John Snow
2024-06-26 5:17 ` Markus Armbruster
2024-06-26 14:39 ` John Snow
2024-06-26 5:35 ` [PATCH 00/13] qapi: convert "Note" and " Markus Armbruster
2024-07-01 20:28 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240619003012.1753577-7-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=anisinha@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=clg@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=farosas@suse.de \
--cc=hreitz@redhat.com \
--cc=imammedo@redhat.com \
--cc=jasowang@redhat.com \
--cc=jiri@resnulli.us \
--cc=kkostiuk@redhat.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=lukasstraub2@web.de \
--cc=mads@ynddal.dk \
--cc=marcandre.lureau@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=michael.roth@amd.com \
--cc=mst@redhat.com \
--cc=pavel.dovgaluk@ispras.ru \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanb@linux.vnet.ibm.com \
--cc=stefanha@redhat.com \
--cc=victortoso@redhat.com \
--cc=wangyanan55@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).