// Cookie manipulation functions, from https://www.w3schools.com/js/js_cookies.asp function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires="+d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for(var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } // Toogle sidebar collapse function initSideBarCollapse() { var collapsed = getCookie("pydoctor-sidebar-collapsed"); if (collapsed == "yes") { document.body.classList.add("sidebar-collapsed"); } if (collapsed == ""){ setCookie("pydoctor-sidebar-collapsed", "no", 365); } updateSideBarCollapse(); } function toggleSideBarCollapse() { if (document.body.classList.contains('sidebar-collapsed')){ document.body.classList.remove('sidebar-collapsed'); setCookie("pydoctor-sidebar-collapsed", "no", 365); } else { document.body.classList.add("sidebar-collapsed"); setCookie("pydoctor-sidebar-collapsed", "yes", 365); } updateSideBarCollapse(); } function updateSideBarCollapse() { let link = document.querySelector('#collapseSideBar a') // Since this script is called before the page finishes the parsing, // link is undefined when it's first called. if (link!=undefined){ var collapsed = document.body.classList.contains('sidebar-collapsed'); link.innerText = collapsed ? '»' : '«'; } // Fixes renderring issue with safari. // https://stackoverflow.com/a/8840703 var sidebarcontainer = document.querySelector('.sidebarcontainer'); sidebarcontainer.style.display='none'; sidebarcontainer.offsetHeight; // no need to store this anywhere, the reference is enough // Set the sidebar display on load to avoid showing it for few miliseconds when loading.. sidebarcontainer.style.display='flex'; } initSideBarCollapse();