summaryrefslogtreecommitdiff
path: root/doc/usage/restructuredtext
diff options
context:
space:
mode:
authorAdam Turner <9087854+AA-Turner@users.noreply.github.com>2022-09-13 20:20:02 +0100
committerGitHub <noreply@github.com>2022-09-13 20:20:02 +0100
commitf57177de89ff1a154c830558d218c3e334b2b437 (patch)
treefd3086cf2e716b9973d8efe4904b3fabdc18ac3a /doc/usage/restructuredtext
parentb34765780950a04a8a387b1cafa33bf99b704bde (diff)
downloadsphinx-git-f57177de89ff1a154c830558d218c3e334b2b437.tar.gz
Add contents entries for domain objects (#10807)
- Add entries in the table of contents for domain objects (e.g. `py:function`, `rst:role`, etc). Supported domains are Javascript, Python, and reStructuredText. - Support content in `py:module` and `js:module` directives. - Add the `noindexentry` and `noindex` flags to more domains. - Add `toc_object_entries_show_parents` configuration setting - Update documentation and tests
Diffstat (limited to 'doc/usage/restructuredtext')
-rw-r--r--doc/usage/restructuredtext/domains.rst104
1 files changed, 69 insertions, 35 deletions
diff --git a/doc/usage/restructuredtext/domains.rst b/doc/usage/restructuredtext/domains.rst
index 4348582b6..397416a89 100644
--- a/doc/usage/restructuredtext/domains.rst
+++ b/doc/usage/restructuredtext/domains.rst
@@ -137,11 +137,15 @@ declarations:
This directive marks the beginning of the description of a module (or package
submodule, in which case the name should be fully qualified, including the
- package name). It does not create content (like e.g. :rst:dir:`py:class`
- does).
+ package name). A description of the module such as the docstring can be
+ placed in the body of the directive.
This directive will also cause an entry in the global module index.
+ .. versionchanged:: 5.2
+
+ Module directives support body content.
+
.. rubric:: options
.. rst:directive:option:: platform: platforms
@@ -165,6 +169,8 @@ declarations:
Mark a module as deprecated; it will be designated as such in various
locations then.
+
+
.. rst:directive:: .. py:currentmodule:: name
This directive tells Sphinx that the classes, functions etc. documented from
@@ -573,20 +579,20 @@ explained by an example::
This will render like this:
- .. py:function:: send_message(sender, recipient, message_body, [priority=1])
- :noindex:
+.. py:function:: send_message(sender, recipient, message_body, [priority=1])
+ :noindex:
- Send a message to a recipient
+ Send a message to a recipient
- :param str sender: The person sending the message
- :param str recipient: The recipient of the message
- :param str message_body: The body of the message
- :param priority: The priority of the message, can be a number 1-5
- :type priority: integer or None
- :return: the message id
- :rtype: int
- :raises ValueError: if the message_body exceeds 160 characters
- :raises TypeError: if the message_body is not a basestring
+ :param str sender: The person sending the message
+ :param str recipient: The recipient of the message
+ :param str message_body: The body of the message
+ :param priority: The priority of the message, can be a number 1-5
+ :type priority: integer or None
+ :return: the message id
+ :rtype: int
+ :raises ValueError: if the message_body exceeds 160 characters
+ :raises TypeError: if the message_body is not a basestring
It is also possible to combine parameter type and description, if the type is a
single word, like this::
@@ -856,12 +862,16 @@ Example::
This will be rendered as:
.. c:struct:: Data
+ :noindexentry:
.. c:union:: @data
+ :noindexentry:
.. c:var:: int a
+ :noindexentry:
.. c:var:: double b
+ :noindexentry:
Explicit ref: :c:var:`Data.@data.a`. Short-hand ref: :c:var:`Data.a`.
@@ -943,8 +953,10 @@ Inline Expressions and Types
will be rendered as follows:
.. c:var:: int a = 42
+ :noindexentry:
.. c:function:: int f(int i)
+ :noindexentry:
An expression: :c:expr:`a * f(a)` (or as text: :c:texpr:`a * f(a)`).
@@ -1154,19 +1166,23 @@ visibility statement (``public``, ``private`` or ``protected``).
The example are rendered as follows.
.. cpp:type:: std::vector<int> MyList
+ :noindex:
A typedef-like declaration of a type.
.. cpp:type:: MyContainer::const_iterator
+ :noindex:
Declaration of a type alias with unspecified type.
.. cpp:type:: MyType = std::unordered_map<int, std::string>
+ :noindex:
Declaration of a type alias.
.. cpp:type:: template<typename T> \
MyContainer = std::vector<T>
+ :noindex:
.. rst:directive:: .. cpp:enum:: unscoped enum declaration
.. cpp:enum-struct:: scoped enum declaration
@@ -1293,12 +1309,16 @@ Example::
This will be rendered as:
.. cpp:class:: Data
+ :noindexentry:
.. cpp:union:: @data
+ :noindexentry:
.. cpp:var:: int a
+ :noindexentry:
.. cpp:var:: double b
+ :noindexentry:
Explicit ref: :cpp:var:`Data::@data::a`. Short-hand ref: :cpp:var:`Data::a`.
@@ -1404,10 +1424,12 @@ introduction` instead of a template parameter list::
They are rendered as follows.
.. cpp:function:: std::Iterator{It} void advance(It &it)
+ :noindexentry:
A function template with a template parameter constrained to be an Iterator.
.. cpp:class:: std::LessThanComparable{T} MySortedContainer
+ :noindexentry:
A class template with a template parameter constrained to be
LessThanComparable.
@@ -1437,8 +1459,10 @@ Inline Expressions and Types
will be rendered as follows:
.. cpp:var:: int a = 42
+ :noindexentry:
.. cpp:function:: int f(int i)
+ :noindexentry:
An expression: :cpp:expr:`a * f(a)` (or as text: :cpp:texpr:`a * f(a)`).
@@ -1827,6 +1851,9 @@ The JavaScript domain (name **js**) provides the following directives:
current module name.
.. versionadded:: 1.6
+ .. versionchanged:: 5.2
+
+ Module directives support body content.
.. rst:directive:: .. js:function:: name(signature)
@@ -1850,15 +1877,16 @@ The JavaScript domain (name **js**) provides the following directives:
This is rendered as:
- .. js:function:: $.getJSON(href, callback[, errback])
+ .. js:function:: $.getJSON(href, callback[, errback])
+ :noindex:
- :param string href: An URI to the location of the resource.
- :param callback: Gets called with the object.
- :param errback:
- Gets called in case the request fails. And a lot of other
- text so we need multiple lines.
- :throws SomeError: For whatever reason in that case.
- :returns: Something.
+ :param string href: An URI to the location of the resource.
+ :param callback: Gets called with the object.
+ :param errback:
+ Gets called in case the request fails. And a lot of other
+ text so we need multiple lines.
+ :throws SomeError: For whatever reason in that case.
+ :returns: Something.
.. rst:directive:: .. js:method:: name(signature)
@@ -1879,10 +1907,11 @@ The JavaScript domain (name **js**) provides the following directives:
This is rendered as:
- .. js:class:: MyAnimal(name[, age])
+ .. js:class:: MyAnimal(name[, age])
+ :noindex:
- :param string name: The name of the animal
- :param number age: an optional age for the animal
+ :param string name: The name of the animal
+ :param number age: an optional age for the animal
.. rst:directive:: .. js:data:: name
@@ -1925,13 +1954,15 @@ The reStructuredText domain (name **rst**) provides the following directives:
will be rendered as:
- .. rst:directive:: foo
+ .. rst:directive:: foo
+ :noindex:
- Foo description.
+ Foo description.
- .. rst:directive:: .. bar:: baz
+ .. rst:directive:: .. bar:: baz
+ :noindex:
- Bar description.
+ Bar description.
.. rst:directive:: .. rst:directive:option:: name
@@ -1947,12 +1978,14 @@ The reStructuredText domain (name **rst**) provides the following directives:
will be rendered as:
- .. rst:directive:: toctree
- :noindex:
+ .. rst:directive:: toctree
+ :noindex:
- .. rst:directive:option:: caption: caption of ToC
+ .. rst:directive:option:: caption: caption of ToC
+ :noindex:
- .. rst:directive:option:: glob
+ .. rst:directive:option:: glob
+ :noindex:
.. rubric:: options
@@ -1980,9 +2013,10 @@ The reStructuredText domain (name **rst**) provides the following directives:
will be rendered as:
- .. rst:role:: foo
+ .. rst:role:: foo
+ :noindex:
- Foo description.
+ Foo description.
.. _rst-roles: