<!-- https://giscus.app/ --> <script type="text/javascript"> $(function () { const origin = "https://giscus.app"; const iframe = "iframe.giscus-frame"; const lightTheme = "light"; const darkTheme = "dark_dimmed"; let initTheme = lightTheme; if ($("html[data-mode=dark]").length > 0 || ($("html[data-mode]").length == 0 && window.matchMedia("(prefers-color-scheme: dark)").matches)) { initTheme = darkTheme; } let giscusAttributes = { "src": "https://giscus.app/client.js", "data-repo": "{{ site.comments.giscus.repo}}", "data-repo-id": "{{ site.comments.giscus.repo_id }}", "data-category": "{{ site.comments.giscus.category }}", "data-category-id": "{{ site.comments.giscus.category_id }}", "data-mapping": "{{ site.comments.giscus.mapping | default: 'pathname' }}", "data-reactions-enabled": "{{ site.comments.giscus.reactions_enabled | default: '1' }}", "data-emit-metadata": "0", "data-theme": initTheme, "data-input-position": "{{ site.comments.giscus.input_position | default: 'bottom' }}", "data-lang": "{{ site.comments.giscus.lang | default: lang }}", "crossorigin": "anonymous", "async": "" }; let giscusScript = document.createElement("script"); Object.entries(giscusAttributes).forEach(([key, value]) => giscusScript.setAttribute(key, value)); document.getElementById("tail-wrapper").appendChild(giscusScript); addEventListener("message", (event) => { if (event.source === window && event.data && event.data.direction === ModeToggle.ID) { /* global theme mode changed */ const mode = event.data.message; const theme = (mode === ModeToggle.DARK_MODE ? darkTheme : lightTheme); const message = { setConfig: { theme: theme } }; const giscus = document.querySelector(iframe).contentWindow; giscus.postMessage({ giscus: message }, origin); } }); }); </script>