Skip to content

Commit 3151cf2

Browse files
Massimiliano Pippimasci
Massimiliano Pippi
authored andcommitted
backport versioned docs, take 2
1 parent cec1600 commit 3151cf2

File tree

3 files changed

+65
-7
lines changed

3 files changed

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

mkdocs.yml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,10 @@ site_url: https://arduino.github.io/arduino-cli/
66
# Repository
77
repo_name: arduino/arduino-cli
88
repo_url: https://github.com/arduino/arduino-cli
9-
edit_uri: ""
9+
edit_uri: ''
1010

1111
# Copyright
12-
copyright: 'Copyright 2020 ARDUINO SA (http://www.arduino.cc/)'
13-
14-
# Configuration
15-
site_dir: public
16-
edit_uri: ""
12+
copyright: Copyright 2020 ARDUINO SA (http://www.arduino.cc/)
1713

1814
# Theme
1915
theme:
@@ -57,7 +53,7 @@ markdown_extensions:
5753

5854
# Navigation
5955
nav:
60-
- Documentation Home: 'index.md'
56+
- Documentation Home: index.md
6157
- installation.md
6258
- getting-started.md
6359
- CONTRIBUTING.md
@@ -104,6 +100,13 @@ nav:
104100
- settings: rpc/settings.md
105101
- debug: rpc/debug.md
106102
- sketch-build-process.md
103+
- sketch-specification.md
107104
- library-specification.md
108105
- platform-specification.md
109106
- package_index.json specification: package_index_json-specification.md
107+
108+
extra_css:
109+
- css/version-select.css
110+
111+
extra_javascript:
112+
- js/version-select.js

0 commit comments

Comments
 (0)