Skip to content

Commit e6bcb81

Browse files
committed
Updated Giscus example to support theme change without reload
1 parent 6816aa8 commit e6bcb81

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

docs/setup/adding-a-comment-system.md

+11-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,17 @@ calling the `super()` function at the beginning of the block:
7474
document.addEventListener("DOMContentLoaded", function() {
7575
var ref = document.querySelector("[data-md-component=palette]")
7676
ref.addEventListener("change", function() {
77-
location.reload()
77+
var palette = __md_get("__palette")
78+
if (palette && typeof palette.color === "object") {
79+
var theme = palette.color.scheme === "slate" ? "dark" : "light"
80+
81+
/* Instruct Giscus to change theme */
82+
var frame = document.querySelector(".giscus-frame")
83+
frame.contentWindow.postMessage(
84+
{ giscus: { setConfig: { theme } } },
85+
"https://giscus.app"
86+
)
87+
}
7888
})
7989
})
8090
</script>

material/overrides/blog.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
{{ super() }}
77
<h2 id="__comments">{{ lang.t("meta.comments") }}</h2>
88
<script src="https://giscus.app/client.js" data-repo="squidfunk/mkdocs-material" data-repo-id="MDEwOlJlcG9zaXRvcnk1MDYxNzQyOA==" data-category="_" data-category-id="DIC_kwDOAwRcVM4CAtJY" data-mapping="pathname" data-reactions-enabled="1" data-emit-metadata="1" data-theme="light" data-lang="en" crossorigin="anonymous" async></script>
9-
<script>var giscus,palette=__md_get("__palette");palette&&"object"==typeof palette.color&&"slate"===palette.color.scheme&&(giscus=document.querySelector("script[src*=giscus]")).setAttribute("data-theme","dark"),document.addEventListener("DOMContentLoaded",function(){document.querySelector("[data-md-component=palette]").addEventListener("change",function(){location.reload()})})</script>
9+
<script>var giscus,palette=__md_get("__palette");palette&&"object"==typeof palette.color&&"slate"===palette.color.scheme&&(giscus=document.querySelector("script[src*=giscus]")).setAttribute("data-theme","dark"),document.addEventListener("DOMContentLoaded",function(){document.querySelector("[data-md-component=palette]").addEventListener("change",function(){var e=__md_get("__palette");e&&"object"==typeof e.color&&(e="slate"===e.color.scheme?"dark":"light",document.querySelector(".giscus-frame").contentWindow.postMessage({giscus:{setConfig:{theme:e}}},"https://giscus.app"))})})</script>
1010
{% endblock %}

src/overrides/blog.html

+11-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,17 @@ <h2 id="__comments">{{ lang.t("meta.comments") }}</h2>
5757
document.addEventListener("DOMContentLoaded", function() {
5858
var ref = document.querySelector("[data-md-component=palette]")
5959
ref.addEventListener("change", function() {
60-
location.reload()
60+
var palette = __md_get("__palette")
61+
if (palette && typeof palette.color === "object") {
62+
var theme = palette.color.scheme === "slate" ? "dark" : "light"
63+
64+
/* Instruct Giscus to change theme */
65+
var frame = document.querySelector(".giscus-frame")
66+
frame.contentWindow.postMessage(
67+
{ giscus: { setConfig: { theme } } },
68+
"https://giscus.app"
69+
)
70+
}
6171
})
6272
})
6373
</script>

0 commit comments

Comments
 (0)