Coverage for sphinx_ifelse/ifelse.py: 100%
17 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-03-26 16:18 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-03-26 16:18 +0000
1from sphinx_ifelse import __version__ as sphinx_ifelse_version
3from typing import Any, Dict
5from sphinx.application import Sphinx
7from sphinx_ifelse.directives import IfNode, IfDirective
8from sphinx_ifelse.directives import ElIfNode, ElIfDirective
9from sphinx_ifelse.directives import ElseNode, ElseDirective
10from sphinx_ifelse.directives import process_ifelse_nodes
12def setup(app: Sphinx) -> Dict[str, Any]:
13 """
14 Set up the Sphinx-ifelse extension.
15 """
16 #see https://www.sphinx-doc.org/en/master/development/tutorials/extending_build.html
18 app.add_config_value(name="ifelse_variants",
19 default={'empty': True},
20 rebuild="html",
21 types=Dict[str, Any],
22 description="A dictionary of variants to be used inside the confition of a if directive.",
23 )
25 app.add_node(IfNode)
26 app.add_node(ElIfNode)
27 app.add_node(ElseNode)
29 app.add_directive("if", IfDirective)
30 app.add_directive("elif", ElIfDirective)
31 app.add_directive("else", ElseDirective)
33 app.connect('doctree-resolved', process_ifelse_nodes)
35 return {
36 "version": sphinx_ifelse_version,
37 "parallel_read_safe": True,
38 "parallel_write_safe": True,
39 "env_version": None,
40 }