diff --git a/doc/common/conf.py b/doc/common/conf.py index 6198f8d..331b0a8 100644 --- a/doc/common/conf.py +++ b/doc/common/conf.py @@ -53,10 +53,12 @@ extensions = [ 'sphinx.ext.napoleon', 'sphinx.ext.todo', 'sphinx.ext.mathjax', + # Custom Pybricks extensions 'color', 'classlink', 'requirements', 'requirements-static', + 'versionchanged', ] # Add any paths that contain templates here, relative to this directory. diff --git a/doc/common/extensions/versionchanged.py b/doc/common/extensions/versionchanged.py new file mode 100644 index 0000000..513829b --- /dev/null +++ b/doc/common/extensions/versionchanged.py @@ -0,0 +1,28 @@ +"""This directive hides the builtin directives + * versionchanged + * versionadded + * deprecated +when building documentation with the 'ide' tag. +""" +from docutils import nodes +from docutils.parsers.rst import Directive + + +class PybricksVersionDirective(Directive): + + has_content = True + + def run(self): + html = "" + node = nodes.raw('', html, format="html") + return [node] + + +def setup(app): + if 'ide' in app.tags.tags: + app.add_directive_to_domain('py', 'deprecated', + PybricksVersionDirective, override=True) + app.add_directive_to_domain('py', 'versionadded', + PybricksVersionDirective, override=True) + app.add_directive_to_domain('py', 'versionchanged', + PybricksVersionDirective, override=True)