- Home
- Get it
- Docs
- Extend/Develop

# Doctree node classes added by Sphinx

## Nodes for domain-specific object descriptions

class `sphinx.addnodes.``desc`(rawsource='', *children, **attributes)

  Node for object descriptions.

  This node is similar to a “definition list” with one definition. It contains one or more `desc_signature` and a `desc_content`.

class `sphinx.addnodes.``desc_signature`(rawsource='', text='', *children, **attributes)

  Node for object signatures.

  The “term” part of the custom Sphinx definition list.

  As default the signature is a single line signature, but set `is_multiline = True` to describe a multi-line signature. In that case all child nodes must be `desc_signature_line` nodes.

class `sphinx.addnodes.``desc_signature_line`(rawsource='', text='', *children, **attributes)

  Node for a line in a multi-line object signatures.

  It should only be used in a `desc_signature` with `is_multiline` set. Set `add_permalink = True` for the line that should get the permalink.

class `sphinx.addnodes.``desc_addname`(rawsource='', text='', *children, **attributes)

  Node for additional name parts (module name, class name).

class `sphinx.addnodes.``desc_type`(rawsource='', text='', *children, **attributes)

  Node for return types or object type names.

class `sphinx.addnodes.``desc_returns`(rawsource='', text='', *children, **attributes)

  Node for a “returns” annotation (a la -> in Python).

class `sphinx.addnodes.``desc_name`(rawsource='', text='', *children, **attributes)

  Node for the main object name.

class `sphinx.addnodes.``desc_parameterlist`(rawsource='', text='', *children, **attributes)

  Node for a general parameter list.

class `sphinx.addnodes.``desc_parameter`(rawsource='', text='', *children, **attributes)

  Node for a single parameter.

class `sphinx.addnodes.``desc_optional`(rawsource='', text='', *children, **attributes)

  Node for marking optional parts of the parameter list.

class `sphinx.addnodes.``desc_annotation`(rawsource='', text='', *children, **attributes)

  Node for signature annotations (not Python 3-style annotations).

class `sphinx.addnodes.``desc_content`(rawsource='', *children, **attributes)

  Node for object description content.

  This is the “definition” part of the custom Sphinx definition list.

## New admonition-like constructs

class `sphinx.addnodes.``versionmodified`(rawsource='', text='', *children, **attributes)

  Node for version change entries.

  Currently used for “versionadded”, “versionchanged” and “deprecated” directives.

class `sphinx.addnodes.``seealso`(rawsource='', *children, **attributes)

  Custom “see also” admonition.

## Other paragraph-level nodes

class `sphinx.addnodes.``compact_paragraph`(rawsource='', text='', *children, **attributes)

  Node for a compact paragraph (which never makes a <p> node).

## New inline nodes

class `sphinx.addnodes.``index`(rawsource='', text='', *children, **attributes)

  Node for index entries.

  This node is created by the `index` directive and has one attribute, `entries`. Its value is a list of 5-tuples of `(entrytype, entryname, target, ignored, key)`.

  entrytype is one of “single”, “pair”, “double”, “triple”.

  key is categolziation characters (usually it is single character) for general index page. For the detail of this, please see also: `glossary` and issue #2320.

class `sphinx.addnodes.``pending_xref`(rawsource='', *children, **attributes)

  Node for cross-references that cannot be resolved without complete information about all documents.

  These nodes are resolved before writing output, in BuildEnvironment.resolve_references.

class `sphinx.addnodes.``literal_emphasis`(rawsource='', text='', *children, **attributes)

  Node that behaves like emphasis, but further text processors are not applied (e.g. smartypants for HTML output).

class `sphinx.addnodes.``abbreviation`(rawsource='', text='', *children, **attributes)

  Node for abbreviations with explanations.

class `sphinx.addnodes.``download_reference`(rawsource='', text='', *children, **attributes)

  Node for download references, similar to pending_xref.

## Special nodes

class `sphinx.addnodes.``only`(rawsource='', *children, **attributes)

  Node for “only” directives (conditional inclusion based on tags).

class `sphinx.addnodes.``meta`(rawsource='', *children, **attributes)

  Node for meta directive – same as docutils’ standard meta node, but pickleable.

class `sphinx.addnodes.``highlightlang`(rawsource='', *children, **attributes)

  Inserted to set the highlight language and line number options for subsequent code blocks.

You should not need to generate the nodes below in extensions.

class `sphinx.addnodes.``glossary`(rawsource='', *children, **attributes)

  Node to insert a glossary.

class `sphinx.addnodes.``toctree`(rawsource='', *children, **attributes)

  Node for inserting a “TOC tree”.

class `sphinx.addnodes.``start_of_file`(rawsource='', *children, **attributes)

  Node to mark start of a new file, used in the LaTeX builder only.

class `sphinx.addnodes.``productionlist`(rawsource='', *children, **attributes)

  Node for grammar production lists.

  Contains `production` nodes.

class `sphinx.addnodes.``production`(rawsource='', text='', *children, **attributes)

  Node for a single grammar production rule.