Twikoo 是一个简洁、安全、免费的静态网站评论系统。

主要特点:免费搭建,部署简单,功能很完善,隐私护安全,通知发邮件,管理有内嵌,总之免费又方便

关于后端部署,大家可以看官网,或者这篇 VitePress 资源汇总 - 使用 Twikoo 评论系统

推荐使用 Vercel 部署 (免费,需配置域名加速访问) 或者 Netlify 部署(免费)。

这篇主要讲 Vitepress 前端如何集成。

预览

集成步骤

1. 安装 twikoo

pnpm install twikoo

2. 初始化 twikoo 组件

<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') {
const twikoo = await import('twikoo')
twikoo.init({
envId: 'https://twikoo.xxx.com/', // 换成你自己配置的域名
el: '#twikoo'
})
}
} // 监听路由刷新评论
watch(route, () => {
initTwikoo()
}) onMounted(() => {
initTwikoo()
})
</script>

3. 组件插入 Layout 插槽

<script setup lang="ts">
import DefaultTheme from 'vitepress/theme'
import Twikoo from './Twikoo' //评论组件
</script> <template>
<DefaultTheme.Layout>
<template #doc-after>
<Twikoo />
</template>
</DefaultTheme.Layout>
</template>

美化样式

1. 配置 twikoo

twikoo 配置面板里的插件页签,选择代码高亮主题 coy,代码复制插件 copyButton

2. 自定义 css

以下代码中使用的部分变量,可利用开发者工具在本站查找或自己配置。

.twikoo {
.el-input-group__append,
.el-input-group__prepend,
.el-textarea__inner {
border: 1px solid #DCDFE6;
box-shadow: none;
}
.el-input-group__prepend {
border-right: none;
}
.el-button--small {
height: auto;
}
.el-textarea > .el-textarea__inner {
min-height: 117px !important;
border-radius: var(--weiz-border-radius);
margin-top: var(--weiz-spacing-2xl);
}
.tk-preview-container {
border-radius: var(--weiz-border-radius);
}
.tk-comments-count {
font-size: var(--weiz-font-size-sm);
color: var(--vp-c-text-2);
}
.tk-nick,
.tk-replies .tk-nick-link {
font-size: var(--weiz-font-size-st);
margin-right: var(--weiz-spacing);
color: var(--weiz-primary-color);
}
.tk-tag {
margin-right: var(--weiz-spacing);
}
.tk-comments-container > .tk-comment {
border: solid 1px #F3F4F6;
border-radius: var(--weiz-card-border-radius);
padding: var(--weiz-spacing-6xl);
margin-top: 0;
margin-bottom: var(--weiz-spacing-6xl);
transition: var(--weiz-transition-3);
&:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
}
.tk-replies-expand > .tk-comment {
border-top: solid 1px #f7f7f7;
padding-top: var(--weiz-spacing-4xl);
}
.tk-content p {
line-height: 1.6;
}
a {
color: var(--weiz-primary-color);
&:hover {
color: var(--weiz-primary-color-light-1);
}
}
// 代码块
div.code-toolbar {
border-radius: var(--weiz-border-radius);
box-shadow: var(--vp-code-block-shadow);
:not(pre)>code[class*=language-], pre[class*=language-] {
background: var(--vp-code-block-bg);
border-radius: var(--weiz-border-radius);
}
pre[class*=language-] {
&::before, &::after {
content: none;
}
&>code {
padding: 0.5em;
border-left: 4px solid var(--weiz-primary-color);
border-radius: var(--weiz-border-radius);
box-shadow: var(--vp-code-block-shadow);
}
}
&>div.toolbar {
z-index: 1;
top: 8px;
right: 8px;
&>.toolbar-item>button {
display: none;
padding: 0 6px;
font-size: 12px;
color: black;
}
}
&:hover>div.toolbar>.toolbar-item>button {
display: block;
}
}
}
.dark .twikoo {
.tk-comments-container > .tk-comment {
border-color: #454545;
&:hover {
box-shadow: 0 4px 12px rgba(255, 255, 255, 0.15);
}
}
.tk-replies-expand > .tk-comment {
border-color: #343434;
}
// 代码块
div.code-toolbar {
pre[class*=language-] {
&>code {
filter: brightness(0.8);
}
}
}
}

3. css 注入主题配置

// 全局样式
import './style/index.scss'

参考文档

Twikoo 官方文档

VitePress 集成 twikoo 参考解决方案

VitePress 集成 Twikoo 评论的更多相关文章

  1. hexo-yilia主题支持twikoo评论系统

    如果图片无法加载,可到 我的博客 中,查看完整文章 yilia-more 已经增加对 twikoo 的支持,可直接使用 代码修改 layout/_partial/post 路径下新建 twikoo.e ...

  2. GitHub-Hexo-Blog 集成Gitalk评论插件

    在本文)末尾可查看先查看效果: 1. 新建New OAuth App 在github中,Settings / Develpoer settings OAuth Apps / New OAuth App ...

  3. 如何通过Gitalk评论插件,5分钟为你的博客快速集成评论功能

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  4. Orchard运用 - 整合Disqus评论插件

    评论对于博客系统那是必须具备的一个功能,Orchard本身也默认实现了评论模块,你可以集成到其他内容,比如博客随笔,不过觉得有点寒碜,样式有点呆板.幸运的是,你可以简单集成第三方评论插件,比如Disq ...

  5. 【干货】2个小时教你hexo博客添加评论、打赏、RSS等功能 (转)

    备注:该教程基于Hexo 2.x版本,目前Hexo是3.x版本,照本教程实现有可能会出现404错误,笔者目前还未找时间去解决,待笔者找时间解决该问题后,再写一篇该问题的解决教程,给各位读者带来困扰,还 ...

  6. 记一次twikoo引发的站点重大事故

    今天我测试私人博客的时候发现twikoo评论发生了错误,显示评论失败:0,我怀疑是我设置的twikoo安全域名有问题,所以我看了整个lssues,找到了我的解决方法! 1.关于配置安全域名后评论消失的 ...

  7. Twikoo私有化部署教程--迁移腾讯云

    目录 备份数据 私有化部署 创建容器 导入数据 重新配置twikoo面板设置 引入前端CDN Nginx https反代http 作者:小牛呼噜噜 | https://xiaoniuhululu.co ...

  8. 我的基于 JamStack 的新博客

    概述 今天心血来潮,介绍一下我的新博客站点 -- https://EWhisper.cn. 我是做基础平台 PaaS 运维和架构的,挺喜欢把工作中学到的新知识写下来.记笔记,突然有一天就抱着「资源共享 ...

  9. gitbook 入门教程之实用插件(新增3个插件)

    插件没有什么逻辑顺序,大家可以按照目录大纲直接定位到感兴趣的插件部分阅读即可. 更多插件正在陆续更新中,敬请期待... 最新更新插件 tbfed-pagefooter 版权页脚插件 gitalk 评论 ...

  10. JFinal教程:JFinal极速开发企业实战百集JFinal视频教程发布

    课程名称:JFinal极速开发企业实战 课程长度:100课时 课程作者:小木(909854136) 课程地址:http://edu.csdn.net/course/detail/1968 官网网址:h ...

随机推荐

  1. ABB机器人本体维修保养方法

    ABB机器人维修保养一般可以参照机器人保养手册里面的描述,这种保养一般分为两种计时方式,一两年内进行一次基础保养或者机器人运行时间不超过10000小时.在对机器人本体进行保养的时候,我们该如何操作呢? ...

  2. Lobe Chat 数据库版安装和使用教程

    DeepSeek 爆火之后官方网站一直繁忙,不少开发者都开始自己动手部署聊天客户端了. 市面上可供选择的套壳 UI 很多,但是论颜值和功能,还得是 Lobe Chat. Lobe Chat 是什么? ...

  3. keycloak~refresh_token的标准化

    内容大纲 refresh_token作用 使用方法 refresh_token规范 keycloak开启refresh_token的限制 refresh_token时的错误汇总 keycloak中re ...

  4. Flink学习(十九) 容错机制

    主要内容: 一致性检查点(checkpoint) 从检查点恢复到状态 Flink检查点算法 保存点(savepoint) 一致性检查点(checkpoint) Flink故障恢复机制的核心,就是应用状 ...

  5. 【答题系统可参考】php 禁止api被跨域调用

    在 PHP 中,防止 API 被跨域调用可以通过设置适当的 HTTP 响应头来实现.跨域资源共享(CORS,Cross-Origin Resource Sharing)机制允许或拒绝来自不同源的请求. ...

  6. C# 之事件及event关键字存在的意义

    总结:event关键字的作用,用于不公开发布器中委托对象实例,对事件委托对象进行保护,禁止外部调用. 1.C#事件举例说明 1 //事件及event关键字存在的意义 2 class Program 3 ...

  7. go的异常抛出

    defer func() { if r := recover(); r != nil { fmt.Println("Recovered:", r) } }() 在任何涉及到数组取值 ...

  8. Qt Oracle往数据库里插入或者更新图片

    文章目录 Qt Oracle往数据库里插入或者更新图片 前言 读取本地图片文件 QPixmap 转 QByteArray 组成SQL,并执行 Qt Oracle往数据库里插入或者更新图片 前言 最近遇 ...

  9. Typora换主题

    效果预览 以下就是我的 Typora 的主题,我平时使用 Vue 主题为主. 操作步骤 具体实现步骤如下: 打开偏好设置 点击外观 打开主题文件夹 粘贴样式文件到文件夹中 关键步骤截图 主题样式还可以 ...

  10. 【Python自动化测试环境管理】tox

    1. tox基本介绍 1.1 tox是什么? tox 是一个用于管理 Python 项目的自动化测试和环境管理工具.它的主要功能是创建虚拟环境并运行项目的测试套件,tox能够让我们在同一个Host上自 ...