aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/doc/typesystem_documentation.rst
blob: 4e7d18b993942531068badb8cdcb2599a1dfee36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Manipulating Documentation
--------------------------

inject-documentation
^^^^^^^^^^^^^^^^^^^^

The inject-documentation node inserts the documentation into the generated
documentation. This node is a child of the :ref:`object-type`,
:ref:`value-type` and :ref:`modify-function` nodes.

.. code-block:: xml

     <value-type>
         <inject-documentation mode="append | prepend | replace" format="native | target"
                               file="[file]" snippet="[label]">
             // the documentation
         </inject-code>
     </value-type>

The **mode** attribute default value is *replace*.

The **format** attribute specifies when the documentation injection will
occur and it accepts the following values:

* native: Before XML<->Backend transformation occur, so the injected code *must* be a valid XML.
* target: After XML<->Backend transformation occur, so the injected code *must* be a valid backend format.

The optional ``file`` attribute specifies the file name
(see :ref:`external-snippets`).

The optional ``snippet`` attribute specifies the snippet label
(see :ref:`external-snippets`).

At the moment the only supported backend is Sphinx.

If the injected documentation contains a Sphinx function directive, no
directive will be auto-generated. This can be used to add parameter
documentation to added functions.

modify-documentation
^^^^^^^^^^^^^^^^^^^^

The modify-documentation node allows you to change the auto-generated
documentation. . This node is a child of the :ref:`object-type`,
:ref:`value-type` and :ref:`modify-function` nodes.
API Extractor transforms XML's from `qdoc`_ (the Qt documentation
tool) into .rst files to be processed later using `Sphinx`_. You can modify
the XML before the transformation takes place.

.. _`qdoc`: https://doc.qt.io/qt-6/qdoc-index.html

.. _`Sphinx`: https://www.sphinx-doc.org/en/master

.. code-block:: xml

    <modify-documentation xpath="...">
        <!-- new documentation -->
    </modify-documentation>

The **xpath** attribute is the `XPath`_ to the node that you want to modify.

.. _`XPath`: https://www.w3.org/TR/1999/REC-xpath-19991116/