diff options
Diffstat (limited to 'assets/js/eureka.js')
-rw-r--r-- | assets/js/eureka.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/assets/js/eureka.js b/assets/js/eureka.js index 9fa18a1..4f9778a 100644 --- a/assets/js/eureka.js +++ b/assets/js/eureka.js @@ -147,6 +147,19 @@ function getcolorscheme() { } +{{/* Utterances */}} +{{ $enableUtterances := and (eq .Site.Params.comment.platform "utterances") (eq .Site.Params.comment.utterances.theme "eureka") }} +{{- if $enableUtterances }} +function switchUtterancesTheme(theme) { + const message = { + type: 'set-theme', + theme: theme, + }; + const utterances = document.querySelector('iframe').contentWindow; // try event.source instead + utterances.postMessage(message, 'https://utteranc.es'); +} +{{- end }} + function switchMode(mode) { let icon = '' switch (mode) { @@ -154,11 +167,19 @@ function switchMode(mode) { window.matchMedia("(prefers-color-scheme: dark)").removeEventListener('change', switchDarkMode) icon = 'sun' document.getElementsByTagName('html')[0].classList.remove('dark') + {{/* Utterances */}} + {{- if $enableUtterances }} + switchUtterancesTheme('github-light') + {{- end }} break case 'Dark': window.matchMedia("(prefers-color-scheme: dark)").removeEventListener('change', switchDarkMode) icon = 'moon' document.getElementsByTagName('html')[0].classList.add('dark') + {{/* Utterances */}} + {{- if $enableUtterances }} + switchUtterancesTheme('github-dark') + {{- end }} break case 'Auto': icon = 'adjust' @@ -173,8 +194,16 @@ function switchMode(mode) { function switchDarkMode(e) { if (e.matches) { document.getElementsByTagName('html')[0].classList.add('dark') + {{/* Utterances */}} + {{- if $enableUtterances }} + switchUtterancesTheme('github-dark') + {{- end }} } else { document.getElementsByTagName('html')[0].classList.remove('dark') + {{/* Utterances */}} + {{- if $enableUtterances }} + switchUtterancesTheme('github-light') + {{- end }} } } |