summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--layouts/_default/baseof.html36
-rw-r--r--static/js/theme-switch.js28
2 files changed, 30 insertions, 34 deletions
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 52a6767..7a5579d 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -34,38 +34,6 @@
</body>
-<script>
-
- function isAuto() {
- return document.body.classList.contains("auto");
- }
-
- function setTheme() {
- if (!isAuto()) {
- return
- }
-
- document.body.classList.remove("auto");
- let cls = "light";
- if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
- cls = "dark";
- }
-
- document.body.classList.add(cls);
- }
-
- function invertBody() {
- document.body.classList.toggle("dark");
- document.body.classList.toggle("light");
- }
-
- if (isAuto()) {
- window.matchMedia('(prefers-color-scheme: dark)').addListener(invertBody);
- }
-
- setTheme();
-
-</script>
-
+<script src="{{ "js/theme-switch.js" | relURL }}"></script>
<script defer src="{{ "js/copy-code.js" | relURL }}"></script>
-</html> \ No newline at end of file
+</html>
diff --git a/static/js/theme-switch.js b/static/js/theme-switch.js
new file mode 100644
index 0000000..a617fda
--- /dev/null
+++ b/static/js/theme-switch.js
@@ -0,0 +1,28 @@
+function isAuto() {
+ return document.body.classList.contains("auto");
+}
+
+function setTheme() {
+ if (!isAuto()) {
+ return
+ }
+
+ document.body.classList.remove("auto");
+ let cls = "light";
+ if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
+ cls = "dark";
+ }
+
+ document.body.classList.add(cls);
+}
+
+function invertBody() {
+ document.body.classList.toggle("dark");
+ document.body.classList.toggle("light");
+}
+
+if (isAuto()) {
+ window.matchMedia('(prefers-color-scheme: dark)').addListener(invertBody);
+}
+
+setTheme();