From 754bd73d2bdadeac40981fc2947d8d8cb20c9197 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 28 Mar 2021 23:25:02 +0800 Subject: [PATCH] doc: add a new directive "confval" * so we can define configuration in a more structured way * so the confvals can be cross referenced see also https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.add_object_type Signed-off-by: Kefu Chai --- doc/conf.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/doc/conf.py b/doc/conf.py index 7b6b50c0e86f0..ad36c0950f8d1 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -6,6 +6,11 @@ import sys import yaml import sphinx.util +from sphinx.domains.python import PyField +from sphinx.locale import _ +from sphinx.util.docfields import Field + + top_level = \ os.path.dirname( os.path.dirname( @@ -235,3 +240,36 @@ def setup(app): generate_state_diagram(['src/osd/PeeringState.h', 'src/osd/PeeringState.cc'], 'doc/dev/peering_graph.generated.dot')) + + app.add_object_type( + 'confval', + 'confval', + objname='configuration value', + indextemplate='pair: %s; configuration value', + doc_field_types=[ + PyField( + 'type', + label=_('Type'), + has_arg=False, + names=('type',), + bodyrolename='class' + ), + Field( + 'default', + label=_('Default'), + has_arg=False, + names=('default',), + ), + Field( + 'required', + label=_('Required'), + has_arg=False, + names=('required',), + ), + Field( + 'example', + label=_('Example'), + has_arg=False, + ) + ] + ) -- 2.39.5