$('#displayed_sidebar').height($(“.nav”).height());
function getSidebarItemHtml(sidebarItem) {
var item_url_stripped = sidebarItem.url || "#"; item_url_stripped = item_url_stripped.replace("index.html", "").replace("index.md", "").replace(".md", ".html"); var urlTarget = ""; if (item_url_stripped.startsWith("http://") || item_url_stripped.startsWith("https://") || item_url_stripped.startsWith("ftp://")) { urlTarget = "_newTab"; } // console.debug(item_url_stripped); var list_item_css_class = "inactive"; if (pageSettings.url.replace("#[^/]*$", "") == item_url_stripped) { list_item_css_class = "active"; } // console.debug(sidebarItem); if(sidebarItem.hasOwnProperty("contents")) { var contentHtml = ""; for(let subitem of sidebarItem.contents) { contentHtml = `${contentHtml}\n ${getSidebarItemHtml(subitem)}`; } var title = sidebarItem.title || pageUrlToTitle[item_url_stripped]; var itemHtml = `<li><a href="${item_url_stripped}"> ${title}</a>\n<ul>${contentHtml}\n</ul>\n</li>\n`; } else if (sidebarItem.url.startsWith("dir://")) { var dirUrl = sidebarItem.url.replace("dir://", "/"); if (dirUrl.endsWith("/")) { dirUrl = dirUrl.slice(0,-1); } if (dirUrl in pageDirectoryToUrl) { var itemHtml = ""; // console.debug(dirUrl); // Note that only pages parsed and generated by jekyll are processed below - not ready files like pdf-s and htmls. for (let contentUrl of pageDirectoryToUrl[dirUrl]) { var subitem = {"url": contentUrl}; itemHtml = `${itemHtml}\n ${getSidebarItemHtml(subitem)}`; } } else { console.error(`No such directory ${dirUrl}`) } } else { var title = sidebarItem.title || pageUrlToTitle[item_url_stripped]; var itemHtml = `<li class="${list_item_css_class}"><a href="${siteBaseurl + item_url_stripped }" target="">${title}</a></li>`; } return itemHtml;
}
function insertSidebarItems() {
var sidebar = siteData.sidebars[pageSettings.sidebar]; $("#displayed_sidebar .sidebarTitle").html(sidebar.title); // console.debug(sidebar); for (let sidebarItem of sidebar.contents) { $("#displayed_sidebar").append(getSidebarItemHtml(sidebarItem)); } // this highlights the active parent class in the navgoco sidebar. this is critical so that the parent expands when you're viewing a page. $("li.active").parents('li').addClass("active"); $("li.active").parents('li').removeClass("inactive");
}
function insertTopnavDropdownItems() {
var topnavDropdown = siteData.sidebars[pageSettings.topnav]; // console.debug(topnavDropdown); for (let item of topnavDropdown.contents) { $("#topnav_dropdown").append(getSidebarItemHtml(item)); } // this highlights the active parent class in the navgoco sidebar. this is critical so that the parent expands when you're viewing a page. $("li.active").parents('li').addClass("active"); $("li.active").parents('li').removeClass("inactive");
}
$(document).ready(function() {
insertSidebarItems(); insertTopnavDropdownItems(); // Initialize navgoco sidebar with default options $("#displayed_sidebar").navgoco({ caretHtml: '', accordion: true, openClass: 'active', // open save: true, cookie: { name: 'navgoco_sidebar', expires: false, path: '/' }, slide: { duration: 400, easing: 'swing' } });
});
$( document ).ready(function() {
//this script says, if the height of the viewport is greater than 800px, then insert affix class, which makes the nav bar float in a fixed // position as your scroll. if you have a lot of nav items, this height may not work for you. var h = $(window).height(); //console.log (h); if (h > 800) { $( "#displayed_sidebar" ).attr("class", "nav affix"); }
});
// Code to make the “Nav” button, which toggles the sidebar. var toggleSidebar = function() {
$("#tg-sb-sidebar").toggle(); $("#tg-sb-icon").toggleClass('fa-toggle-on'); $("#tg-sb-icon").toggleClass('fa-toggle-off'); $("#tg-sb-icon-content-pane").toggleClass('fa-toggle-on'); $("#tg-sb-icon-content-pane").toggleClass('fa-toggle-off');
};
$(document).ready(function() {
$("#tg-sb-link").click(toggleSidebar); $("#hide-sb-link").click(toggleSidebar);
});