diff --git a/docs/source/conf.py b/docs/source/conf.py index acef9f6f572d4af1d177a6f883da3fa411c9cbfd..b286ce403ee03f2d62dcf83d934403e08fc52161 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -14,6 +14,43 @@ # import sys # sys.path.insert(0, os.path.abspath('.')) +from importlib import import_module +from docutils.parsers.rst import Directive +from docutils import nodes +from sphinx import addnodes +import json +import os +import sys + +sys.path.insert(0, os.path.abspath( + os.path.join( + os.path.dirname(__file__), + '..', '..', 'inventory_provider'))) + + +class RenderAsJSON(Directive): + # cf. https://stackoverflow.com/a/59883833 + + required_arguments = 1 + + def run(self): + module_path, member_name = self.arguments[0].rsplit('.', 1) + + member_data = getattr(import_module(module_path), member_name) + code = json.dumps(member_data, indent=2) + + literal = nodes.literal_block(code, code) + literal['language'] = 'json' + + return [ + addnodes.desc_name(text=member_name), + addnodes.desc_content('', literal) + ] + + +def setup(app): + app.add_directive('asjson', RenderAsJSON) + # -- Project information ----------------------------------------------------- @@ -31,6 +68,9 @@ release = '0.0' # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ + 'sphinx_rtd_theme', + 'sphinx.ext.autodoc', + 'sphinx.ext.coverage' ] # Add any paths that contain templates here, relative to this directory. @@ -47,9 +87,16 @@ exclude_patterns = [] # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'alabaster' +html_theme = 'sphinx_rtd_theme' +#html_theme = 'alabaster' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] \ No newline at end of file +html_static_path = ['_static'] + +# Both the class’ and the __init__ method’s docstring +# are concatenated and inserted. +autoclass_content = "both" +autodoc_typehints = "none" +