overrides/partials/giscus.html (68 lines of code) (raw):

{% set discussion = not page.meta.discussion is defined or page.meta.discussion == true %} {% if not page.meta.generated and discussion and config.extra.giscus %} <!-- Giscus --> <h2 id="__comments">{{ lang.t("meta.comments") }}</h2> {% if page and page.meta and page.meta.rule %} {% set discus_term = page.meta.rule %} {% endif %} {% if discus_term %} <script src="https://giscus.app/client.js" data-repo="{{ config.extra.giscus.repo }}" data-repo-id="{{ config.extra.giscus.repo_id }}" data-category="{{ config.extra.giscus.category }}" data-category-id="{{ config.extra.giscus.category_id }}" data-mapping="specific" data-term="{{ discus_term }}" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="top" data-theme="light" data-lang="en" data-loading="lazy" crossorigin="anonymous" async> </script> {% else %} <script src="https://giscus.app/client.js" data-repo="{{ config.extra.giscus.repo }}" data-repo-id="{{ config.extra.giscus.repo_id }}" data-category="{{ config.extra.giscus.category }}" data-category-id="{{ config.extra.giscus.category_id }}" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="top" data-theme="light" data-lang="en" data-loading="lazy" crossorigin="anonymous" async> </script> {% endif %} <!-- 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" : "light" 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" : "light" /* Instruct Giscus to change theme */ var frame = document.querySelector(".giscus-frame") frame.contentWindow.postMessage( { giscus: { setConfig: { theme } } }, "https://giscus.app" ) } }) }) </script> {% endif %}