什么是最好的评论系统
我用的第一个评论系统是 Giscus,那时候我用来建站的工具是 Jekyll,主题是 Chirpy。这让我想起来 2025 年年底的那段时间,当时我是一个专门写技术文章的博主,文章的内容无非就是分享一些 Linux 的小技巧,以及自托管为什么好,还有介绍 RIME 如何安装之类的,听着就很土,大部分博主都写过的题材。
回顾往事
我是这样子完成创作流程的——写完一篇文章后,把它上传到博客网站(不如说是代码仓库),打开那台二手 Mac 的录屏功能,对着这个网站页面口吃地读稿。没啥适配剪辑,纯粹就是读稿,你能想象吗?这是 2025 年的创作方式,怕不是 2015 年吧!
由此我就正式开始了我的博客建站之旅,为什么不是博客写作之旅?因为那时候开始我就反复建站,你可以去问一下王科文,他总是在问我网站为什么挂了,因为当时我在建站……好端端的网站为什么要重新建站,答,因为我当时是把建站当玩具玩的,这就是折腾期。从此我开始了不断地换建站引擎,因为不同博客主题支持的评论系统不同,我就体验过那么多评论系统。
评论系统
Giscus

首先是 Giscus,我对这玩意的印象就是简单。他使用 GitHub Discussions 存储评论,这样就有几个好处,你不需要准备服务器,不需要准备数据库,不需要研究什么评论邮件通知,你只需要去 Giscus 的官网,按照那个中文文档,搞搞这、搞搞那,你就配置好博客网站的评论区了。像是回复、表情包、点赞什么的都支持……对当时小小的老子来说,建站搞评论区简直易如反掌。
说了那么多好处了,坏处呢?你无法迁移你的评论,如果你使用基于数据库的评论系统,没准还可以迁移评论,你觉得这个服务商太傻,你还可以换到别的云服务商。而 Giscus,评论就在那里,你无法从 GitHub Discussions 下载数据,然后上传到新的仓库……除非你一开始就为评论专门定了一个仓库,但是我相信大多数人直接绑定到网站仓库了。不仅如此,你给别人回复评论,在这个文章评论过的其它人都会收到,容易造成误会。
不恰当的例子
这个例子可能不太合理,但是它充分说明了问题。那天一堆人来你的博客网站换友链,一百多个吧!你真的仔细审查了对方的网站,上了 100 个友链。有的因为建站才几天,你选择不加;有的建站五年,你加了。于是你有的回复“加了!”,有的回复“抱歉!”。那么在这里换友链的所有人都会收到 100 个邮件,里面是给其它人的无头内容,只有正文。你不知道你是加了还是没被加的那个,这就是为什么我讨厌 Giscus。除非你主动取消订阅,但是那样的话你就无法收到回复了。
我就是那个受害者,我只是因为给一个博主留言添加友链。一个月过去我都快忘了这个博主了,结果有一天他突然“诈尸”,活过来了,给所有人都回复了,我看到那个“加了!”是非常高兴啊!但是我看到其它几个邮件,诶,怎么还有那么多,我点那个页面,哦豁,博主回复给我的是“你内容太少了,不加了!”,难绷。

我经常去王科文的留言板串门,所以留言很合理对吧?别人来这留言,我也能收到。每次评论一来,我的邮箱就叮一下响起来。我以为我的网站有人来看了,点开一看,是王科文的留言板来了新客人,热情瞬间被扑灭了,我还以为有人来看呢!如果我取消订阅呢?下次去王科文那里串门就没法收到回复了啊!所以,你说扯不扯?
Utterances

Utterances 是一个基于 GitHub Issues 的评论系统,和 Giscus 是同一帮人做的,所以相似度高。这个要比 Giscus 早,而且因为后端是 Issues 只能线性评论,不能在线回复别人的评论。感觉 BUG 比 Giscus 要多,有时候容易加载不出评论……好久没用了,忘了有啥 BUG 了。反正只适合只有文章的网站,不适合那种需要留言板的网站。这俩都有个共同点就是访客不友好,因为需要登录 GitHub 账号才能评论。
Gitalk

Gitalk,这个真是太屎了。你去 Gitalk 的官网看看,是不是没有评论,还说加载失败?可是当你开启梯子呢?哈哈,这就有评论了。没错,不开梯子根本没评论。如果你是现在开始建站的,可以离这玩意远一些了,因为它的诞生时间比 Utterances 和 Giscus 还要早,现在基本没人用了。
Waline

接下来轮到重头戏了,Valine 家族(Valine、Twikoo、Waline)是给我印象最好的,真的可以称得上是静态网站最应该使用的评论系统了。不仅用起来正常,还能做到和网站外观适配。虽然配置起来有点复杂,没 Giscus 那么开箱即用,不过折腾了那么久用着没啥问题,反而是件好事。支持匿名评论,也可以填写邮箱再评论,那会使用你的 GitHub 头像。

配置好邮件提醒后,访客回复和你回复访客都能收到消息提醒,这是 1 对 1 的。别的访客如果不订阅的话,根本不会听到,当然也没人那么闲想去订阅。可以自己部署,但不一定需要服务器,只需要云数据库和无服务器函数,比如 Neon 和 Vercel。如果是用云数据库,评论区存储在云服务商的数据库。这是你主动开的实例,将来觉得这个数据库服务商不好了,还能把数据导出来,换到新的服务商,太棒了。
总得来看

Waline 默认支持一些表情包,不是 EMOJI 那种,是真正的流行于社交媒体平台那种贴片表情包,我真是受够 EMOJI 那个黄豆脸了!综合来看,如果求简单,就用 Giscus;如果想要完整、正常的,有后台的评论区系统,就去折腾 Twikoo、Waline。剩下的反而没什么必要去折腾了,除非你是外国人,折腾 Facebook Comments 和 Disquz 那种。
