Skip to content

Commit

Permalink
custom client.js
Browse files Browse the repository at this point in the history
  • Loading branch information
shlu committed Dec 23, 2024
1 parent 3bc6659 commit 56cf12a
Showing 1 changed file with 147 additions and 14 deletions.
161 changes: 147 additions & 14 deletions _layouts/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,154 @@ <h1><a href="{{ "/" | absolute_url }}">{{ site.title }}</a></h1>

{{ content }}

<script src="https://giscus.app/client.js"
data-repo="xpko/xpko.github.io"
data-repo-id="MDEwOlJlcG9zaXRvcnkyNzM0NTQzNjk="
data-category="blog-comments"
data-category-id="DIC_kwDOEEyVIc4CldBL"
data-mapping="pathname"
data-strict="0"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="bottom"
data-theme="preferred_color_scheme"
data-lang="zh-CN"
crossorigin="anonymous"
async>
<!-- comments config BEGIN -->
<script
data-repo="xpko/xpko.github.io"
data-repo-id="MDEwOlJlcG9zaXRvcnkyNzM0NTQzNjk="
data-category="blog-comments"
data-category-id="DIC_kwDOEEyVIc4CldBL"
data-mapping="pathname"
data-strict="0"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="bottom"
data-theme="preferred_color_scheme"
data-lang="zh-CN"
crossorigin="anonymous"
async
>
(function(){
function h(a){return'[giscus] An error occurred. Error message: "'.concat(a,'".')}
function l(a,g){void 0===g&&(g=!1);g=g?"meta[property='og:".concat(a,"'],"):"";return(a=document.querySelector(g+"meta[name='".concat(a,"']")))?a.content:""}
function p(){delete c.session;var a="".concat(k,"/widget?").concat(new URLSearchParams(c));e.src=a}
var m = null, // 不再依赖 document.currentScript
k = "https://giscus.app", // 手动指定 origin
b = new URL(location.href),
d = b.searchParams.get("giscus") || "",
n = localStorage.getItem("giscus-session");
b.searchParams.delete("giscus");
b.hash = "";
var f = b.toString();
if(d) {
localStorage.setItem("giscus-session", JSON.stringify(d));
history.replaceState(void 0, document.title, f);
}
else if(n) {
try {
d = JSON.parse(n);
} catch(a) {
localStorage.removeItem("giscus-session");
console.warn("".concat(h(null===a||void 0===a?void 0:a.message)," Session has been cleared."));
}
}
b = {
theme: "preferred_color_scheme",
reactionsEnabled: "1",
emitMetadata: "0",
inputPosition: "bottom",
repo: "xpko/xpko.github.io",
repoId: "MDEwOlJlcG9zaXRvcnkyNzM0NTQzNjk=",
category: "blog-comments",
categoryId: "DIC_kwDOEEyVIc4CldBL",
strict: "0",
lang: "zh-CN"
};
var c = {
origin: f,
session: d,
theme: b.theme,
reactionsEnabled: b.reactionsEnabled || "1",
emitMetadata: b.emitMetadata || "0",
inputPosition: b.inputPosition || "bottom",
repo: b.repo,
repoId: b.repoId,
category: b.category || "",
categoryId: b.categoryId,
strict: b.strict || "0",
description: l("description", !0),
backLink: l("giscus:backlink") || f,
mapping: "pathname",
term: 2 > location.pathname.length ? "index" : decodeURIComponent(location.pathname.substring(1).replace(/\.\w+$/, ""))
};
var q = (d = document.querySelector(".giscus")) && d.id;
if(q) {
c.origin = "".concat(f, "#").concat(q);
}
f = b.lang ? "/".concat(b.lang) : "";
f = "".concat(k).concat(f, "/widget?").concat(new URLSearchParams(c));
b = "lazy" === "async" ? "lazy" : void 0;
var e = document.createElement("iframe");
Object.entries({
class: "giscus-frame giscus-frame--loading",
title: "Comments",
scrolling: "no",
allow: "clipboard-write",
src: f,
loading: b
}).forEach(function(a){
var g = a[0];
return (a = a[1]) && e.setAttribute(g, a);
});
e.style.opacity = "0";
e.addEventListener("load", function(){
e.style.removeProperty("opacity");
e.classList.remove("giscus-frame--loading");
});
b = document.getElementById("giscus-css") || document.createElement("link");
b.id = "giscus-css";
b.rel = "stylesheet";
b.href = "".concat(k, "/default.css");
document.head.prepend(b);
if(d){
for(; d.firstChild;) d.firstChild.remove();
d.appendChild(e);
} else {
d = document.createElement("div");
d.setAttribute("class", "giscus");
d.appendChild(e);
// 由于没有 currentScript,手动插入到合适的位置,例如 body 末尾
document.body.insertAdjacentElement("beforeend", d);
}
window.addEventListener("message", function(a){
if(a.origin === k){
a = a.data;
if("object" === typeof a && a.giscus){
if(a.giscus.resizeHeight){
e.style.height = "".concat(a.giscus.resizeHeight, "px");
}
if(a.giscus.signOut){
localStorage.removeItem("giscus-session");
console.log("[giscus] User has logged out. Session has been cleared.");
p();
}
if(a.giscus.error){
a = a.giscus.error;
if(a.includes("Bad credentials") || a.includes("Invalid state value") || a.includes("State has expired")){
if(null !== localStorage.getItem("giscus-session")){
localStorage.removeItem("giscus-session");
console.warn("".concat(h(a), " Session has been cleared."));
p();
} else if(!n){
console.error("".concat(h(a), " No session is stored initially. ").concat("Please consider reporting this error at https://github.com/giscus/giscus/issues/new."));
}
}
else if(a.includes("Discussion not found")){
console.warn("[giscus] ".concat(a, ". A new discussion will be created if a comment/reaction is submitted."));
}
else if(a.includes("API rate limit exceeded")){
console.warn(h(a));
}
else {
console.error("".concat(h(a), " ").concat("Please consider reporting this error at https://github.com/giscus/giscus/issues/new."));
}
}
}
}
});
})();
</script>
<!-- comments config END -->


{% if site.github.private != true and site.github.license %}
<div class="footer border-top border-gray-light mt-5 pt-3 text-right text-gray">
Expand Down

0 comments on commit 56cf12a

Please sign in to comment.