-
Notifications
You must be signed in to change notification settings - Fork 986
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
book |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
This file makes sure that Github Pages doesn't process mdBook's output. |
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
practice.rs |
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
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" | ||
} | ||
|
||
// 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=practice/en/" + path); | ||
count.setAttribute("src", "https://api.visitorbadge.io/api/visitors?labelColor=%23595959&countColor=%230d81c3&style=flat-square&path=practice/en/" + 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-by-practice"); | ||
script.setAttribute("data-repo-id", "MDEwOlJlcG9zaXRvcnkxMjk5OTAzOTY="); | ||
script.setAttribute("data-category", "Book Comments"); | ||
script.setAttribute("data-category-id", "DIC_kwDOB79-_M4COQmx"); | ||
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 == 'en-US' ? 'en' : lang); | ||
// 预先加载评论会更好,这样用户读到那边时,评论就加载好了 | ||
// script.setAttribute("data-loading", "lazy"); | ||
document.getElementById("giscus-container").appendChild(script); | ||
}; | ||
|
||
window.addEventListener('load', initAll); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
(function () { | ||
var path = window.location.pathname; | ||
var link = "https://practice.rs" + path; | ||
var word = "English"; | ||
var lang = "zh-CN"; | ||
var changeLang = "切换到英语"; | ||
|
||
if (window.location.href.indexOf("zh.") == -1) { | ||
link = "https://zh.practice.rs" + path; | ||
word = "简体中文"; | ||
lang = "en"; | ||
changeLang = "Switch to Chinese" | ||
} | ||
|
||
var lang_node = ''; | ||
if (link != '') { | ||
lang_node = '<a href="' + link + '" title="' + changeLang + '" aria-label="' + changeLang + '"><i id="change-language-button" class="fa fa-language"> ' + word + '</i></a>'; | ||
} | ||
|
||
console.log(lang_node) | ||
var insertNode = document.getElementsByClassName('right-buttons'); | ||
if (insertNode.length > 0) { | ||
var html = insertNode[0].innerHTML; | ||
insertNode[0].innerHTML = html + lang_node; | ||
} | ||
})() |
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
/* | ||
Based off of the Ayu theme | ||
Original by Dempfi (https://github.com/dempfi/ayu) | ||
*/ | ||
|
||
.hljs { | ||
display: block; | ||
overflow-x: auto; | ||
background: #191f26; | ||
color: #e6e1cf; | ||
} | ||
|
||
.hljs-comment, | ||
.hljs-quote { | ||
color: #5c6773; | ||
font-style: italic; | ||
} | ||
|
||
.hljs-variable, | ||
.hljs-template-variable, | ||
.hljs-attribute, | ||
.hljs-attr, | ||
.hljs-regexp, | ||
.hljs-link, | ||
.hljs-selector-id, | ||
.hljs-selector-class { | ||
color: #ff7733; | ||
} | ||
|
||
.hljs-number, | ||
.hljs-meta, | ||
.hljs-builtin-name, | ||
.hljs-literal, | ||
.hljs-type, | ||
.hljs-params { | ||
color: #ffee99; | ||
} | ||
|
||
.hljs-string, | ||
.hljs-bullet { | ||
color: #b8cc52; | ||
} | ||
|
||
.hljs-title, | ||
.hljs-built_in, | ||
.hljs-section { | ||
color: #ffb454; | ||
} | ||
|
||
.hljs-keyword, | ||
.hljs-selector-tag, | ||
.hljs-symbol { | ||
color: #ff7733; | ||
} | ||
|
||
.hljs-name { | ||
color: #36a3d9; | ||
} | ||
|
||
.hljs-tag { | ||
color: #00568d; | ||
} | ||
|
||
.hljs-emphasis { | ||
font-style: italic; | ||
} | ||
|
||
.hljs-strong { | ||
font-weight: bold; | ||
} | ||
|
||
.hljs-addition { | ||
color: #91b362; | ||
} | ||
|
||
.hljs-deletion { | ||
color: #d96c75; | ||
} |
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.