Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions docs/build_old_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,17 @@ def apply_patches_for_release(release: str, repo_path: Path) -> None:
sp.run(("git", "-C", str(repo_path), "am", str(patch_path)), check=True)


def build_docs_for_release(release: str, repo_path: Path, outdir: Path) -> None:
def build_docs_for_release(release: str, repo_path: Path, outdir: Path) -> Path:
"""Build documentation for a given release."""
print(f"Building docs for {release}")
release_path = add_worktree_for_release(repo_path, release)

# Apply patches, if any
apply_patches_for_release(release, release_path)

# Copy current theme into the release worktree so theme is consistent
shutil.copytree(REPO_ROOT / "theme", release_path / "theme", dirs_exist_ok=True)

# Build docs
sp.run(("just", f"{release_path!s}/build-docs"), check=True)

Expand All @@ -86,6 +89,8 @@ def build_docs_for_release(release: str, repo_path: Path, outdir: Path) -> None:
print(f"Copying to {release_outdir}")
shutil.move((release_path / "book"), release_outdir)

return release_outdir


def build_old_docs() -> None:
"""Build documentation for previous releases."""
Expand All @@ -98,8 +103,12 @@ def build_old_docs() -> None:
clone_repo_to(repo_path)

# Generate documentation for each previous release
for release in get_releases():
build_docs_for_release(release, repo_path, outdir)
for i, release in enumerate(get_releases()):
release_outdir = build_docs_for_release(release, repo_path, outdir)

# Copy latest release into stable dir
if i == 0:
shutil.copytree(release_outdir, outdir / "stable")
Comment on lines +109 to +111


if __name__ == "__main__":
Expand Down
1 change: 1 addition & 0 deletions docs/templates/versions.md.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
The MUSE2 documentation for different releases is available below.

- [Current development version](index.html)
- [Stable version](release/stable/index.html)
{%- for release in releases %}
- [{{ release }}](release/{{ release }}/index.html)
{%- endfor %}
56 changes: 56 additions & 0 deletions theme/header.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<style>
:root { --banner-height: 36px; }

#version-banner {
display: none;
position: fixed;
top: 0; left: 0; right: 0;
height: var(--banner-height);
z-index: 9999;
align-items: center;
justify-content: center;
font-size: 0.875em;
box-sizing: border-box;
padding: 0 16px;
}
</style>

<div id="version-banner"></div>

<script>
(function () {
var path = window.location.pathname;
var banner = document.getElementById("version-banner");

var isStable = /\/release\/stable\//.test(path);
if (isStable) return;

var versionMatch = /\/release\/(v[\d.]+)\//.exec(path);
var isDev = !versionMatch;

if (isDev) {
banner.innerHTML =
"This is the <strong>\u00a0development version\u00a0</strong> of the MUSE2 documentation.";
banner.style.backgroundColor = "#fff3cd";
banner.style.borderBottom = "1px solid #ffc107";
banner.style.color = "#664d03";
} else {
var version = versionMatch[1];
banner.innerHTML =
"You are viewing docs for <strong>\u00a0" + version + "\u00a0</strong> of MUSE2. " +
"This is not the latest version.";
banner.style.backgroundColor = "#f8d7da";
banner.style.borderBottom = "1px solid #f5c2c7";
banner.style.color = "#842029";
}

banner.style.display = "flex";

var s = document.createElement("style");
s.textContent =
"body { padding-top: var(--banner-height); }" +
"#mdbook-menu-bar.sticky { top: var(--banner-height) !important; }" +
"#mdbook-sidebar { top: var(--banner-height) !important; height: calc(100vh - var(--banner-height)) !important; }";
document.head.appendChild(s);
})();
</script>
Loading