咕了快一个月,今天终于上线了。
因为是静态博客,评论功能一般是依赖第三方服务器实现的。
一开始打算用 Disqus 这些,以前用过多说还可以,只是后来关掉了,Disqus 在用 tumblr 做博客的时候也用过,还不错。
只是后来想了想,反正博客主题都从头搞了,评论系统也搞下呗,于是就这么开始了。
大致上是非常简单的架构,整个博客都是托管在 firebase 的,所以顺带用上了 fb 的授权系统,开发起来很方便,折腾了两个晚上就好了。
最大的麻烦是 firebase 的用户信息是个自定义 object,原型链继承了好几层,Vue 的计算属性检测不到变化,不得不用计时器写了个轮询去刷新相关状态,剩下的就是小意思了。
还有比较蛋疼是界面的设计,没啥艺术细胞,都是看着别人的博客效果东抄西搬的,所幸最后效果感觉还可以,等有空的时候打算继续完善一下相关功能,Vuepress 有些 bug,等一段时间要是正式版还没修那就手动 hack 掉吧。
最后说下评论相关的功能,现在允许匿名评论和登陆评论,登陆支持邮箱+密码和 github 授权登录,邮箱登录的时候如果没有注册过,第一次登陆会自动注册,之后用同样的密码登陆就好了。
至于头像则是优先使用 github 头像,如果没有就是 gavatar 的头像,如果连邮箱都没有(也就是匿名评论),那就直接空白了。
内容的话没啥限制,因为评论是跟账号绑定的,机器人想搞掉 firebase 的授权系统应该有点难度的,就算有人手动刷评论,我删一波账号或者 ban 掉 ip 评论就全部干掉了,firebase 做这个特方便,吹爆。
之后可能还会做一下账户权限分层,譬如说我自己登陆可以直接对评论做管理,这样就不用每次都登陆后台搞了。还有对评论的敏感信息做隐藏,譬如说链接啥的,可以指定只有回复用户和管理员才能看到,还有评论带图啥的,嗯,咕咕咕。