From bdfd400e29d81b9e98733e4058ca611234ec3073 Mon Sep 17 00:00:00 2001 From: Karel van Klink <karel.vanklink@geant.org> Date: Fri, 29 Nov 2024 09:51:59 +0100 Subject: [PATCH] Add a script that auto-generates redirects to all workflow pages --- .gitignore | 1 + docs/scripts/gen_wf_redirects.py | 38 ++++++++++++++++++++++++++++++++ mkdocs.yml | 10 +-------- 3 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 docs/scripts/gen_wf_redirects.py diff --git a/.gitignore b/.gitignore index 6bed6746..b803f492 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ vale/styles/* !vale/styles/config/ !vale/styles/custom/ .DS_Store +wf_redirects.yaml .idea .venv diff --git a/docs/scripts/gen_wf_redirects.py b/docs/scripts/gen_wf_redirects.py new file mode 100644 index 00000000..9e48581c --- /dev/null +++ b/docs/scripts/gen_wf_redirects.py @@ -0,0 +1,38 @@ +"""Generate pages to forward workflow URLs. + +This will redirect `/workflow/workflow_name` to `reference/gso/workflow/module/workflow_name`. This is required since +URLs cannot be changed in the GUI. +""" + +from pathlib import Path + +import yaml + +root = Path(__file__).parent.parent.parent +src = root / "gso" +redirect_map = {} + +for path in sorted(src.rglob("*.py")): + module_path = path.relative_to(root).with_suffix("") + parts = tuple(module_path.parts) + + if parts[-1] == "__init__": + parts = parts[:-1] + elif parts[-1] == "__main__": + continue + + if len(parts) == 4 and "workflows" in parts: + redirect_map["workflow/" + parts[3] + "/index.md"] = "https://docs.gap.geant.org/reference/" + "/".join(parts) + +with open(root / "wf_redirects.yaml", 'w') as redirect_file: + file_content = { + "plugins": + [ + "search", + {"gen-files": {"scripts": ["docs/scripts/gen_ref_pages.py"]}}, + {"redirects": {"redirect_maps": redirect_map}}, + {"literate-nav": {"nav_file": "SUMMARY.md"}}, + "mkdocstrings", + ] + } + yaml.dump(file_content, redirect_file) diff --git a/mkdocs.yml b/mkdocs.yml index a90ca43f..c6808360 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,3 +1,4 @@ +INHERIT: wf_redirects.yaml # General site_name: GÉANT Automation Platform site_url: https://docs.gap.geant.org/ @@ -44,15 +45,6 @@ theme: extra_css: - assets/stylesheets/extra.css -plugins: - - search - - gen-files: - scripts: - - docs/scripts/gen_ref_pages.py - - literate-nav: - nav_file: SUMMARY.md - - mkdocstrings - # Page tree nav: - Home: index.md -- GitLab