qapi/parser: don't parse rST markup as section headers

The double-colon synax is rST formatting that precedes a literal code
block. We do not want to capture these as QAPI-specific sections.

Coerce blocks that start with e.g. "Example::" to be parsed as untagged
paragraphs instead of special tagged sections.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-ID: <20240626222128.406106-14-jsnow@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[Indentation tweaked for consistency]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
John Snow 2024-06-26 18:21:19 -04:00 committed by Markus Armbruster
parent 543ff13a20
commit 65fa48c79f
4 changed files with 16 additions and 2 deletions

View File

@ -544,10 +544,15 @@ class QAPISchemaParser:
line = self.get_doc_indented(doc)
no_more_args = True
elif match := re.match(
r'(Returns|Errors|Since|Notes?|Examples?|TODO): *',
line):
r'(Returns|Errors|Since|Notes?|Examples?|TODO)'
r'(?!::): *',
line,
):
# tagged section
# Note: "sections" with two colons are left alone as
# rST markup and not interpreted as a section heading.
# TODO: Remove this error sometime in 2025 or so
# after we've fully transitioned to the new qapidoc
# generator.

View File

@ -181,6 +181,9 @@
# - *verbatim*
# - {braces}
#
# Note::
# Ceci n'est pas une note
#
# Since: 2.10
##
{ 'command': 'cmd',

View File

@ -190,6 +190,9 @@ frobnicate
section=Examples
- *verbatim*
- {braces}
section=None
Note::
Ceci n'est pas une note
section=Since
2.10
doc symbol=cmd-boxed

View File

@ -231,6 +231,9 @@ Examples
- *verbatim*
- {braces}
Note::
Ceci n'est pas une note
Since
~~~~~