Skip to content

Commit 4c6e9ac

Browse files
committed
docs: introduce mike for versioned documentation
1 parent 25027fa commit 4c6e9ac

File tree

4 files changed

+46
-3
lines changed

4 files changed

+46
-3
lines changed

hatch.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ all = ["style", "typing"]
9090

9191
[envs.pages]
9292
#detached = true
93-
dependencies = [
93+
extra-dependencies = [
9494
"mkdocs>=1.4.2",
9595
"mkdocs-material",
9696
# Plugins
@@ -105,10 +105,13 @@ dependencies = [
105105
"pymdown-extensions~=9.6.0",
106106
# Necessary for syntax highlighting in code blocks
107107
"pygments",
108+
"mike",
108109
]
109110

110111
[envs.pages.scripts]
111112
build = ["mkdocs build"]
113+
deploy = ["python scripts/deploy_docs.py"]
114+
112115

113116
[envs.build]
114117
detached = true

mkdocs.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ copyright: >
1111
1212
theme:
1313
name: material
14+
custom_dir: overrides
1415
language: en
1516
icon:
1617
repo: fontawesome/brands/github
@@ -107,6 +108,13 @@ extra:
107108
- accept
108109
- reject
109110
- manage
111+
version:
112+
provider: mike
113+
default: latest
114+
115+
plugins:
116+
- mike:
117+
canonical_version: latest
110118

111119
extra_css:
112120
- stylesheets/extra.css
@@ -116,5 +124,5 @@ nav:
116124
- Features: features.md
117125
- Installation: installation.md
118126
- CLI:
119-
- About: cli/about.md
120-
- Reference: cli/reference.md
127+
- About: cli/about.md
128+
- Reference: cli/reference.md

overrides/main.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{% extends "base.html" %}
2+
3+
{% block outdated %}
4+
You're not viewing the latest version.
5+
<a href="{{ '../' ~ base_url }}">
6+
<strong>Click here to go to latest.</strong>
7+
</a>
8+
{% endblock %}

scripts/deploy_docs.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from subprocess import run
2+
3+
from scripts.tools import get_current_version_from_git
4+
5+
6+
def main() -> None:
7+
version = get_current_version_from_git()
8+
alias = "latest"
9+
10+
if version.prerelease:
11+
version = version.next_minor()
12+
alias = "dev"
13+
14+
version.major, version.minor
15+
16+
run(
17+
"mike deploy --push --update-aliases --rebase --force "
18+
f'--title "v{version.major}.{version.minor}.x ({alias})" {version.major}.{version.minor} {alias}',
19+
shell=True,
20+
).check_returncode()
21+
22+
23+
if __name__ == "__main__":
24+
main()

0 commit comments

Comments
 (0)