(function () { "use strict"; function escapeHtml(value) { return String(value) .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); } function getPageKey() { return document.body.getAttribute("data-page") || ""; } function linkTarget(link) { if (link && link.newTab === false) { return ""; } return ' target="_blank" rel="noopener"'; } function renderInlineLinks(links, separator) { if (!Array.isArray(links) || links.length === 0) { return ""; } return links .map(function (link) { return ( '" + (link.label || "") + "" ); }) .join(typeof separator === "string" ? separator : " / "); } function renderNav(data, pageKey) { var nav = document.querySelector('[data-component="nav"]'); if (!nav || !data || !data.site || !Array.isArray(data.site.navLinks)) { return; } var navName = pageKey === "home" ? data.site.homeNavName : data.site.navName; var navLinksHtml = data.site.navLinks .map(function (link) { var current = link.key === pageKey ? ' aria-current="page"' : ""; return ( '" + (link.label || "") + "" ); }) .join(""); nav.innerHTML = '
"; } function renderFooter(data, pageKey) { var footers = document.querySelectorAll('footer[data-component="footer"]'); if (!footers.length || !data || !data.site) { return; } var pageLastUpdated = pageKey === "home" && data.home ? data.home.lastUpdated || "" : ""; footers.forEach(function (footer) { var lastUpdatedAttr = footer.getAttribute("data-last-updated"); var lastUpdatedText = pageLastUpdated; if (lastUpdatedAttr !== null) { lastUpdatedText = lastUpdatedAttr; } footer.innerHTML = "" + "© " + escapeHtml(data.site.fullName) + (lastUpdatedText ? " · Last updated " + escapeHtml(lastUpdatedText) : "") + "
"; }); } function setCurrentYear() { var yearElements = document.querySelectorAll("[data-year]"); var year = new Date().getFullYear(); yearElements.forEach(function (element) { element.textContent = String(year); }); } function renderHome(data) { if (!data || !data.home) { return; } var publicationTarget = document.getElementById("home-publications-list"); if (publicationTarget && Array.isArray(data.home.publications)) { publicationTarget.innerHTML = data.home.publications .map(function (publication) { return ( '' + escapeHtml(publication.description) + "
" + renderInlineLinks(publication.links, " / ") + "" + escapeHtml(project.summary) + "
" + '' + renderInlineLinks(project.links, " / ") + "
" + "" + paragraph + "
"; }) .join(""); var tech = Array.isArray(project.tech) ? project.tech : []; var techHtml = ""; if (tech.length) { techHtml = '' + prefix + renderInlineLinks(project.links, separator) + "
"; } return ( '' + escapeHtml(publication.description) + "
" + '' + renderInlineLinks(publication.links, " / ") + "
" + "" + (entry.descriptionHtml || "") + "
" + "