{{ $theme := .Site.Params.GiscusTheme | default "preferred_color_scheme" }} {{ $mapping := .Site.Params.GiscusDataMapping | default "og:title" }} {{ $language := .Site.Params.GiscusLang | default "en" }} {{ $category := .Site.Params.GiscusDiscussionCategory | default "Announcements" }} {{ $lazyload := .Site.Params.GiscusLazyLoad | default false }} {{ $colorTheme := "auto" }} {{ if and (isset site.Params "colortheme") (ne site.Params.colortheme "") }} {{ $colorTheme = site.Params.colortheme | lower }} {{ end }} <script> function detectCurrentScheme2() { const defaultTheme = "{{ $colorTheme }}"; if (localStorage !== null && localStorage.getItem("user-color-scheme")) { return localStorage.getItem("user-color-scheme"); } if (defaultTheme === "dark" || defaultTheme === "light") { return defaultTheme; } return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; } let giscusTheme = detectCurrentScheme2(); let giscusAttributes = { src: "https://giscus.app/client.js", "data-repo": "{{- .Site.Params.GiscusRepo -}}", "data-repo-id": "{{- .Site.Params.GiscusRepoId -}}", "data-category": "{{- $category -}}", "data-category-id": "{{- .Site.Params.GiscusCategoryId -}}", "data-mapping": "{{ $mapping }}", "data-strict": "0", "data-reactions-enabled": "1", "data-emit-metadata": "0", "data-input-position": "bottom", "data-theme": giscusTheme, "data-lang": "{{ $language }}", crossorigin: "anonymous", lazyload: "{{ $lazyload }}", async: true, }; let main = document.querySelector("main"); let giscusScript = document.createElement("script"); Object.entries(giscusAttributes).forEach(([key, value]) => giscusScript.setAttribute(key, value)); main.appendChild(giscusScript); </script> {{/* <script src="https://giscus.app/client.js" data-repo="{{- .Site.Params.GiscusRepo -}}" data-repo-id="{{- .Site.Params.GiscusRepoId -}}" data-category="{{- .Site.Params.GiscusCategory -}}" data-category-id="{{- .Site.Params.GiscusCategoryId -}}" data-mapping="{{ $mapping }}" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="{{ $theme }}" data-lang="{{ $language }}" crossorigin="anonymous" {{ if $lazyload }} data-loading="lazy" {{ end }} async></script> */}}