This commit is contained in:
2025-11-30 16:46:38 +08:00
parent 32fdaac7db
commit 82cc7b9699

View File

@@ -1,25 +1,52 @@
<div id="tcomment"></div> <div id="tcomment"></div>
<script> <script is:inline>
document.addEventListener('astro:page-load', () => {
(() => { (() => {
const commentsContainer = document.getElementById('tcomment'); const TWIKOO_SRC =
if (commentsContainer) { 'https://cdn.jsdelivr.net/npm/twikoo@1.6.44/dist/twikoo.min.js'
const script = document.createElement('script'); const TARGET_SELECTOR = '#tcomment'
script.src = 'https://cdn.jsdelivr.net/npm/twikoo@1.6.44/dist/twikoo.min.js'; const state = { loading: false, loaded: false }
script.async = true;
script.onload = () => { const initTwikoo = () => {
const initScript = document.createElement('script'); const container = document.querySelector(TARGET_SELECTOR)
initScript.innerHTML = ` if (!container) return
twikoo.init({
const runInit = () => {
if (state.loaded) return
state.loaded = true
window.twikoo?.init({
envId: 'https://twikoo.hk.nvme0n1p.dev/', envId: 'https://twikoo.hk.nvme0n1p.dev/',
el: '#tcomment', el: TARGET_SELECTOR,
}); })
`;
document.body.appendChild(initScript);
};
document.body.appendChild(script);
} }
})();
}); if (window.twikoo) {
runInit()
return
}
if (state.loading) return
state.loading = true
const script = document.createElement('script')
script.src = TWIKOO_SRC
script.async = true
script.onload = runInit
script.onerror = (err) => {
console.error('Failed to load Twikoo:', err)
}
document.head.appendChild(script)
}
const onLoad = () => initTwikoo()
if (document.readyState === 'complete') {
onLoad()
} else {
window.addEventListener('load', onLoad, { once: true })
}
document.addEventListener('astro:page-load', onLoad)
document.addEventListener('astro:after-swap', onLoad)
})()
</script> </script>