From d4d30a0c3536657825f8be7f2e1d22dff3294bb1 Mon Sep 17 00:00:00 2001 From: Mivinci <1366723936@qq.com> Date: Wed, 26 Jan 2022 20:39:49 +0800 Subject: [PATCH] authors now can pick a default theme color --- assets/js/theme.js | 13 ++++++------- exampleSite/config.toml | 2 ++ layouts/partials/head.html | 15 ++++++++++++++- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/assets/js/theme.js b/assets/js/theme.js index 6a345f3..d6d13d9 100644 --- a/assets/js/theme.js +++ b/assets/js/theme.js @@ -1,29 +1,28 @@ -const light = '{{ index .Site.Params.switch 1 }}' -const dark = '{{ index .Site.Params.switch 0 }}' +const icon_light = '{{ index .Site.Params.switch 1 }}' +const icon_dark = '{{ index .Site.Params.switch 0 }}' const comment = '{{ .Site.Params.comment }}' -const LIGHT = 'light', DARK = 'dark' +const light = 'light', dark = 'dark' const themeSwitcher = document.getElementById('theme-switcher') // set switcher -themeSwitcher.innerHTML = localStorage.theme === LIGHT ? light : dark +themeSwitcher.innerHTML = localStorage.theme === light ? icon_light : icon_dark themeSwitcher.addEventListener('click', function () { const currentTheme = localStorage.theme - const newTheme = currentTheme === LIGHT ? DARK : LIGHT + const newTheme = currentTheme === light ? dark : light // switch global theme switchMinimaTheme(currentTheme, newTheme) // switch utterance theme if necessary - if (comment === 'utterances') switchUtteranceTheme(`github-${newTheme}`) }); function switchMinimaTheme(oldTheme, newTheme) { const { classList } = document.documentElement - const text = newTheme === LIGHT ? light : dark; + const text = newTheme === light ? icon_light : icon_dark; classList.remove(oldTheme); classList.add(newTheme); diff --git a/exampleSite/config.toml b/exampleSite/config.toml index d37e454..7b0adcc 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -33,6 +33,8 @@ comment = "utterances" timeformat = "Jan 02, 2006" # switch for turning on/off lights. switch = ["🌚", "🌝"] +# default theme. e.g. light, dark, system +defaultTheme = "system" # If set true, date of posts will be shown in the homepage. displayDate = true # If set true, users can select text from your post. diff --git a/layouts/partials/head.html b/layouts/partials/head.html index de99a58..1da50bc 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -29,12 +29,25 @@ +