diff options
| author | rebortg <github@ghlr.de> | 2021-06-14 20:59:34 +0200 | 
|---|---|---|
| committer | rebortg <github@ghlr.de> | 2021-06-14 20:59:34 +0200 | 
| commit | da24dd30e7123853a2450dcc9b72dcda33cc6e25 (patch) | |
| tree | 19e2153049df47b1530ceb3ca3ffa3dcc309b5de /docs/_ext | |
| parent | 20fae5d25db3989b958d38a83dbca8573ec8a9d2 (diff) | |
| download | vyos-documentation-da24dd30e7123853a2450dcc9b72dcda33cc6e25.tar.gz vyos-documentation-da24dd30e7123853a2450dcc9b72dcda33cc6e25.zip | |
autosectionlabel: downgrade script from sphinx 1.8.4
Diffstat (limited to 'docs/_ext')
| -rw-r--r-- | docs/_ext/autosectionlabel.py | 63 | 
1 files changed, 30 insertions, 33 deletions
| diff --git a/docs/_ext/autosectionlabel.py b/docs/_ext/autosectionlabel.py index aea59fac..a6777b27 100644 --- a/docs/_ext/autosectionlabel.py +++ b/docs/_ext/autosectionlabel.py @@ -1,71 +1,68 @@ +# -*- coding: utf-8 -*-  """      sphinx.ext.autosectionlabel      ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +      Allow reference sections by :ref: role using its title. -    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. + +    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.      :license: BSD, see LICENSE for details. -""" -from typing import Any, Dict, cast +    from sphinx version 1.8.4 to get readthedocs working +"""  from docutils import nodes -from docutils.nodes import Node -from sphinx.application import Sphinx -from sphinx.domains.std import StandardDomain  from sphinx.locale import __  from sphinx.util import logging  from sphinx.util.nodes import clean_astext -logger = logging.getLogger(__name__) +if False: +    # For type annotation +    from typing import Any, Dict  # NOQA +    from sphinx.application import Sphinx  # NOQA -def get_node_depth(node: Node) -> int: -    i = 0 -    cur_node = node -    while cur_node.parent != node.document: -        cur_node = cur_node.parent -        i += 1 -    return i +logger = logging.getLogger(__name__) + +if False: +    # For type annotation +    from typing import Any, Dict  # NOQA +    from sphinx.application import Sphinx  # NOQA -def register_sections_as_label(app: Sphinx, document: Node) -> None: -    domain = cast(StandardDomain, app.env.get_domain('std')) +def register_sections_as_label(app, document): +    # type: (Sphinx, nodes.Node) -> None +    labels = app.env.domaindata['std']['labels'] +    anonlabels = app.env.domaindata['std']['anonlabels']      for node in document.traverse(nodes.section): -        if (app.config.autosectionlabel_maxdepth and -                get_node_depth(node) >= app.config.autosectionlabel_maxdepth): -            continue          labelid = node['ids'][0]          docname = app.env.docname -        title = cast(nodes.title, node[0]) -        ref_name = getattr(title, 'rawsource', title.astext()) +        ref_name = getattr(node[0], 'rawsource', node[0].astext())          if app.config.autosectionlabel_prefix_document:              name = nodes.fully_normalize_name(docname + ':' + ref_name)          else:              name = nodes.fully_normalize_name(ref_name) -        sectname = clean_astext(title) +        sectname = clean_astext(node[0]) -        if name in domain.labels: -            # a ref befor a headline create 2 ids in the node object +        if name in labels:              if len(node['ids']) > 1:                  continue              logger.warning(__('duplicate label %s, other instance in %s'), -                           name, app.env.doc2path(domain.labels[name][0]), -                           location=node, type='autosectionlabel', subtype=docname) - - +                           name, app.env.doc2path(labels[name][0]), +                           location=node) -        domain.anonlabels[name] = docname, labelid -        domain.labels[name] = docname, labelid, sectname +        anonlabels[name] = docname, labelid +        labels[name] = docname, labelid, sectname -def setup(app: Sphinx) -> Dict[str, Any]: +def setup(app): +    # type: (Sphinx) -> Dict[unicode, Any]      app.add_config_value('autosectionlabel_prefix_document', False, 'env') -    app.add_config_value('autosectionlabel_maxdepth', None, 'env')      app.connect('doctree-read', register_sections_as_label)      return {          'version': 'builtin',          'parallel_read_safe': True,          'parallel_write_safe': True, -    }
\ No newline at end of file +    } | 
