内容提要
本文介绍了作者在博客中使用的评论系统的解决方案。作者先使用了Disqus,但因为加载慢且有广告而弃用。然后使用了utterances,但觉得不稳定且不方便非技术人员使用。最后选择了Cusdis + Supabase + Vercel的方案,轻量且易于部署。作者详细介绍了如何搭建这个评论系统,并提供了配置文件和环境变量的示例。最后,作者还介绍了如何在博客中添加评论组件,并提到了数据迁移的问题。总体来说,这是一个值得推荐的评论系统解决方案。
延伸解读
从 Disqus 到 Remark42:评论系统的选择逻辑
作者对评论系统的要求包括数据自主、无审查、风格简约。Disqus 因加载慢和广告被弃用;Utterances 依赖 GitHub 登录,对非技术读者不友好,且可能受 API 变动影响;Cusdis 虽轻量,但存在微信浏览器兼容性、无评论订阅、审核提醒不稳定等问题。最终选择 Remark42,因其配置丰富、支持多种登录和通知,且可自部署在 fly.io 免费计划上。
fly.io 部署 Remark42 的关键配置
部署使用 fly.toml 配置文件,指定官方镜像 umputun/remark42:latest,挂载 volume 到 /srv/var 以持久化 SQLite 数据。环境变量通过 prod.env 文件管理,使用 fly secrets import 导入。需配置 REMARK_URL、SECRET、SITE 等基础变量,以及登录方式(匿名、GitHub、Twitter、Telegram、邮箱)和通知方式(Telegram、邮件)的相关参数。自定义域名可在 fly.io 控制台添加证书并修改 REMARK_U
博客集成与数据迁移的注意事项
在 Hugo 博客中,需新建 comments.html 部分模板,定义 Remark42 的嵌入脚本和配置,并在文章模板中引入。配置时注意 host 和 site_id 需与部署一致。迁移方面,作者自行编写 Go 程序将 Cusdis 的 438 条评论转换为 Remark42 格式,相关逻辑可参考其 PR。由于 Cusdis 无导出功能,迁移需一定技术能力。
Q&A
为什么作者放弃了Disqus作为评论系统?
作者放弃Disqus是因为其加载速度慢且免费版本有广告,影响用户体验。
Utterances的使用体验如何?
Utterances被认为不稳定,且需要用户授权GitHub登录,非技术人员使用不便。
作者最终选择了哪个评论系统?
作者最终选择了Cusdis + Supabase + Vercel的方案,认为其轻量且易于部署。
如何在博客中添加评论组件?
在博客的模板文件中引入评论组件的HTML代码,并配置相关的JavaScript脚本即可。
Remark42的优势是什么?
Remark42提供丰富的配置选项,支持多种社交账号登录,并允许匿名评论和邮件订阅回复提醒。
数据迁移的问题是如何解决的?
作者通过编写程序将之前的评论数据格式转换并迁移到Remark42,保留了所有评论。