<!-- 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>