87 lines
2.8 KiB
JavaScript
87 lines
2.8 KiB
JavaScript
function setVisibleTags(){
|
|
var tocLinks = document.querySelectorAll("#sidebar a:link, a:visited");
|
|
for(var i = 0; i < tocLinks.length; i++){
|
|
if(localStorage.getItem(tocLinks[i].getAttribute("href")) != null){
|
|
tocLinks[i].parentNode.classList.add("visited");
|
|
}
|
|
}
|
|
}
|
|
|
|
function updateSidebar(notransition) {
|
|
if (notransition) {
|
|
document.querySelectorAll("#sidebar")[0].classList.add("notransition");
|
|
document.querySelectorAll("article")[0].classList.add("notransition");
|
|
}
|
|
localStorage.setItem("openside", window.sidebarExpanded);
|
|
if (!window.sidebarExpanded) {
|
|
document.querySelectorAll("#sidebar")[0].classList.add("collapsed");
|
|
document.querySelectorAll("article")[0].classList.add("expanded");
|
|
} else {
|
|
document.querySelectorAll("#sidebar")[0].classList.remove("collapsed");
|
|
document.querySelectorAll("article")[0].classList.remove("expanded");
|
|
}
|
|
if (notransition) {
|
|
setTimeout(function(){
|
|
document.querySelectorAll("#sidebar")[0].classList.remove("notransition");
|
|
document.querySelectorAll("article")[0].classList.remove("notransition");
|
|
}, 100);
|
|
}
|
|
}
|
|
|
|
function sidebarClick() {
|
|
window.sidebarExpanded = !window.sidebarExpanded;
|
|
updateSidebar(false);
|
|
}
|
|
|
|
function getNextPrev() {
|
|
// thanks iznogoodd from #nim @ freenode.net
|
|
var links = document.querySelectorAll('#sidebar a[href]');
|
|
|
|
var nav = {prev: null, next: null};
|
|
for(var i = 0; i < links.length; i++){
|
|
var item = links.item(i);
|
|
if(item && item.getAttribute('href') === window.location.pathname){
|
|
nav.prev = links.item(i - 1) && links.item(i - 1).getAttribute('href');
|
|
nav.next = links.item(i + 1) && links.item(i + 1).getAttribute('href');
|
|
return nav;
|
|
}
|
|
}
|
|
}
|
|
|
|
function updateNextPrevButtons() {
|
|
var nav = getNextPrev();
|
|
|
|
var prev = document.getElementById("arrow-prev");
|
|
var next = document.getElementById("arrow-next");
|
|
|
|
if (nav.prev != null) { prev.classList.remove("disabled"); prev.href = nav.prev; }
|
|
if (nav.next != null) { next.classList.remove("disabled"); next.href = nav.next; }
|
|
}
|
|
|
|
var darkmodeOn = (localStorage.getItem("darkmode") === "true");
|
|
function toggleDarkMode() {
|
|
darkmodeOn = !darkmodeOn;
|
|
document.getElementsByTagName("body")[0].classList.toggle("darkmode");
|
|
localStorage.setItem("darkmode", darkmodeOn);
|
|
}
|
|
|
|
function initDarkMode() {
|
|
if (darkmodeOn)
|
|
document.getElementsByTagName("body")[0].classList.add("darkmode");
|
|
}
|
|
|
|
|
|
var isMobile = window.screen.width < 720;
|
|
if (localStorage.getItem("openside") === null) {
|
|
window.sidebarExpanded = !isMobile;
|
|
} else {
|
|
window.sidebarExpanded = (localStorage.getItem("openside") === "true");
|
|
}
|
|
|
|
localStorage.setItem(window.location.pathname, true);
|
|
window.onload = function(){
|
|
updateSidebar(true);
|
|
initDarkMode();
|
|
setVisibleTags();
|
|
updateNextPrevButtons();
|
|
}
|