summaryrefslogtreecommitdiff
path: root/_includes/extensions/theme-toggle.html
diff options
context:
space:
mode:
Diffstat (limited to '_includes/extensions/theme-toggle.html')
-rw-r--r--_includes/extensions/theme-toggle.html29
1 files changed, 21 insertions, 8 deletions
diff --git a/_includes/extensions/theme-toggle.html b/_includes/extensions/theme-toggle.html
index 7976e21..d426f65 100644
--- a/_includes/extensions/theme-toggle.html
+++ b/_includes/extensions/theme-toggle.html
@@ -9,6 +9,10 @@
</label>
</div>
+{%- assign name = 'night_mode' -%}
+{%- include functions.html func='get_value' default='auto' -%}
+{%- assign night_mode = return -%}
+
<script>
(function() {
var sw = document.getElementById('theme-switch');
@@ -24,7 +28,7 @@
try {
data = JSON.parse(data ? data : '');
} catch(e) {
- data = { nightShift: null, autoToggleAt: 0 };
+ data = { nightShift: false, autoToggleAt: 0 };
saveThemeData(data);
}
return data;
@@ -72,19 +76,28 @@
};
}
- var data = autoThemeToggle();
-
// Listen the theme toggle event
sw.addEventListener('change', function(event) {
handleThemeToggle(event.target.checked);
});
- // Toggle theme by local setting
- if (data.toggleAt > themeData.autoToggleAt) {
- themeData.autoToggleAt = data.toggleAt;
- handleThemeToggle(data.nightShift);
- } else {
+ var nightModeOption = '{{ night_mode }}';
+ nightModeOption = nightModeOption.toLowerCase();
+
+ if (nightModeOption == 'auto') {
+ var data = autoThemeToggle();
+
+ // Toggle theme by local setting
+ if (data.toggleAt > themeData.autoToggleAt) {
+ themeData.autoToggleAt = data.toggleAt;
+ handleThemeToggle(data.nightShift);
+ } else {
+ handleThemeToggle(themeData.nightShift);
+ }
+ } else if (nightModeOption == 'mannual') {
handleThemeToggle(themeData.nightShift);
+ } else {
+ handleThemeToggle(nightModeOption == 'on');
}
})();
</script>