{{ $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 }} <script> function detectCurrentScheme() { if (localStorage !== null && localStorage.getItem('user-color-scheme')) { return localStorage.getItem('user-color-scheme') } if (defaultTheme) { return defaultTheme } return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; } let giscusTheme = detectCurrentScheme(); 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> */}}