评论系统 (Twikoo)
ModernDuang 集成 Twikoo 作为评论系统。Twikoo 是一个简洁、安全、无后端(基于云函数)的静态站点评论系统,非常适合 Hexo 博客。
为什么选择 Twikoo?
- 免费部署 — 基于腾讯云 CloudBase 或其他云服务商的免费额度
- 隐私友好 — 评论数据存储在你自己的云环境中
- 反垃圾 — 内置 Akismet 反垃圾评论
- 通知支持 — 支持邮件、微信等多种通知方式
- 表情包 — 支持 OwO 表情包集成
获取 Twikoo 环境 ID
在配置 ModernDuang 之前,你需要先部署 Twikoo 并获取 envId。以下为腾讯云 CloudBase 部署步骤(详细教程请参考 Twikoo 官方文档):
步骤一:开通 CloudBase
- 访问 腾讯云 CloudBase 并登录
- 创建一个云开发环境,选择按量计费(有免费额度)
- 记下你的环境 ID(格式类似
your-env-xxxxx)
步骤二:部署 Twikoo
在 CloudBase 控制台中:
- 进入「云函数」→「函数服务」
- 新建云函数,选择「HTTP 函数」
- 函数名称任意(如
twikoo) - 运行环境选择
Nodejs 16.13(或更高版本) - 在函数代码中部署 Twikoo 服务端代码(参考 Twikoo 文档)
- 部署完成后,获取云函数的触发路径作为
envId
提示: Twikoo 也支持 Vercel、Netlify、Railway 等平台部署。部署完成后你会获得一个 URL,该 URL 即为你需要填入的
envId。
配置评论
在 _config.modernduang.yml 的 comments 字段下配置:
区域选项
region 为你部署 CloudBase 时选择的地域。常用值:
提示: 如果你不使用腾讯云(如使用 Vercel 部署),
region字段可忽略或留空。
空 envId 时的行为
如果 envId 为空字符串(默认),评论系统不会初始化,页面也不会加载 Twikoo 的 JavaScript SDK。这样在没有配置评论的情况下不会产生多余的网络请求。
禁用单篇文章评论
在某些文章中你可能不希望显示评论区(如关于页面、友情链接页面等)。在文章的 Front Matter 中设置 comment: false 即可:
同理,设置 comment: true 可以强制启用(当全局评论关闭时)。
评论区域位置
评论区域显示在文章内容末尾、上一篇/下一篇导航链接之前:
完整配置示例
更新 Twikoo 前端版本
主题在 layout/partials/comments/twikoo.ejs 中硬编码了 Twikoo 的 CDN 版本号。如需更新到新版本:
- 打开
themes/modernduang/layout/partials/comments/twikoo.ejs - 找到
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/twikoo.all.min.js" ...> - 将版本号
1.7.13替换为最新版本号
注意: 直接修改主题文件会在更新主题时丢失。如需持久化,建议将文件复制到站点的
layout/partials/comments/目录下再修改,Hexo 会自动优先使用站点目录中的模板。
常见问题
评论框不显示?
- 检查
envId是否正确填写(确保是完整的 URL) - 在浏览器开发者工具的 Network 面板中查看 Twikoo SDK 是否加载成功
- 确认文章 Front Matter 中没有设置
comment: false - 检查 CloudBase 云函数是否正常运行
如何管理评论?
登录你的 CloudBase 控制台,在「数据库」中查看 twikoo 集合,可以手动管理评论内容。
如何开启评论通知?
参考 Twikoo 文档中的「邮件通知」和「微信通知」配置章节:https://twikoo.js.org/
