首次编辑:2024/8/13/16:03
最后编辑:2024/8/13/22:20
对于动态网页的评论系统,有能力的完全可以自己手搓,因为动态网站必须拥有服务器,有了服务器就能够处理网络请求,那么评论只不过就是一个携带文本的请求罢了。
但是对于不具备网络请求能力的静态网站,评论系统的搭建就得另辟蹊径了。
有一种很直接的思路,既然静态网站自己没有服务器,那就用别人现成的服务器来处理不就行了。这确实就是评论系统所做的,它会帮助你存储并管理你的评论信息。
我原本的设想是让用户能够通过发送邮件的方式来实现,这实际上应该就是让邮件服务提供商来帮助用户发送评论,这种方式的缺点在于,需要手动将评论内容从邮件复制到自己的文章当中,而且用户在点击发送之后,网页中并不会立即显现评论内容,这可能会让用户感到困惑。当然也可以使用js把内容的评论内容立即显示出来,但这毕竟只是js的小把戏,在页面刷新之后,评论的内容还是会消失不见。
可以实现这种设想的,我目前只发现了一种利用html的a标签实现的方式:
<a href="mailto:code_pigeon@163.com?cc=测试">发送信息</a>
点击这个a
标签之后,浏览器会打开操作系统默认的电子邮件客户端软件,在windows下就是outlook,但我从来没见过国内的谁用这个,我自己也不用,所以果断放弃了这一方案。
于是就只剩下另一种方案了——利用别人搭好的现成评论系统。毕竟自己实现还是得用到服务器,假如有了服务器,我还做什么静态网页呢,直接做动态网页不就行了。
匿名评论也是我选择评论系统的一大考虑,因为作为游客很少有愿意登录的,至少我访问别人的网站的时候是这样。
市面上现存的评论系统我觉得大概可以分为3类:
自托管型(self-hosted):这种类型的评论系统需要站长自己提供服务器。嗯……它就是帮你做了个评论的管理系统,但这个系统是跑在你自己的服务器上的。
第三方托管型(3rd-party hosted):不仅帮你做了评论的管理系统,同时还帮你存储数据。
github型:这种类型的直接使用github的discussions来实现和存储评论。
上面列举的这些几乎都是免费的(一般都是提供免费和专业两种版本),而且大多都支持匿名评论。
除了这些,还可以参考一下著名的博客构建系统Hugo官网所推荐的评论系统。
我参考了很多人的博客,Valine1似乎不算是一个特别热门的选择,我是在看remarkbox的博客2时发现它的。
Valine和别的很多评论系统一样使用js编写,但不同的是它自己不提供云存储,而是使用了LeanCloud作为云存储。所以Valine应该就是对LeanCloud的api进行了封装,然后又用js写了一点GUI生成。
Valine的优点是可以匿名评论,而且它所依赖的LeanCloud拥有一定的免费额度,虽然不多,但是对于个人博客这种访问量量级应该是绰绰有余了。所以Valine几乎完美地契合了我的需求。
而且部署起来也十分方便。对于部署过程,我就不赘述了,操作流程官网1说的非常清除。
稍微比较麻烦的地方其实是LeanCloud,LeanCloud是中国的,但也提供国际版,而且两个版本互相独立。我一开始注册了国际版的账号,结果老是出现跨域问题。后来没办法只好注册了国内版,就没问题了。
至于为什么一开始试的是国际版,是因为国内版需要进行实名认证啥的,不过也不会麻烦很多。
个人博客的数量远远比我想像中要多得多,但是平时在搜索引擎几乎是搜索不到它们的,因为它们并没有做什么搜寻引擎优化(SEO)。
但是一旦涉及博客相关的话题,比如本文的主题“评论系统”,特别是细致到某个评论系统时,就能搜出很多个人博客了3456。
Dirge,使用 remarkbox 评论插件 ↩
科技微讯,开源评论系统 isso 部署方法 ↩
Darek Kay,Various ways to include comments on your static site ↩