60 lines
1.6 KiB
Plaintext
60 lines
1.6 KiB
Plaintext
- const { use, lazyload } = theme.comments
|
|
- const { appId, appKey, avatar, serverURLs, visitor, option } = theme.valine
|
|
|
|
- let emojiMaps = '""'
|
|
if site.data.valine
|
|
- emojiMaps = JSON.stringify(site.data.valine)
|
|
|
|
script.
|
|
(() => {
|
|
const isShuoshuo = GLOBAL_CONFIG_SITE.pageType === 'shuoshuo'
|
|
const option = !{JSON.stringify(option)}
|
|
|
|
const initValine = (el, path) => {
|
|
if (isShuoshuo) {
|
|
window.shuoshuoComment.destroyValine = () => {
|
|
if (el.children.length) {
|
|
el.innerHTML = ''
|
|
el.classList.add('no-comment')
|
|
}
|
|
}
|
|
}
|
|
|
|
const valineConfig = {
|
|
el: '#vcomment',
|
|
appId: '#{appId}',
|
|
appKey: '#{appKey}',
|
|
avatar: '#{avatar}',
|
|
serverURLs: '#{serverURLs}',
|
|
emojiMaps: !{emojiMaps},
|
|
visitor: #{visitor},
|
|
...option,
|
|
path: isShuoshuo ? path : (option && option.path) || window.location.pathname
|
|
}
|
|
|
|
new Valine(valineConfig)
|
|
}
|
|
|
|
const loadValine = async (el, path) => {
|
|
if (typeof Valine === 'function') {
|
|
initValine(el, path)
|
|
} else {
|
|
await btf.getScript('!{url_for(theme.asset.valine)}')
|
|
initValine(el, path)
|
|
}
|
|
}
|
|
|
|
if (isShuoshuo) {
|
|
'!{use[0]}' === 'Valine'
|
|
? window.shuoshuoComment = { loadComment: loadValine }
|
|
: window.loadOtherComment = loadValine
|
|
return
|
|
}
|
|
|
|
if ('!{use[0]}' === 'Valine' || !!{lazyload}) {
|
|
if (!{lazyload}) btf.loadComment(document.getElementById('vcomment'),loadValine)
|
|
else setTimeout(loadValine, 0)
|
|
} else {
|
|
window.loadOtherComment = loadValine
|
|
}
|
|
})() |