docs/qapi-domain: add "Features:" field lists

Add support for Features field lists. There is no QAPI-specific
functionality here, but this could be changed if desired (if we wanted
the feature names to link somewhere, for instance.)

This feature list doesn't have any restrictions, so it can be used to
document object-wide features or per-member features as deemed
appropriate. It's essentially free-form text.

The syntax for this field is:

:feat name: description
    description cont'd

Signed-off-by: John Snow <jsnow@redhat.com>
Message-ID: <20250311034303.75779-17-jsnow@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
John Snow 2025-03-10 23:42:14 -04:00 committed by Markus Armbruster
parent 618379701b
commit 3d9a23f92f

View file

@ -33,7 +33,7 @@ from sphinx.domains import (
from sphinx.locale import _, __
from sphinx.roles import XRefRole
from sphinx.util import logging
from sphinx.util.docfields import TypedField
from sphinx.util.docfields import GroupedField, TypedField
from sphinx.util.nodes import make_id, make_refnode
@ -220,6 +220,16 @@ class QAPIObject(QAPIDescription):
}
)
doc_field_types = [
# :feat name: descr
GroupedField(
"feature",
label=_("Features"),
names=("feat",),
can_collapse=False,
),
]
def get_signature_prefix(self) -> List[nodes.Node]:
"""Return a prefix to put before the object name in the signature."""
assert self.objtype