Skip to content

Commit 1aaebbe

Browse files
changes via "mike install-extras" using mike 0.5.5
1 parent 96e27af commit 1aaebbe

File tree

3 files changed

+56
-2
lines changed

3 files changed

+56
-2
lines changed

docs/css/version-select.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@media only screen and (max-width:76.1875em) {
2+
#version-selector {
3+
padding: .6rem .8rem;
4+
}
5+
}

docs/js/version-select.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
window.addEventListener("DOMContentLoaded", function() {
2+
// This is a bit hacky. Figure out the base URL from a known CSS file the
3+
// template refers to...
4+
var ex = new RegExp("/?css/version-select.css$");
5+
var sheet = document.querySelector('link[href$="version-select.css"]');
6+
7+
var ABS_BASE_URL = sheet.href.replace(ex, "");
8+
var CURRENT_VERSION = ABS_BASE_URL.split("/").pop();
9+
10+
function makeSelect(options, selected) {
11+
var select = document.createElement("select");
12+
select.classList.add("form-control");
13+
14+
options.forEach(function(i) {
15+
var option = new Option(i.text, i.value, undefined,
16+
i.value === selected);
17+
select.add(option);
18+
});
19+
20+
return select;
21+
}
22+
23+
var xhr = new XMLHttpRequest();
24+
xhr.open("GET", ABS_BASE_URL + "/../versions.json");
25+
xhr.onload = function() {
26+
var versions = JSON.parse(this.responseText);
27+
28+
var realVersion = versions.find(function(i) {
29+
return i.version === CURRENT_VERSION ||
30+
i.aliases.includes(CURRENT_VERSION);
31+
}).version;
32+
33+
var select = makeSelect(versions.map(function(i) {
34+
return {text: i.title, value: i.version};
35+
}), realVersion);
36+
select.addEventListener("change", function(event) {
37+
window.location.href = ABS_BASE_URL + "/../" + this.value;
38+
});
39+
40+
var container = document.createElement("div");
41+
container.id = "version-selector";
42+
container.className = "md-nav__item";
43+
container.appendChild(select);
44+
45+
var sidebar = document.querySelector(".md-nav--primary > .md-nav__list");
46+
sidebar.parentNode.insertBefore(container, sidebar);
47+
};
48+
xhr.send();
49+
});

mkdocs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ theme:
1818

1919
extra_css:
2020
- 'stylesheets/extra.css'
21-
21+
- 'css/version-select.css'
2222
extra_javascript:
2323
- 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML'
24-
24+
- 'js/version-select.js'
2525
markdown_extensions:
2626
- admonition
2727
- pymdownx.highlight:

0 commit comments

Comments
 (0)