mirror of
				https://github.com/Wonderfall/hugo-WonderMod.git
				synced 2025-10-31 03:45:24 +01:00 
			
		
		
		
	theme: don't include set-theme inline
This commit is contained in:
		
							
								
								
									
										40
									
								
								assets/set-theme.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								assets/set-theme.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | |||||||
|  | function setTheme() { | ||||||
|  |     const time = new Date(); | ||||||
|  |  | ||||||
|  |     const prev = localStorage.getItem('date'); | ||||||
|  |     const date = String(time.getMonth() + 1) + '.' + String(time.getDate()); | ||||||
|  |  | ||||||
|  |     const now = time.getTime(); | ||||||
|  |     let sunrise; | ||||||
|  |     let sunset; | ||||||
|  |  | ||||||
|  |     function setBodyClass() { | ||||||
|  |         if (now > sunrise && now < sunset) return; | ||||||
|  |         document.body.classList.add('dark'); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     if (date !== prev) { | ||||||
|  |         fetch('https://api.ipgeolocation.io/astronomy?apiKey=5ed37d85103e4defa5df4c5298ed5215') | ||||||
|  |             .then(res => res.json()) | ||||||
|  |             .then(data => { | ||||||
|  |                 sunrise = data.sunrise.split(':').map(Number); | ||||||
|  |                 sunset = data.sunset.split(':').map(Number); | ||||||
|  |             }) | ||||||
|  |             .catch(() => { | ||||||
|  |                 sunrise = [7, 0]; | ||||||
|  |                 sunset = [19, 0]; | ||||||
|  |             }) | ||||||
|  |             .finally(() => { | ||||||
|  |                 sunrise = time.setHours(sunrise[0], sunrise[1], 0); | ||||||
|  |                 sunset = time.setHours(sunset[0], sunset[1], 0); | ||||||
|  |                 setBodyClass(); | ||||||
|  |                 localStorage.setItem('sunrise', sunrise); | ||||||
|  |                 localStorage.setItem('sunset', sunset); | ||||||
|  |             }); | ||||||
|  |         localStorage.setItem('date', date); | ||||||
|  |     } else { | ||||||
|  |         sunrise = Number(localStorage.getItem('sunrise')); | ||||||
|  |         sunset = Number(localStorage.getItem('sunset')); | ||||||
|  |         setBodyClass(); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -1,5 +1,6 @@ | |||||||
| <!DOCTYPE html> | <!DOCTYPE html> | ||||||
| <html lang="{{ .Site.LanguageCode }}"> | <html lang="{{ .Site.LanguageCode }}"> | ||||||
|  |  | ||||||
| <head> | <head> | ||||||
|     <meta charset="utf-8"> |     <meta charset="utf-8"> | ||||||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge"> |     <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||||||
| @@ -35,49 +36,10 @@ | |||||||
|     {{- template "_internal/opengraph.html" . }} |     {{- template "_internal/opengraph.html" . }} | ||||||
|     {{- end }} |     {{- end }} | ||||||
|     <!-- Script --> |     <!-- Script --> | ||||||
|     <script> |     {{ $settheme := resources.Get "set-theme.js" | minify }} | ||||||
|       function setTheme() { |     <script src="{{ $settheme.Permalink }}"></script> | ||||||
|         const time = new Date(); |  | ||||||
|  |  | ||||||
|         const prev = localStorage.getItem('date'); |  | ||||||
|         const date = String(time.getMonth() + 1) + '.' + String(time.getDate()); |  | ||||||
|  |  | ||||||
|         const now = time.getTime(); |  | ||||||
|         let sunrise; |  | ||||||
|         let sunset; |  | ||||||
|  |  | ||||||
|         function setBodyClass() { |  | ||||||
|           if (now > sunrise && now < sunset) return; |  | ||||||
|           document.body.classList.add('dark'); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         if (date !== prev) { |  | ||||||
|           fetch('https://api.ipgeolocation.io/astronomy?apiKey=5ed37d85103e4defa5df4c5298ed5215') |  | ||||||
|             .then(res => res.json()) |  | ||||||
|             .then(data => { |  | ||||||
|               sunrise = data.sunrise.split(':').map(Number); |  | ||||||
|               sunset = data.sunset.split(':').map(Number); |  | ||||||
|             }) |  | ||||||
|             .catch(() => { |  | ||||||
|               sunrise = [7, 0]; |  | ||||||
|               sunset = [19, 0]; |  | ||||||
|             }) |  | ||||||
|             .finally(() => { |  | ||||||
|               sunrise = time.setHours(sunrise[0], sunrise[1], 0); |  | ||||||
|               sunset = time.setHours(sunset[0], sunset[1], 0); |  | ||||||
|               setBodyClass(); |  | ||||||
|               localStorage.setItem('sunrise', sunrise); |  | ||||||
|               localStorage.setItem('sunset', sunset); |  | ||||||
|             }); |  | ||||||
|           localStorage.setItem('date', date); |  | ||||||
|         } else { |  | ||||||
|           sunrise = Number(localStorage.getItem('sunrise')); |  | ||||||
|           sunset = Number(localStorage.getItem('sunset')); |  | ||||||
|           setBodyClass(); |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     </script> |  | ||||||
| </head> | </head> | ||||||
|  |  | ||||||
| <body class="{{ if eq .Kind `page` }}single{{ else }}list{{ if .IsHome }} home{{ end }}{{ end }}"> | <body class="{{ if eq .Kind `page` }}single{{ else }}list{{ if .IsHome }} home{{ end }}{{ end }}"> | ||||||
|     <script> |     <script> | ||||||
|         setTheme(); |         setTheme(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Aditya Telange
					Aditya Telange