Skip to content

Commit 7304308

Browse files
committed
(giscus) supported toggling dark/light themes
1 parent e9ea463 commit 7304308

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

docs/assets/js/giscus.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,34 @@
11
const giscusPlugin = (hook, vm) => {
22
hook.ready(() => {
3+
// Move giscus container to content area.
34
const content = document.querySelector('.content')
45
const giscusContainer = document.querySelector(`.giscus`)
56
if (content && giscusContainer) {
67
content.appendChild(giscusContainer)
78
}
9+
// Add theme toggle event.
10+
const themeToggle = document.getElementById('docsify-darklight-theme')
11+
if (themeToggle) {
12+
themeToggle.addEventListener('click', () => toggleGiscusTheme(themeToggle))
13+
toggleGiscusTheme(themeToggle)
14+
}
815
})
916
}
1017

18+
const toggleGiscusTheme = (toggle) => {
19+
const iframe = document.querySelector('.giscus-frame')
20+
if (iframe) {
21+
// Check if dark mode is enabled.
22+
const isDark = toggle.getAttribute('data-link-title') === 'dark'
23+
const theme = isDark ? 'dark_dimmed' : 'light'
24+
// Replace `theme` parameter in iframe src.
25+
const src = iframe.getAttribute('src')
26+
const newSrc = src.replace(
27+
/theme=[^&]*/,
28+
`theme=${theme}`
29+
)
30+
iframe.setAttribute('src', newSrc)
31+
}
32+
}
33+
1134
$docsify.plugins.push(giscusPlugin)

docs/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
data-reactions-enabled="1"
7373
data-emit-metadata="0"
7474
data-input-position="bottom"
75-
data-theme="preferred_color_scheme"
75+
data-theme="light"
7676
data-lang="zh-CN"
7777
data-loading="lazy"
7878
crossorigin="anonymous"

0 commit comments

Comments
 (0)