评论系统 Twikoo 好多 bug!被迫换成了 Waline

1237 字
6 分钟
评论系统 Twikoo 好多 bug!被迫换成了 Waline
评论系统 Twikoo 好多 bug!被迫换成了 Waline

之前我博客的评论区一直用的是 Twikoo,数据放在 MongoDB Atlas 的免费云数据库里。

刚搭好时用着还行,但时间一长,小毛病就慢慢多起来了。免费的数据库经常会有冷启动,有时候点开文章,底下的评论区要转好几秒才出来;而且邮件提醒时不时就漏发,好几次别人在博客留了言,我过了好久才偶然看到。

既然我现在博客很多东西都在往 Cloudflare 上迁,我就想着干脆把评论系统也彻底换了。选了一圈,决定换成社区里基于 Cloudflare Workers + D1(SQLite)改造的 Waline。不用买服务器,直接白嫖 Cloudflare 的免费算力和分布式数据库,速度快,数据也都在自己手里。

本以为换个现成的系统挺快,结果实际迁移下来,还是折腾了大半夜。

难题一:数据搬家,旧评论一个都不能丢#

换评论系统,首要任务肯定是要保住以前的留言。

博客留言板和文章底下积攒了几十条朋友们的真实留言,肯定不能直接丢掉。但把数据从 Twikoo 导出来后才发现,两边的格式完全对不上。Twikoo 导出来的是一堆文档数据,而 Waline 这边要求的是标准的表格结构,谁回复了谁都必须对好。

没办法,只能专门写了个小脚本去解析、转换格式,理清以前评论的楼中楼层级关系,最后批量写进 Cloudflare D1。好在 30 多条历史评论一条没漏,完好无损地搬进了新家。

难题二:头像全成灰色的了?#

刚把新系统部署上去,打开前台一看,我直接愣住了:除了我自己有头像,其他所有留言的小伙伴,头像全都是灰色的默认图标。

查了一下发现,Waline 默认是走国外的 Gravatar 抓头像的。但国内大家写博客留言,留的基本上都是 QQ 邮箱,大部分人根本没有注册过 Gravatar,自然就只剩一张灰色默认图。

既然现在的后端代码完全跑在自己的 Worker 上,我就直接在后台加了一段判断:只要识别到是 QQ 邮箱,就直接调腾讯官方接口抓出高清 QQ 头像。改完一刷新,大家的头像瞬间全亮回来了,顺眼多了。

难题三:这玩意居然默认不能发邮件?#

本以为换完之后配个邮箱账号就能收到通知,结果翻了源码才发现:这个 Worker 版本的 Waline,邮件通知功能压根还没做,官方文档里写着还是个“待办”状态。

评论系统收不到邮件提醒,那肯定不行,我总不可能天天自己登后台刷新看有没有新留言。

但在 Cloudflare Workers 这种无服务器环境里,很多现成的发信工具包根本塞不进去。折腾了一圈,最后利用 Cloudflare 底层的原生网络能力,直接连上我自己的域名邮箱(Purelymail)打通了发信流程。现在不管是新留言还是博主回复,两三秒内通知邮件就能稳稳送达。

难题四:时间错乱与发完不刷新#

核心功能跑通后,在前台实测又抓到了两个影响体验的小 bug:

  1. 新评论插在半山腰:发了条新评论测试,刷新后它居然没排在最顶上,而是插在了历史评论的中间。后来发现是旧数据和新数据的时间格式不统一,导致系统排错了先后顺序,把时间格式规范化之后就修好了。
  2. 发送后页面不自动刷新:在前台发完评论提示成功,但列表里并没有立刻弹出来,必须手动按 F5 刷新才能看到。查了一下发现是前端客户端对接口返回的数据结构很挑剔,稍微调整了一下后端的返回字段,现在只要点击发送,新评论就能立刻顺滑地出现在最上方了。

总结#

虽然中途排查各种小问题花了些时间,但改完之后的整体体验确实提升了一大截:

  • 不用再忍受第三方免费数据库的冷启动延迟;
  • 全站都在 Cloudflare 边缘网络上,打开非常顺畅;
  • QQ 头像自动抓取,邮件通知秒级到达,发送即时上屏。

现在留言板和文章底部的评论区已经全面换成新的 Waline 了。大家有空可以在底下留个言测试一下,看看自己的头像有没有正常展示,顺便也可以体验一下邮件回复的速度 OωO!

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
评论系统 Twikoo 好多 bug!被迫换成了 Waline
https://lengxiqwq.com/posts/评论系统-twikoo-好多-bug被迫换成了-waline/
作者
冷汐OωO
发布于
2026-10-23
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
冷汐OωO
你好谢谢小笼包再见
me@lengxiqwq.com
3197635836
公告
最近还在折腾 Live Photo Box,一个实况照片合成、拆分、转换和修复的桌面端工具箱。 这段时间主要在把一部分底层媒体与协议处理逐步迁移到 C++ Native 核心,希望批量处理更加稳定,新版本预计一个月左右和大家见面 OωO!
分类
标签
最新动态
站点统计
项目
4
动态
17
文章
6
相册
9
总字数
15,124
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录