create mkdocs
This commit is contained in:
parent
25f5d3fa3d
commit
deedbc7b9f
33 changed files with 4817 additions and 2 deletions
65
docs/site/js/darkmode.js
Normal file
65
docs/site/js/darkmode.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
function setColorMode(mode) {
|
||||
// Switch between light/dark theme. `mode` is a string value of either 'dark' or 'light'.
|
||||
var hljs_light = document.getElementById('hljs-light'),
|
||||
hljs_dark = document.getElementById('hljs-dark');
|
||||
document.documentElement.setAttribute('data-bs-theme', mode);
|
||||
if (mode == 'dark') {
|
||||
hljs_light.disabled = true;
|
||||
hljs_dark.disabled = false;
|
||||
} else {
|
||||
hljs_dark.disabled = true;
|
||||
hljs_light.disabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
function updateModeToggle(mode) {
|
||||
// Update icon and toggle checkmarks of color mode selector.
|
||||
var menu = document.getElementById('theme-menu');
|
||||
document.querySelectorAll('[data-bs-theme-value]')
|
||||
.forEach(function(toggle) {
|
||||
if (mode == toggle.getAttribute('data-bs-theme-value')) {
|
||||
toggle.setAttribute('aria-pressed', 'true');
|
||||
toggle.lastElementChild.classList.remove('d-none');
|
||||
menu.firstElementChild.setAttribute('class', toggle.firstElementChild.getAttribute('class'));
|
||||
} else {
|
||||
toggle.setAttribute('aria-pressed', 'false');
|
||||
toggle.lastElementChild.classList.add('d-none');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function onSystemColorSchemeChange(event) {
|
||||
// Update site color mode to match system color mode.
|
||||
setColorMode(event.matches ? 'dark' : 'light');
|
||||
}
|
||||
|
||||
var mql = window.matchMedia('(prefers-color-scheme: dark)'),
|
||||
defaultMode = document.documentElement.getAttribute('data-bs-theme'),
|
||||
storedMode = localStorage.getItem('mkdocs-colormode');
|
||||
if (storedMode && storedMode != 'auto') {
|
||||
setColorMode(storedMode);
|
||||
updateModeToggle(storedMode);
|
||||
} else if (storedMode == 'auto' || defaultMode == 'auto') {
|
||||
setColorMode(mql.matches ? 'dark' : 'light');
|
||||
updateModeToggle('auto');
|
||||
mql.addEventListener('change', onSystemColorSchemeChange);
|
||||
} else {
|
||||
setColorMode(defaultMode);
|
||||
updateModeToggle(defaultMode);
|
||||
}
|
||||
|
||||
document.querySelectorAll('[data-bs-theme-value]')
|
||||
.forEach(function(toggle) {
|
||||
toggle.addEventListener('click', function (e) {
|
||||
var mode = e.currentTarget.getAttribute('data-bs-theme-value');
|
||||
localStorage.setItem('mkdocs-colormode', mode);
|
||||
if (mode == 'auto') {
|
||||
setColorMode(mql.matches ? 'dark' : 'light');
|
||||
mql.addEventListener('change', onSystemColorSchemeChange);
|
||||
} else {
|
||||
setColorMode(mode);
|
||||
mql.removeEventListener('change', onSystemColorSchemeChange);
|
||||
}
|
||||
updateModeToggle(mode);
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue