From 325421c0b8438fcac4f40f67680969e0f9829d85 Mon Sep 17 00:00:00 2001 From: Ludwig Neste Date: Tue, 5 Nov 2024 18:46:17 +0100 Subject: [PATCH 1/4] add creatordate info to the version tag --- sphinx_multiversion/sphinx.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sphinx_multiversion/sphinx.py b/sphinx_multiversion/sphinx.py index dbdbd92c..13001eca 100644 --- a/sphinx_multiversion/sphinx.py +++ b/sphinx_multiversion/sphinx.py @@ -53,6 +53,7 @@ "version", "release", "is_released", + "creatordate", ], ) @@ -71,6 +72,7 @@ def _dict_to_versionobj(self, v): version=v["version"], release=v["release"], is_released=v["is_released"], + creatordate=v["creatordate"], ) @property From 0067ba9ba6e2d614e4d99a84cf6fea9ec3880fdf Mon Sep 17 00:00:00 2001 From: Ludwig Neste Date: Tue, 5 Nov 2024 18:51:42 +0100 Subject: [PATCH 2/4] add filter to format date --- sphinx_multiversion/sphinx.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sphinx_multiversion/sphinx.py b/sphinx_multiversion/sphinx.py index 13001eca..21e30204 100644 --- a/sphinx_multiversion/sphinx.py +++ b/sphinx_multiversion/sphinx.py @@ -167,6 +167,13 @@ def vpathto(self, other_version_name): ) +def format_date(value, format="%Y-%m-%d"): + date_obj = datetime.datetime.strptime( + value, DATE_FMT + ) # Convert the date string to a datetime object + return date_obj.strftime(format) # Format to desired output + + def html_page_context(app, pagename, templatename, context, doctree): versioninfo = VersionInfo( app, context, app.config.smv_metadata, app.config.smv_current_version @@ -179,6 +186,9 @@ def html_page_context(app, pagename, templatename, context, doctree): context["latest_version"] = versioninfo[app.config.smv_latest_version] context["html_theme"] = app.config.html_theme + # Add a filter to format the date + app.builder.templates.environment.filters["format_date"] = format_date + def config_inited(app, config): """Update the Sphinx builder. From 64aa9c4d766bfc7f52bca31f882f7e6dc4ebc0dc Mon Sep 17 00:00:00 2001 From: Ludwig Neste Date: Tue, 5 Nov 2024 19:21:21 +0100 Subject: [PATCH 3/4] add option to have one ref in toplevel --- sphinx_multiversion/main.py | 10 ++++++++++ sphinx_multiversion/sphinx.py | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/sphinx_multiversion/main.py b/sphinx_multiversion/main.py index a287aec4..ec7aa4c6 100644 --- a/sphinx_multiversion/main.py +++ b/sphinx_multiversion/main.py @@ -92,6 +92,12 @@ def load_sphinx_config_worker(q, confpath, confoverrides, add_defaults): "html", str, ) + current_config.add( + "smv_toplevelref", + sphinx.DEFAULT_TOPLEVELREF, + "html", + str, + ) current_config.add("smv_prefer_remote_refs", False, "html", bool) current_config.pre_init_values() current_config.init_values() @@ -280,6 +286,10 @@ def main(argv=None): ref=gitref, config=current_config, ) + + if gitref.name == config.smv_toplevelref: + outputdir = '' + if outputdir in outputdirs: logger.warning( "outputdir '%s' for %s conflicts with other versions", diff --git a/sphinx_multiversion/sphinx.py b/sphinx_multiversion/sphinx.py index 21e30204..c1b5357a 100644 --- a/sphinx_multiversion/sphinx.py +++ b/sphinx_multiversion/sphinx.py @@ -44,6 +44,7 @@ DEFAULT_REMOTE_WHITELIST = None DEFAULT_RELEASED_PATTERN = r"^tags/.*$" DEFAULT_OUTPUTDIR_FORMAT = r"{ref.name}" +DEFAULT_TOPLEVELREF = None Version = collections.namedtuple( "Version", @@ -248,6 +249,9 @@ def setup(app): app.add_config_value( "smv_outputdir_format", DEFAULT_OUTPUTDIR_FORMAT, "html" ) + app.add_config_value( + "smv_toplevelref", DEFAULT_TOPLEVELREF, "html" + ) app.connect("config-inited", config_inited) return { From ff542ad1dd152b51c53801ddf17f5d5dbf67d077 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 18:41:12 +0000 Subject: [PATCH 4/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- sphinx_multiversion/main.py | 2 +- sphinx_multiversion/sphinx.py | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/sphinx_multiversion/main.py b/sphinx_multiversion/main.py index ec7aa4c6..d6b8cd47 100644 --- a/sphinx_multiversion/main.py +++ b/sphinx_multiversion/main.py @@ -288,7 +288,7 @@ def main(argv=None): ) if gitref.name == config.smv_toplevelref: - outputdir = '' + outputdir = "" if outputdir in outputdirs: logger.warning( diff --git a/sphinx_multiversion/sphinx.py b/sphinx_multiversion/sphinx.py index c1b5357a..a0b04fe3 100644 --- a/sphinx_multiversion/sphinx.py +++ b/sphinx_multiversion/sphinx.py @@ -249,9 +249,7 @@ def setup(app): app.add_config_value( "smv_outputdir_format", DEFAULT_OUTPUTDIR_FORMAT, "html" ) - app.add_config_value( - "smv_toplevelref", DEFAULT_TOPLEVELREF, "html" - ) + app.add_config_value("smv_toplevelref", DEFAULT_TOPLEVELREF, "html") app.connect("config-inited", config_inited) return {