diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-02-23 19:23:07 +0300 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-03-14 10:49:16 +0300 |
commit | 89c446eaf74b0f6cadb7fb42b9bcc29e9eab7e15 (patch) | |
tree | 1a0fbfc1c120e0b99b1d4a204b61a5891f9bbd39 /sphinx/addnodes.py | |
parent | f85b870ad59f39c8637160a4cd4d865ce1e1628e (diff) |
Add desc_sig_element and inherited nodes
Diffstat (limited to 'sphinx/addnodes.py')
-rw-r--r-- | sphinx/addnodes.py | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/sphinx/addnodes.py b/sphinx/addnodes.py index 15d5fc46b..fa04e9344 100644 --- a/sphinx/addnodes.py +++ b/sphinx/addnodes.py @@ -12,7 +12,7 @@ import warnings from typing import Any, Dict, List, Sequence from docutils import nodes -from docutils.nodes import Node +from docutils.nodes import Element, Node from sphinx.deprecation import RemovedInSphinx40Warning @@ -174,6 +174,31 @@ class desc_content(nodes.General, nodes.Element): """ +class desc_sig_element(nodes.inline): + """Common parent class of nodes for inline text of a signature.""" + classes = [] # type: List[str] + + def __init__(self, rawsource: str = '', text: str = '', + *children: Element, **attributes: Any) -> None: + super().__init__(rawsource, text, *children, **attributes) + self['classes'].extend(self.classes) + + +class desc_sig_name(desc_sig_element): + """Node for a name in a signature.""" + classes = ["n"] + + +class desc_sig_operator(desc_sig_element): + """Node for an operator in a signature.""" + classes = ["o"] + + +class desc_sig_punctuation(desc_sig_element): + """Node for a punctuation in a signature.""" + classes = ["p"] + + # new admonition-like constructs class versionmodified(nodes.Admonition, nodes.TextElement): @@ -332,6 +357,9 @@ def setup(app: "Sphinx") -> Dict[str, Any]: app.add_node(desc_optional) app.add_node(desc_annotation) app.add_node(desc_content) + app.add_node(desc_sig_name) + app.add_node(desc_sig_operator) + app.add_node(desc_sig_punctuation) app.add_node(versionmodified) app.add_node(seealso) app.add_node(productionlist) |