diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 062a4d4..a2263bc 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -35,7 +35,7 @@ jobs: - name: Build docs run: | - poetry run mkdocs build + poetry run mike deploy -u -b docs-releases development - name: Package and upload Pages artifact uses: actions/upload-pages-artifact@v3 diff --git a/docs/overrides/main.html b/docs/overrides/main.html new file mode 100644 index 0000000..1eec7bc --- /dev/null +++ b/docs/overrides/main.html @@ -0,0 +1,4 @@ +{% block outdated %} + You're not viewing the latest version. Try viewing the + latest version. +{% endblock %} \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index a912351..b535f4e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,7 +1,14 @@ site_name: PuePy Documentation site_url: https://docs.puepy.dev/ +site_author: Ken Kinder + +repo_name: kkinder/puepy +repo_url: https://github.com/kkinder/puepy +edit_uri: "" + theme: name: material + custom_dir: docs/overrides palette: # Palette toggle for automatic mode @@ -53,6 +60,11 @@ markdown_extensions: plugins: - search - macros +- mike: + alias_type: redirect + redirect_template: null + canonical_version: stable + version_selector: true - mkdocstrings: default_handler: python handlers: @@ -104,3 +116,8 @@ hooks: - docs/puepy_hooks.py extra: project_version: "0.6.0" + version: + provider: mike + default: + - stable + - development \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 1851ebf..74eef9a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -330,7 +330,6 @@ description = "Read metadata from Python packages" optional = false python-versions = ">=3.9" groups = ["docs"] -markers = "python_version < \"3.10\"" files = [ {file = "importlib_metadata-8.6.1-py3-none-any.whl", hash = "sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e"}, {file = "importlib_metadata-8.6.1.tar.gz", hash = "sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580"}, @@ -348,6 +347,29 @@ perf = ["ipython"] test = ["flufl.flake8", "importlib_resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] type = ["pytest-mypy"] +[[package]] +name = "importlib-resources" +version = "6.5.2" +description = "Read resources from Python packages" +optional = false +python-versions = ">=3.9" +groups = ["docs"] +files = [ + {file = "importlib_resources-6.5.2-py3-none-any.whl", hash = "sha256:789cfdc3ed28c78b67a06acb8126751ced69a3d5f79c095a98298cd8a760ccec"}, + {file = "importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c"}, +] + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] +type = ["pytest-mypy"] + [[package]] name = "iniconfig" version = "2.0.0" @@ -480,6 +502,32 @@ files = [ {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, ] +[[package]] +name = "mike" +version = "2.1.3" +description = "Manage multiple versions of your MkDocs-powered documentation" +optional = false +python-versions = "*" +groups = ["docs"] +files = [ + {file = "mike-2.1.3-py3-none-any.whl", hash = "sha256:d90c64077e84f06272437b464735130d380703a76a5738b152932884c60c062a"}, + {file = "mike-2.1.3.tar.gz", hash = "sha256:abd79b8ea483fb0275b7972825d3082e5ae67a41820f8d8a0dc7a3f49944e810"}, +] + +[package.dependencies] +importlib-metadata = "*" +importlib-resources = "*" +jinja2 = ">=2.7" +mkdocs = ">=1.0" +pyparsing = ">=3.0" +pyyaml = ">=5.1" +pyyaml-env-tag = "*" +verspec = "*" + +[package.extras] +dev = ["coverage", "flake8 (>=3.0)", "flake8-quotes", "shtab"] +test = ["coverage", "flake8 (>=3.0)", "flake8-quotes", "shtab"] + [[package]] name = "mkdocs" version = "1.6.1" @@ -808,6 +856,21 @@ pyyaml = "*" [package.extras] extra = ["pygments (>=2.19.1)"] +[[package]] +name = "pyparsing" +version = "3.2.1" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.9" +groups = ["docs"] +files = [ + {file = "pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1"}, + {file = "pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + [[package]] name = "pytest" version = "8.3.2" @@ -1217,6 +1280,21 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "verspec" +version = "0.1.0" +description = "Flexible version handling" +optional = false +python-versions = "*" +groups = ["docs"] +files = [ + {file = "verspec-0.1.0-py3-none-any.whl", hash = "sha256:741877d5633cc9464c45a469ae2a31e801e6dbbaa85b9675d481cda100f11c31"}, + {file = "verspec-0.1.0.tar.gz", hash = "sha256:c4504ca697b2056cdb4bfa7121461f5a0e81809255b41c03dda4ba823637c01e"}, +] + +[package.extras] +test = ["coverage", "flake8 (>=3.7)", "mypy", "pretend", "pytest"] + [[package]] name = "watchdog" version = "6.0.0" @@ -1267,7 +1345,6 @@ description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.9" groups = ["docs"] -markers = "python_version < \"3.10\"" files = [ {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, @@ -1284,4 +1361,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = "^3.9" -content-hash = "761ef6919e8049d4cc385082a892eb8e9edbbb621ad2295a9defa583fb82781b" +content-hash = "8e37f135e5f16102b5ad10419f1d8a2fd98178a4f184dc1a8e7d70662e7d631d" diff --git a/pyproject.toml b/pyproject.toml index ab04581..31b8389 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,6 +36,7 @@ beautifulsoup4 = "^4.13.3" mkdocs-material-extensions = "^1.3.1" mkdocstrings = {extras = ["python"], version = "^0.28.1"} mkdocs-macros-plugin = "^1.3.7" +mike = "^2.1.3" [build-system] requires = ["poetry-core"]