{{ $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>
*/}}