49 lines
		
	
	
		
			No EOL
		
	
	
		
			2.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			No EOL
		
	
	
		
			2.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {{ $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>
 | |
| */}} |