From 225c6c33b0a6b5382c21d178ecd0adb23e42f9fc Mon Sep 17 00:00:00 2001 From: Jonas Otto Date: Fri, 16 Feb 2024 23:13:30 +0100 Subject: [PATCH] add more default configuration to sphinx conf.py Add values extracted from package.xml to the wrapping sphinx config.py. This eliminates the need for packages with custom config.py to duplicate author, copyright and version information from package.xml. --- rosdoc2/verbs/build/builders/sphinx_builder.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/rosdoc2/verbs/build/builders/sphinx_builder.py b/rosdoc2/verbs/build/builders/sphinx_builder.py index 579e332..8275cc6 100644 --- a/rosdoc2/verbs/build/builders/sphinx_builder.py +++ b/rosdoc2/verbs/build/builders/sphinx_builder.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import datetime import json import logging import os @@ -72,6 +73,10 @@ def ensure_global(name, default): ensure_global('rosdoc2_settings', {{}}) ensure_global('extensions', []) +ensure_global('project', "{package_name}") +ensure_global('copyright', "{year}, {package_licenses}") +ensure_global('author', "{package_authors}") +ensure_global('release', "{package.version}") if rosdoc2_settings.get('enable_autodoc', True): print('[rosdoc2] enabling autodoc', file=sys.stderr) @@ -643,7 +648,13 @@ def generate_wrapping_rosdoc2_sphinx_project_into_directory( 'user_conf_py_filename': esc_backslash( os.path.abspath(os.path.join(user_sourcedir, 'conf.py'))), 'breathe_projects': ',\n'.join(breathe_projects) + '\n ', - 'intersphinx_mapping_extensions': ',\n '.join(intersphinx_mapping_extensions) + 'intersphinx_mapping_extensions': ',\n '.join(intersphinx_mapping_extensions), + 'year': datetime.date.today().year, + 'package_licenses': ', '.join(package.licenses), + 'package_authors': ', '.join(set( + [a.name for a in package.authors] + [m.name for m in package.maintainers] + )), + 'package': package, } print(os.path.abspath(os.path.join(directory, 'conf.py')))