logo of Shuibaco

更换评论系统——从Disqus到Waline

/ 3,139字 / 15,100阅 / 0评

盼啊盼,终于又盼来了周五,我的自由日。自从给个人网站想好了新设计之后我的大脑就无时无刻不为之牵挂,挤出了所有时间也只有平日晚上的半小时和与懒觉斗争的清晨。有一说一,初秋的日出很美,碰上阴天坐在窗边也很凉快。因为时间少任务重,我调整了下班后的健身计划,即便如此还是焦头烂额,我想该调整的不是时间安排了,而是我的心理预期。那么就以此篇博文做为节点,收个阶段性的尾,再调整步伐重新出发吧!

前文提要

明确要求

如题,我终于换掉了Disqus。如所见,Waline仍在调试中,long long to-do list。但起码,成功跑起来了。素人小白操着技术大牛的心,我昨儿甚至在搜索框里敲出了「how to build a comment system」以及「how to build a static generator」,也许宇宙的尽头是程序员。不过话说回来,于我而言还是太难了,更重要的是我志不在此。罢了罢了,还是好好享受现代生活和互联网(和程序员朋友)的便利吧!

经历了许多波折,我推敲琢磨用力总结出了自己对于评论系统的要求(排名无先后哈)——

又因为狭义上的好读写爱上了JSON格式,希望评论能以时间线排列,以年份为分割,每年一个文件,清新爽洁不紧绷(老梗again)。

我对于博文的储存及展示的最理想状态已经依靠FarBox实现了——一篇文章一个.md文件,以年份文件夹归档,放入Dropbox自动触发同步。也因此后来认真考虑过的其他博客实现方式都不如前者,所以我称之为「最理想」——不是我乱加title,是它扛住了所有考验。

勇于尝试

得益于曾经的细致调研,我很快选出了几个想要尝试的对象。在不断测试、比对的过程中,我认清了自己的需求,也把Disqus列入考察对象进行了平等的评估。

Disqus

留在Disqus的优点还是不少的——不需要大动干戈地搬评论;易迁徙并适配不同博客平台;部署简单;数据能够备份(你说它能也算能吧)。但与此同时,它基本没法修改样式(这点从某些方面来看可能算优点),也没有访客网址,除非此人写在了主页介绍里,我也要费劲跳转好几个页面才能寻到。当然,最大的劣势可能要数不符合国情了。原本我拿它当天然过滤器倒也坦然,后来还是因为我对外观有所要求(原谅身为设计师的执着),所以心态逐渐扭曲。那就干脆趁着大肆翻修个人网站之际,把Disqus换掉吧!

Twikoo

想换掉Disqus的初始,我最先考虑的就是Twikoo和Waline,但我忘了后来是什么因素让我决定使用Waline,不过也毫无关系,因为当我正式开干的时候发现,Twikoo的部署似乎更简单,于是我先对Twikoo下了手。整个过程并不顺利,最后我们也没能走到一起。我觉得我跟Twikoo的关系就好像初恋一般,它教会了我什么是自部署评论系统,但最后我却因为自己的不成熟而选择了放弃。

那时候,我顺利注册了Mongodb和Vercel,但在Vercel上克隆仓库出了问题——

An unexpected error occured. Our team has already been notified and are working to resolve the issue, please try again shortly.

我谷了歌、提了issue、问了朋友都没能解决,遂试了试Vercel上的其他template,同样原因的失败。看来是我的Github账号有点问题,模模糊糊隐隐约约觉得可能有关personal access token,但一无法确定二不知解决方法,遂放置。既然能fork仓库,我干脆从自己的账号导入,终于配置成功。设置好前端,开始各种初始配置,彼时我已经疲累至极,又没设置好语言,一坨坨我本就看不懂的英文在我眼里仿佛乱码,在这种极端环境中我努力配置邮件发送,果不其然失败了。我突然觉得好空虚,看着Twikoo的UI陷入了沉思。

在豆哥喊吃饭的声音中,我删除干净了这几天的所有努力——除了因为颜值而留下的Vercel,我笑称此次努力为「Twikoo一日游」。拜拜Twikoo,拜拜Mongodb!话说删Mongodb也费了好大劲,层层嵌套。当我把这次失败传达给豆哥时,他只简短地说了两个字:忒酷。

Waline

快速上手文档里的LeanCloud因为一些传闻使我对它敬而远之,所以尝试自部署伊始我毅然决然地选择了Twikoo。不过后来也算被逼无奈吧,我还是注册了LeanCloud,但也意料之中地又在Vercel处摔了一跤。当我处变不惊地爬起来fork进自己仓库并导入但仍旧失败后,我没法淡定了。好在Waline提供了非常多种的部署方式,行吧,我一个个试!

Railway要钱(直白),其他没听过,那就试试Netlify。结果它说我账号异常,要我绑定Strip支付验证本人?半夜三更,你说我异常,我还觉得你异常呢!可能我之前研究Eleventy的时候注册过,太久没活动了导致账号被锁?

我又转到Deta Space,一个字,香!一键部署的快落、自带数据库的惬意都太适合我本人了!而且竟然还是免费的(可能暂时吧?)。总之经过几天的努力和奋斗,我大致确定Waline可以被调试成我需要的样子,然后便安安心心快快乐乐地删除了LeanCloud和Vercel,Netlify登不上所以也删不了,let it go吧,我累了。

Cusdis

做为颜值最抗打、功能最简约的Cusdis原是本命,奈何没有网址输入框,没法回访。

我的需求几乎全中,除了最后一条没法输入网址。没办法,我是真的很喜欢回访,辗转反侧还是没法妥协。——摘自「第三方评论之2023年版」

不过试试还是无妨的,毕竟是唯一提供官方托管的,简直贴心,部署体验最佳没有之一!(虽然我自己在html转jade的时候踩了坑,刚开始没调出评论框非常崩溃。)在测试评论回复邮件提醒时我赫然发现,我原本以为的评论提醒是只提醒网站所有者,但是被回复的人是收不到回复提醒的。作者出于安全性考量没有添加此功能,我表示十分理解,与此同时当然也有些遗憾。

另一方面,我并没有找到Disqus的导入口,因为官方托管的关系,也没法备份数据。也许自部署能够解决一部分问题,但我选择Cusdis的初心就是能够使用托管服务,所以最终我还是挥泪告别了它。

FarBox原生

在思考数据备份形式的时候,看着从Disqus和Waline导出的评论数据,我仿佛又一次站在了十年前我决定搬入FarBox并手动修改所有博文时的那个当口。我不怕麻烦,只要做这件事是一劳永逸的。十年前,我做对了选择;而当下,我仍在不停动摇。

评论不似文章,它有个交互的过程,你来我往而不是甩在你面前。但静态可读写文件可能是最一劳永逸的,一种被锁死的安全感。既然如此,以.csv为存储形式的FarBox原生评论又未尝不可,还有all-in-one的加持。关于历史遗留的「无法从云端传回评论.csv文件」以及「收不到评论回复邮件通知」问题,我给Hepo发了邮件,意料之外的是收到了令人心安的回复,意料之内的是以我现在的情况这两个问题都很难得到解决。我想过的最极端的办法是,在后台将所有评论都手动复制进本地文件,再同步上去覆盖。但因为我收不到新评论通知,而评论文件又是以文章为单位归档,所以我无从得知哪篇文章上有了新评论,也因此很有可能会覆盖掉旧文章上的新评论,这当然是我极不愿意看到的。

另一方面,每篇文章不一定都有评论,文章本身有自己的发布时间,按照时间排列无可厚非,但与之绑定的评论却有可能来自遥远的未来,所以将评论也按照文章时间排列似乎不够理想,所以我还是倾向于按照评论发布的时间进行排列。当然,我非常理解Hepo开发的初衷,一篇文章是一个文件夹,里面包含着所有的图片(如果有)、一篇文本和一个评论列表(如果有),一家人就是要整整齐齐。但我因为文章数量太多(话痨),带图的文章也不总有,所以以年份为单位归档会更科学。也因此,我单独建了一个图床放置所有多媒体文件——image.jpg audio.mp3 video.mp4,你看,处女座整理癖如我甚至规定了文件格式。当然,我给图床绑定了自定义域名,就是为了达到如同放置在同一个文件夹中的效果,应该说效果更好吧,只要域名不变,文章的图片链接就永远不会失效。所以,在评论系统上,我最终倾向于分而治之,虽然我早就这么做了,但这次折腾思考后还是得出了同样的结论。

胡思乱想

写到这儿,我感觉我的理想博客系统呼之欲出了——

得益于前人种树,我的博客能够无限接近理想状态。之后的调试我也会按照这个基准进行,其实主要就是规整评论,毕竟文章和多媒体都已经“板上钉钉”了。

在考虑要不要用原生评论的时候,我又一次开始思考博客的未来,无非老生常谈——我是不是要一直留在FarBox,我还有别处可去吗?有不被束缚不被左右的真正的写博自由吗?有许多博友曾劝我去更多人所在Hugo圈,也许生命周期能够长一些。我不是没有犹豫过,甚至犹豫过很多次,最近因为在折腾评论,甚至都想试试Typecho。但不论是Hugo、Typecho还是FarBox,不都是“别人”创造的吗。真正的自由只能来自于自己,用能力换取自由。既然如此,我就安安心心在自己有限的能力范围能尽可能地实现自由吧,干就完了!

21,461°
事与愿违(尤克里里)
Comments
Write a Comment
迁徙专用,请勿评论