From fc29f49d418adb0c4ae8dd1a9086a9c7380b3b74 Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Fri, 9 Jan 2026 15:52:27 +0530 Subject: [PATCH] python file to generate docs. useful for pycharm on windows --- generate_docs.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 generate_docs.py diff --git a/generate_docs.py b/generate_docs.py new file mode 100644 index 0000000..bb93ddd --- /dev/null +++ b/generate_docs.py @@ -0,0 +1,46 @@ +""" +Programmatic MkDocs build script for OmniRead. + +This script builds (or serves) the documentation by invoking MkDocs +*as a Python library*, not via shell commands. + +Requirements: +- mkdocs +- mkdocs-material +- mkdocstrings[python] + +Usage: + python generate_docs.py + python generate_docs.py --serve +""" + +import sys +from pathlib import Path + +from mkdocs.commands import build as mkdocs_build +from mkdocs.commands import serve as mkdocs_serve +from mkdocs.config import load_config + + +PROJECT_ROOT = Path(__file__).resolve().parent +MKDOCS_YML = PROJECT_ROOT / "mkdocs.yml" + + +def main() -> None: + if not MKDOCS_YML.exists(): + raise FileNotFoundError("mkdocs.yml not found at project root") + + # Load MkDocs configuration programmatically + config = load_config(str(MKDOCS_YML)) + + # Decide mode + if "--serve" in sys.argv: + # Live-reload development server + mkdocs_serve.serve(config) + else: + # Static site build + mkdocs_build.build(config) + + +if __name__ == "__main__": + main()