qemu/docs
John Snow 547864f9d4 docs/qapidoc: create qmp-example directive
This is a directive that creates a syntactic sugar for creating
"Example" boxes very similar to the ones already used in the bitmaps.rst
document, please see e.g.
https://www.qemu.org/docs/master/interop/bitmaps.html#creation-block-dirty-bitmap-add

In its simplest form, when a custom title is not needed or wanted, and
the example body is *solely* a QMP example:

```
.. qmp-example::

   {body}
```

is syntactic sugar for:

```
.. admonition:: Example:

   .. code-block:: QMP

      {body}
```

When a custom, plaintext title that describes the example is desired,
this form:

```
.. qmp-example::
   :title: Defrobnification

   {body}
```

Is syntactic sugar for:

```
.. admonition:: Example: Defrobnification

   .. code-block:: QMP

      {body}
```

Lastly, when Examples are multi-step processes that require non-QMP
exposition, have lengthy titles, or otherwise involve prose with rST
markup (lists, cross-references, etc), the most complex form:

```
.. qmp-example::
   :annotated:

   This example shows how to use `foo-command`::

     {body}

   For more information, please see `frobnozz`.
```

Is desugared to:

```
.. admonition:: Example:

   This example shows how to use `foo-command`::

     {body}

   For more information, please see `frobnozz`.
```

Note that :annotated: and :title: options can be combined together, if
desired.

The primary benefit here being documentation source consistently using
the same directive for all forms of examples to ensure consistent visual
styling, and ensuring all relevant prose is visually grouped alongside
the code literal block.

Note that as of this commit, the code-block rST syntax "::" does not
apply QMP highlighting; you would need to use ".. code-block:: QMP". The
very next commit changes this behavior to assume all "::" code blocks
within this directive are QMP blocks.

Signed-off-by: John Snow <jsnow@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240717021312.606116-4-jsnow@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2024-07-17 10:20:53 +02:00
..
_templates
about SD/MMC patches queue 2024-07-02 09:52:10 -07:00
config
devel qapi: convert "Note" sections to plain rST 2024-07-06 08:58:24 +02:00
interop hw/virtio: check owner for removing objects 2024-03-12 17:56:55 -04:00
specs Revert "docs/specs/pvpanic: mark shutdown event as not implemented" 2024-07-01 17:16:04 -04:00
sphinx docs/qapidoc: create qmp-example directive 2024-07-17 10:20:53 +02:00
sphinx-static
spin
system virtio: features,fixes 2024-07-03 20:54:17 -07:00
tools
user target/nios2: Remove the deprecated Nios II target 2024-04-24 16:03:38 +02:00
block-replication.txt
bypass-iommu.txt
COLO-FT.txt
colo-proxy.txt colo: examples: remove mentions of script= and (wrong) downscript= 2024-01-30 21:20:20 +03:00
conf.py Python: bump minimum sphinx version to 3.4.3 2024-07-12 16:36:20 -04:00
defs.rst.inc
igd-assign.txt
image-fuzzer.txt
index.rst
memory-hotplug.txt
meson.build
multi-thread-compression.txt
multiseat.txt
nvdimm.txt
pci_expander_bridge.txt docs, tests: do not specify scsi=off 2024-06-05 11:00:56 +02:00
pcie_pci_bridge.txt
pcie_sriov.txt pcie_sriov: Ensure VF function number does not overflow 2024-07-03 18:14:07 -04:00
pcie.txt
qcow2-cache.txt
qdev-device-use.txt
qemu-option-trace.rst.inc
qemupciserial.inf
rdma.txt
requirements.txt pythondeps.toml: warn about updates needed to docs/requirements.txt 2024-04-23 17:35:26 +02:00
spice-port-fqdn.txt
throttle.txt
xbzrle.txt
xen-save-devices-state.txt