qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] docs/sphinx: fix extra stuff in TOC after freeform QMP sections
@ 2024-08-22 20:48 John Snow
  2024-08-27  9:40 ` Markus Armbruster
  0 siblings, 1 reply; 2+ messages in thread
From: John Snow @ 2024-08-22 20:48 UTC (permalink / raw)
  To: qemu-devel; +Cc: Markus Armbruster, Peter Maydell, Michael Roth, John Snow

Freeform sections with titles are currently generating a TOC entry for
the first paragraph in the section after the header, which is not what
we want.

(Easiest to observe directly in the QMP reference manual's
"Introduction" section.)

When freeform sections are parsed, we create both a section header *and*
an empty, title-less section. This causes some problems with sphinx's
post-parse tree transforms, see also 2664f317 - this is a similar issue:
Sphinx doesn't like section-less titles and it also doesn't like
title-less sections.

Modify qapidoc.py to parse text directly into the preceding section
title as child nodes, eliminating the section duplication. This removes
the extra text from the TOC.

Only very, very lightly tested: "it looks right at a glance" :tm:. I am
still in the process of rewriting qapidoc, so I didn't give it much
deeper thought.

Reported-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
---
 docs/sphinx/qapidoc.py | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
index 738b2450fb1..5f96b46270b 100644
--- a/docs/sphinx/qapidoc.py
+++ b/docs/sphinx/qapidoc.py
@@ -388,6 +388,7 @@ def _start_new_heading(self, heading, level):
         self._active_headings[level - 1] += snode
         self._active_headings = self._active_headings[:level]
         self._active_headings.append(snode)
+        return snode
 
     def _add_node_to_current_heading(self, node):
         """Add the node to whatever the current active heading is"""
@@ -417,13 +418,11 @@ def freeform(self, doc):
             # the first line of the block)
             (heading, _, text) = text.partition('\n')
             (leader, _, heading) = heading.partition(' ')
-            self._start_new_heading(heading, len(leader))
+            node = self._start_new_heading(heading, len(leader))
             if text == '':
                 return
 
-        node = self._make_section(None)
         self._parse_text_into_node(text, node)
-        self._add_node_to_current_heading(node)
         self._cur_doc = None
 
     def _parse_text_into_node(self, doctext, node):
-- 
2.45.0



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] docs/sphinx: fix extra stuff in TOC after freeform QMP sections
  2024-08-22 20:48 [PATCH] docs/sphinx: fix extra stuff in TOC after freeform QMP sections John Snow
@ 2024-08-27  9:40 ` Markus Armbruster
  0 siblings, 0 replies; 2+ messages in thread
From: Markus Armbruster @ 2024-08-27  9:40 UTC (permalink / raw)
  To: John Snow; +Cc: qemu-devel, Peter Maydell, Michael Roth

John Snow <jsnow@redhat.com> writes:

> Freeform sections with titles are currently generating a TOC entry for
> the first paragraph in the section after the header, which is not what
> we want.
>
> (Easiest to observe directly in the QMP reference manual's
> "Introduction" section.)
>
> When freeform sections are parsed, we create both a section header *and*
> an empty, title-less section. This causes some problems with sphinx's
> post-parse tree transforms, see also 2664f317 - this is a similar issue:
> Sphinx doesn't like section-less titles and it also doesn't like
> title-less sections.
>
> Modify qapidoc.py to parse text directly into the preceding section
> title as child nodes, eliminating the section duplication. This removes
> the extra text from the TOC.
>
> Only very, very lightly tested: "it looks right at a glance" :tm:. I am
> still in the process of rewriting qapidoc, so I didn't give it much
> deeper thought.
>
> Reported-by: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: John Snow <jsnow@redhat.com>

Tested-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>

Queued, thanks!



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-08-27  9:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-22 20:48 [PATCH] docs/sphinx: fix extra stuff in TOC after freeform QMP sections John Snow
2024-08-27  9:40 ` Markus Armbruster

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).