John Snow <jsnow@redhat.com> writes:
> 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>
> ---
> scripts/qapi/parser.py | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py
> index 53b06a94508..971fdf61a09 100644
> --- a/scripts/qapi/parser.py
> +++ b/scripts/qapi/parser.py
> @@ -545,10 +545,15 @@ def get_doc(self) -> 'QAPIDoc':
> 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.
Patch looks good, but let's add a positive test to doc-good.json.