VitePress集成Twikoo评论

Scroll down
距离上次更新已经 12 天了, 文章内容可能已经过时。

前置:部署Twikoo云端

1.安装Twikoo

shell
pnpm install twikoo

2.初始化Twikoo

typescript
<template>
  <div id="twikoo"></div>
</template>

<script setup lang="ts">
import { onMounted, watch } from 'vue'
import { useRoute } from 'vitepress'

const route = useRoute()

const initTwikoo = async () => {
  // 判断是否在浏览器环境中
  if (typeof window !== 'undefined') {
    try {
      const twikoo = await import('twikoo')
      console.log('Twikoo loaded successfully')
      await twikoo.init({
        envId: 'https://tw.xxx.com/', // 请替换为您自己的Twikoo服务地址
        el: '#twikoo'
      })
      console.log('Twikoo initialized successfully')
    } catch (err) {
      console.error('Twikoo initialization failed:', err)
    }
  }
}

// 监听路由刷新评论
watch(route, () => {
  initTwikoo()
})

// 组件挂载时初始化
onMounted(() => {
  initTwikoo()
})
</script>

3.插入layout插槽

typescript
<script setup lang="ts">
import ThemeAsync from 'vitepress-theme-async'//这里是我用的主题,默认主题为import DefaultTheme from 'vitepress/theme'
import Twikoo from './Twikoo.vue' //评论组件

const { Layout } = ThemeAsync
</script>

<template>
  <Layout>
    <template #post-after> //同上,默认为#doc-after
      <div class="post-after">
        <Twikoo></Twikoo>
      </div>
    </template>
    <template #links-after>
      <div class="post-after">
        <Twikoo></Twikoo>
      </div>
    </template>
    
  </Layout>
</template>

4.导入布局

typescript
import ThemeAsync from 'vitepress-theme-async';
import Layout from './Layout.vue'
export default {
    ...ThemeAsync,
    Layout,
}
  • 本文作者:cuirx
  • 本文链接:
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
其他文章
cover
VitePress美化代码块
  • 25-07-29
  • 09:32
  • 随记
cover
三角洲ini优化步骤
  • 25-07-29
  • 05:07
  • 游戏