// https://giscus.app const data_repo = "gopl-zh/gopl-zh.github.com"; const data_repo_id = "MDEwOlJlcG9zaXRvcnk2MTUzMTQ2Mw=="; const data_category = "General"; const data_category_id = "DIC_kwDOA6rlR84CQnJW"; var initAll = function () { var path = window.location.pathname; if (path.endsWith("/print.html")) { return; } var images = document.querySelectorAll("main img") Array.prototype.forEach.call(images, function (img) { img.addEventListener("click", function () { BigPicture({ el: img, }); }); }); // Un-active everything when you click it Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function (el) { el.addEventHandler("click", function () { Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function (el) { el.classList.remove("active"); }); el.classList.add("active"); }); }); var updateFunction = function () { var id = null; var elements = document.getElementsByClassName("header"); Array.prototype.forEach.call(elements, function (el) { if (window.pageYOffset >= el.offsetTop) { id = el; } }); Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function (el) { el.classList.remove("active"); }); Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function (el) { if (id == null) { return; } if (id.href.localeCompare(el.href) == 0) { el.classList.add("active"); } }); }; var pagetoc = document.getElementsByClassName("pagetoc")[0]; var elements = document.getElementsByClassName("header"); Array.prototype.forEach.call(elements, function (el) { var link = document.createElement("a"); // Indent shows hierarchy var indent = ""; switch (el.parentElement.tagName) { case "H1": return; case "H3": indent = "20px"; break; case "H4": indent = "40px"; break; default: break; } link.appendChild(document.createTextNode(el.text)); link.style.paddingLeft = indent; link.href = el.href; pagetoc.appendChild(link); }); updateFunction.call(); // Handle active elements on scroll window.addEventListener("scroll", updateFunction); document.getElementById("theme-list").addEventListener("click", function (e) { var iframe = document.querySelector('.giscus-frame'); if (!iframe) return; var theme; if (e.target.className === "theme") { theme = e.target.id; } else { return; } // 若当前 mdbook 主题不是 Light 或 Rust ,则将 giscuz 主题设置为 transparent_dark var giscusTheme = "light" if (theme != "light" && theme != "rust") { giscusTheme = "transparent_dark"; } var msg = { setConfig: { theme: giscusTheme } }; iframe.contentWindow.postMessage({ giscus: msg }, 'https://giscus.app'); }); pagePath = pagePath.replace("index.md", ""); pagePath = pagePath.replace(".md", ""); if (pagePath.length > 0) { if (pagePath.charAt(pagePath.length-1) == "/"){ pagePath = pagePath.substring(0, pagePath.length-1); } }else { pagePath = "index"; } var giscusTheme = "light"; const themeClass = document.getElementsByTagName("html")[0].className; if (themeClass.indexOf("light") == -1 && themeClass.indexOf("rust") == -1) { giscusTheme = "transparent_dark"; } var script = document.createElement("script"); script.type = "text/javascript"; script.src = "https://giscus.app/client.js"; script.async = true; script.crossOrigin = "anonymous"; script.setAttribute("data-repo", data_repo); script.setAttribute("data-repo-id", data_repo_id); script.setAttribute("data-category", data_category); script.setAttribute("data-category-id", data_category_id); script.setAttribute("data-mapping", "specific"); script.setAttribute("data-term", pagePath); script.setAttribute("data-reactions-enabled", "1"); script.setAttribute("data-emit-metadata", "0"); script.setAttribute("data-input-position", "top"); script.setAttribute("data-theme", giscusTheme); script.setAttribute("data-lang", "zh-CN"); script.setAttribute("data-loading", "lazy"); document.getElementById("giscus-container").appendChild(script); }; window.addEventListener('load', initAll);