Skip to content

Commit

Permalink
Support versioning docs (matrix-org#259)
Browse files Browse the repository at this point in the history
* Setup versioned docs

* changelog

* correct version number
  • Loading branch information
Half-Shot authored Mar 30, 2022
1 parent e287cca commit 3cf1552
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
keep_files: true
publish_dir: ./book
destination_dir: ./
destination_dir: ./latest
32 changes: 32 additions & 0 deletions .github/workflows/docs-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Build docs

on:
release:
types: [published]

jobs:
deploy:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- name: Get release tag
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV

- name: Setup mdBook
uses: peaceiris/actions-mdbook@v1
with:
mdbook-version: '0.4.11'

- name: Set version of docs
run: echo 'window.HOOKSHOT_VERSION = "${{ env.RELEASE_VERSION }}";' > ./docs/_site/version.js

- run: mdbook build

- name: Deploy latest
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
keep_files: true
publish_dir: ./book
destination_dir: ./${{ env.RELEASE_VERSION }}
5 changes: 5 additions & 0 deletions book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,8 @@ git-repository-url = "https://github.com/matrix-org/matrix-hookshot"
additional-css = [
"docs/_site/style.css"
]

additional-js = [
"docs/_site/main.js",
"docs/_site/version.js"
]
36 changes: 36 additions & 0 deletions docs/_site/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
window.addEventListener("load", () => {
const scrollbox = document.querySelector(".sidebar-scrollbox");
scrollbox.innerHTML = `<div class="version-box"><span>Version: </span></div>${scrollbox.innerHTML}`;
const currentVersion = window.HOOKSHOT_VERSION || 'latest';

const selectElement = document.createElement("select");

fetch("https://api.github.com/repos/matrix-org/matrix-hookshot/releases", {
cache: "force-cache",
}).then(res =>
res.json()
).then(releases => {
selectElement.innerHTML = "";
for (const version of ['latest', ...releases.map(r => r.tag_name).filter(s => s !== "0.1.0")]) {
const option = document.createElement("option");
option.innerHTML = version;
selectElement.add(option);
if (currentVersion === version) {
option.setAttribute('selected', '');
}
}
}).catch(ex => {
console.error("Failed to fetch version data", ex);
})

const option = document.createElement("option");
option.innerHTML = 'loading...';
selectElement.add(option);

selectElement.addEventListener('change', (event) => {
const versionlessPath = window.location.pathname.split('/').slice(2).join('/');
window.location = `${window.location.origin}/${event.target.value}/${versionlessPath}`;
});

document.querySelector(".version-box").appendChild(selectElement);
});
2 changes: 2 additions & 0 deletions docs/_site/version.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// This is modified by the build script
window.HOOKSHOT_VERSION = "latest";

0 comments on commit 3cf1552

Please sign in to comment.