You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

183 lines
6.2 KiB

var initAll = function () {
// var contentEle = document.getElementById("content");
// var sidetoc = document.createElement("div");
// sidetoc.className = "sidetoc";
// contentEle.appendChild(sidetoc);
// var pc = document.createElement("nav");
// pc.className = "pagetoc";
// sidetoc.appendChild(pc);
var m = document.getElementsByTagName("main")[0];
// <div id="giscus-container"></div>
var d = document.createElement("div");
d.id = "giscus-container";
d.className = "giscus-container";
m.appendChild(d);
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');
});
//before: /first-try/cargo.html
var pagePath = path.substring(1)
pagePath = pagePath.replace(".html", "");
// after: first-try/cargo
// pagePath = pagePath.replace("index.md", "");
// if (pagePath.length > 0) {
// if (pagePath.charAt(pagePath.length-1) == "/"){
// pagePath = pagePath.substring(0, pagePath.length-1)
// }
// }else {
// pagePath = "index"
// }
// first-try/intro
// add visitors count
var ele = document.createElement("div");
ele.setAttribute("align","center");
var count = document.createElement("img")
count.setAttribute("src", "https://visitor-badge.glitch.me/badge?page_id=" + path);
ele.appendChild(count);
var divider =document.createElement("hr")
document.getElementById("giscus-container").appendChild(ele);
document.getElementById("giscus-container").appendChild(divider);
// 选取浏览器默认使用的语言
// const lang = navigator.language || navigator.userLanguage
// 若当前 mdbook 主题为 Light 或 Rust ,则将 giscuz 主题设置为 light
var theme = "transparent_dark";
const themeClass = document.getElementsByTagName("html")[0].className;
if (themeClass.indexOf("light") != -1 || themeClass.indexOf("rust") != -1) {
theme = "light"
}
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", "sunface/rust-course");
script.setAttribute("data-repo-id", "MDEwOlJlcG9zaXRvcnkxNDM4MjIwNjk=");
script.setAttribute("data-category", "章节评论区");
script.setAttribute("data-category-id", "DIC_kwDOCJKM9c4COQcP");
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", theme);
// script.setAttribute("data-lang", lang);
// 预先加载评论会更好,这样用户读到那边时,评论就加载好了
// script.setAttribute("data-loading", "lazy");
document.getElementById("giscus-container").appendChild(script);
};
window.addEventListener('load', initAll);