diff --git a/_includes/disqus.html b/_includes/disqus.html index e3b83a013..5879ac6bf 100644 --- a/_includes/disqus.html +++ b/_includes/disqus.html @@ -29,5 +29,26 @@ } }, { threshold: [0] }); - disqus_observer.observe(document.querySelector("#disqus_thread")); + disqus_observer.observe(document.querySelector('#disqus_thread')); + + /* Auto switch theme */ + + function reloadDisqus() { + /* Disqus hasn't been loaded */ + if (typeof DISQUS === "undefined") { + return; + } + + if (document.readyState == 'complete') { + DISQUS.reset({ reload: true, config: disqus_config }); + } + } + + const modeToggle = document.querySelector(".mode-toggle"); + + if (modeToggle !== null) { + modeToggle.addEventListener('click', reloadDisqus); + window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', reloadDisqus); + } +