diff options
author | John Snow <jsnow@redhat.com> | 2024-07-16 22:13:04 -0400 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2024-07-17 10:20:53 +0200 |
commit | a7d07ccd208dc1a8dbd0b03d95761a6424ccb375 (patch) | |
tree | 42f7d13b0be70bc2bfed91adf174dadb8f369681 /docs | |
parent | 29a9efb09f95cf54a45d4ed97b82d2158b1a3983 (diff) | |
download | qemu-a7d07ccd208dc1a8dbd0b03d95761a6424ccb375.zip qemu-a7d07ccd208dc1a8dbd0b03d95761a6424ccb375.tar.gz qemu-a7d07ccd208dc1a8dbd0b03d95761a6424ccb375.tar.bz2 |
docs/qapidoc: factor out do_parse()
Factor out the compatibility parser helper into a base class, so it can
be shared by other directives.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240717021312.606116-3-jsnow@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/sphinx/qapidoc.py | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py index 62b3983..b3be829 100644 --- a/docs/sphinx/qapidoc.py +++ b/docs/sphinx/qapidoc.py @@ -481,7 +481,25 @@ class QAPISchemaGenDepVisitor(QAPISchemaVisitor): super().visit_module(name) -class QAPIDocDirective(Directive): +class NestedDirective(Directive): + def run(self): + raise NotImplementedError + + def do_parse(self, rstlist, node): + """ + Parse rST source lines and add them to the specified node + + Take the list of rST source lines rstlist, parse them as + rST, and add the resulting docutils nodes as children of node. + The nodes are parsed in a way that allows them to include + subheadings (titles) without confusing the rendering of + anything else. + """ + with switch_source_input(self.state, rstlist): + nested_parse_with_titles(self.state, rstlist, node) + + +class QAPIDocDirective(NestedDirective): """Extract documentation from the specified QAPI .json file""" required_argument = 1 @@ -519,18 +537,6 @@ class QAPIDocDirective(Directive): # so they are displayed nicely to the user raise ExtensionError(str(err)) from err - def do_parse(self, rstlist, node): - """Parse rST source lines and add them to the specified node - - Take the list of rST source lines rstlist, parse them as - rST, and add the resulting docutils nodes as children of node. - The nodes are parsed in a way that allows them to include - subheadings (titles) without confusing the rendering of - anything else. - """ - with switch_source_input(self.state, rstlist): - nested_parse_with_titles(self.state, rstlist, node) - def setup(app): """Register qapi-doc directive with Sphinx""" |