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>
<script>
document.addEventListener('astro:page-load', () => {
(()=>{
const commentsContainer = document.getElementById('tcomment');
if (commentsContainer) {
const script = document.createElement('script');
script.src = 'https://cdn.jsdelivr.net/npm/twikoo@1.6.44/dist/twikoo.min.js';
script.async = true;
script.onload = () => {
const initScript = document.createElement('script');
initScript.innerHTML = `
twikoo.init({
envId: 'https://twikoo.hk.nvme0n1p.dev/',
el: '#tcomment',
});
`;
document.body.appendChild(initScript);
};
document.body.appendChild(script);
}
})();
});
</script>
<script is:inline>
(() => {
const TWIKOO_SRC =
'https://cdn.jsdelivr.net/npm/twikoo@1.6.44/dist/twikoo.min.js'
const TARGET_SELECTOR = '#tcomment'
const state = { loading: false, loaded: false }
const initTwikoo = () => {
const container = document.querySelector(TARGET_SELECTOR)
if (!container) return
const runInit = () => {
if (state.loaded) return
state.loaded = true
window.twikoo?.init({
envId: 'https://twikoo.hk.nvme0n1p.dev/',
el: TARGET_SELECTOR,
})
}
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>