mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2025-09-15 12:58:48 +08:00
breaking changes: 移除 waline 的 avatar 和 avatar cdn 配置 feat: anchor 不再限制 post 頁開啟,可以在任何頁面開啟 feat: 文章標題支持點擊跳轉到此標題開始閲讀 closed #653 feat: toc可以設置全部展開 closed #709 feat: 增加 新的評論系統 giscus feat: 支持新的評論名寫法,主題會處理評論名字大小寫,舊的會兼容 feat: 友情鏈接列表增加 fetch url 獲取 improvement: 鼠標移到最新評論內容,增加 title 顯示 fix: 修復 rightside 遮擋內容,導致內容無法點擊的 bug fix: 修復 mermaid 在某些頁面(有元素 id 為 mermaid 時) 會無法加載的 bug fix: 修復 搜索框不會自動 focus 的 bug
50 lines
1.5 KiB
Plaintext
50 lines
1.5 KiB
Plaintext
- const { repo, repo_id, category_id, option } = theme.giscus
|
|
- const themes = theme.giscus.theme
|
|
script.
|
|
function loadGiscus () {
|
|
let nowTheme = document.documentElement.getAttribute('data-theme') === 'dark' ? '!{themes.dark}' : '!{themes.light}'
|
|
|
|
const config = Object.assign({
|
|
src: '!{theme.CDN.giscus}',
|
|
'data-repo': '!{repo}',
|
|
'data-repo-id': '!{repo_id}',
|
|
'data-category-id': '!{category_id}',
|
|
'data-mapping': 'pathname',
|
|
'data-theme': nowTheme,
|
|
'data-reactions-enabled': '1',
|
|
crossorigin: 'anonymous',
|
|
async: true
|
|
},!{JSON.stringify(option)})
|
|
|
|
let ele = document.createElement('script')
|
|
for (let key in config) {
|
|
ele.setAttribute(key, config[key])
|
|
}
|
|
document.getElementById('giscus-wrap').insertAdjacentElement('afterbegin',ele)
|
|
}
|
|
|
|
function changeGiscusTheme () {
|
|
const theme = document.documentElement.getAttribute('data-theme') === 'dark' ? '!{themes.dark}' : '!{themes.light}'
|
|
|
|
function sendMessage(message) {
|
|
const iframe = document.querySelector('iframe.giscus-frame');
|
|
if (!iframe) return;
|
|
iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
|
|
}
|
|
|
|
sendMessage({
|
|
setConfig: {
|
|
theme: theme
|
|
}
|
|
});
|
|
}
|
|
|
|
if ('!{theme.comments.use[0]}' === 'Giscus' || !!{theme.comments.lazyload}) {
|
|
if (!{theme.comments.lazyload}) btf.loadComment(document.getElementById('giscus-wrap'), loadGiscus)
|
|
else loadGiscus()
|
|
} else {
|
|
function loadOtherComment () {
|
|
loadGiscus()
|
|
}
|
|
}
|