Skip to content

Commit bb4f2dc

Browse files
committed
Refactor theme decision logic into head.html for faster script execution.
1 parent 466b48b commit bb4f2dc

File tree

2 files changed

+45
-45
lines changed

2 files changed

+45
-45
lines changed

layouts/partials/head.html

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,51 @@
149149
{{- end }}
150150
</noscript>
151151

152+
{{- /* theme-toggle is enabled */}}
153+
{{- if (not site.Params.disableThemeToggle) }}
154+
{{- /* theme is light */}}
155+
{{- if (eq site.Params.defaultTheme "light") }}
156+
<script>
157+
if (localStorage.getItem("pref-theme") === "dark") {
158+
document.querySelector("html").dataset.theme = 'dark';
159+
}
160+
161+
</script>
162+
{{- /* theme is dark */}}
163+
{{- else if (eq site.Params.defaultTheme "dark") }}
164+
<script>
165+
if (localStorage.getItem("pref-theme") === "light") {
166+
document.querySelector("html").dataset.theme = 'light';
167+
}
168+
169+
</script>
170+
{{- else }}
171+
{{- /* theme is auto */}}
172+
<script>
173+
if (localStorage.getItem("pref-theme") === "dark") {
174+
document.querySelector("html").dataset.theme = 'dark';
175+
} else if (localStorage.getItem("pref-theme") === "light") {
176+
document.querySelector("html").dataset.theme = 'light';
177+
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
178+
document.querySelector("html").dataset.theme = 'dark';
179+
} else {
180+
document.querySelector("html").dataset.theme = 'light';
181+
}
182+
183+
</script>
184+
{{- end }}
185+
{{- /* theme-toggle is disabled and theme is auto */}}
186+
{{- else if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark"))}}
187+
<script>
188+
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
189+
document.querySelector("html").dataset.theme = 'dark';
190+
} else {
191+
document.querySelector("html").dataset.theme = 'light';
192+
}
193+
194+
</script>
195+
{{- end }}
196+
152197
{{- partial "extend_head.html" . -}}
153198

154199
{{- /* Misc */}}

layouts/partials/header.html

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,3 @@
1-
{{- /* theme-toggle is enabled */}}
2-
{{- if (not site.Params.disableThemeToggle) }}
3-
{{- /* theme is light */}}
4-
{{- if (eq site.Params.defaultTheme "light") }}
5-
<script>
6-
if (localStorage.getItem("pref-theme") === "dark") {
7-
document.querySelector("html").dataset.theme = 'dark';
8-
}
9-
10-
</script>
11-
{{- /* theme is dark */}}
12-
{{- else if (eq site.Params.defaultTheme "dark") }}
13-
<script>
14-
if (localStorage.getItem("pref-theme") === "light") {
15-
document.querySelector("html").dataset.theme = 'light';
16-
}
17-
18-
</script>
19-
{{- else }}
20-
{{- /* theme is auto */}}
21-
<script>
22-
if (localStorage.getItem("pref-theme") === "dark") {
23-
document.querySelector("html").dataset.theme = 'dark';
24-
} else if (localStorage.getItem("pref-theme") === "light") {
25-
document.querySelector("html").dataset.theme = 'light';
26-
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
27-
document.querySelector("html").dataset.theme = 'dark';
28-
} else {
29-
document.querySelector("html").dataset.theme = 'light';
30-
}
31-
32-
</script>
33-
{{- end }}
34-
{{- /* theme-toggle is disabled and theme is auto */}}
35-
{{- else if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark"))}}
36-
<script>
37-
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
38-
document.querySelector("html").dataset.theme = 'dark';
39-
} else {
40-
document.querySelector("html").dataset.theme = 'light';
41-
}
42-
43-
</script>
44-
{{- end }}
45-
461
<header class="header">
472
<nav class="nav">
483
<div class="logo">

0 commit comments

Comments
 (0)