[FIX] Fix giscus plugin (#543)

This commit is contained in:
Yinmin Zhong 2023-12-15 13:41:56 +08:00 committed by GitHub
parent 1f4cdd486b
commit 905592de9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 33 deletions

View File

@ -1,33 +0,0 @@
{% extends "base.html" %}
{% block disqus %}
<script src="https://giscus.app/client.js" data-repo="PKUFlyingPig/cs-self-learning" data-repo-id="R_kgDOGP67ng"
data-category="Announcements" data-category-id="DIC_kwDOGP67ns4COM9Q" data-mapping="title"
data-reactions-enabled="1" data-emit-metadata="0" data-input-position="top" data-theme="light_protanopia"
data-lang="zh-CN" data-loading="lazy" crossorigin="anonymous" async>
</script>
<script>
var palette = __get("__palette")
if (palette && typeof palette.color === "object") {
if (palette.color.scheme === "slate") {
const giscus = document.querySelector("script[src*=giscus]")
giscus.setAttribute("data-theme", "dark_protanopia")
}
}
document.addEventListener("DOMContentLoaded", function () {
const ref = document.querySelector("[data-md-component=palette]")
ref.addEventListener("change", function () {
var palette = __get("__palette")
if (palette && typeof palette.color === "object") {
const theme = palette.color.scheme === "slate" ? "dark_protanopia" : "light_protanopia"
const frame = document.querySelector(".giscus-frame")
frame.contentWindow.postMessage({
giscus: { setConfig: { theme } }
}, "https://giscus.app")
}
})
})
</script>
{% endblock %}

View File

@ -0,0 +1,52 @@
<!-- Insert generated snippet here -->
<script src="https://giscus.app/client.js"
data-repo="PKUFlyingPig/cs-self-learning"
data-repo-id="R_kgDOGP67ng"
data-category="Announcements"
data-category-id="DIC_kwDOGP67ns4COM9Q"
data-mapping="title"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="top"
data-theme="light_protanopia"
data-lang="zh-CN"
data-loading="lazy"
crossorigin="anonymous"
async>
</script>
<!-- Synchronize Giscus theme with palette -->
<script>
var giscus = document.querySelector("script[src*=giscus]")
// Set palette on initial load
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
var theme = palette.color.scheme === "slate"
? "dark_protanopia"
: "light_protanopia"
// Instruct Giscus to set theme
giscus.setAttribute("data-theme", theme)
}
// Register event handlers after documented loaded
document.addEventListener("DOMContentLoaded", function() {
var ref = document.querySelector("[data-md-component=palette]")
ref.addEventListener("change", function() {
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
var theme = palette.color.scheme === "slate"
? "dark_protanopia"
: "light_protanopia"
// Instruct Giscus to change theme
var frame = document.querySelector(".giscus-frame")
frame.contentWindow.postMessage(
{ giscus: { setConfig: { theme } } },
"https://giscus.app"
)
}
})
})
</script>