之前博客使用的评论系统是disqus,用了一段时间之后发现,用disqus来评论的人很少,这才有了更换评论系统的想法。

其实最重要的原因是disqus貌似无法在国内使用,被GFW挡住了。虽然对于我来说不是什么问题,但是不能要求每个读者都有这项技能。

之前搜索时发现还有挺多的第三方评论系统,可以参考第三方评论系统选择。考虑到我的博客托管在Github,而且博客受众很多也是Github用户,干脆全部放到Github好了。

Gitment 是作者实现的一款基于GitHub Issues的评论系统。支持在前端直接引入,不需要任何后端代码。可以在页面进行登录、查看、评论、点赞等操作,同时有完整的 Markdown/GFM 和代码高亮支持。尤为适合各种基于GitHub Pages的静态博客或项目页面。

备忘-配置流程

增加gitment之前需要确认你的博客所使用的主题集成了gitment系统,我所使用的主题是indigo,已经集成了gitment

确认之后第一步是在Github增加认证程序

OAuth Application

需要填写以下内容

OAuth
OAuth

其中最重要的是Authorization callback URL,这个需要填写你的博客地址,上图是我所填写的内容示例。

注册成功之后会拿到client idclient secret

拿到这两个东西之后,在本地的hexo主题配置文件_config.yaml里添加gitment。示例如下:

配置
配置
  • owner: 填写你的Github用户名
  • repo: 用于存储评论的仓库,我这里直接使用博客的仓库,也可以另外创建仓库用于存储评论
  • client_id: 上一步申请到的client id
  • client_secret: 上一步申请到的client secret

到这里差不多已经配置好了,只需要初始化一下

  1. 重新生成你的博客页面
  2. 在评论框登陆Github账号
  3. 登录之后初始化评论

踩过的坑

注意,不要在本地进行评论测试。

Error: Not found

owner或者repo配置错误了,按照上面的教程重新配置一下就好。可以通过查看生成网页查看是否配置好

web
web

这是我已经配置好后hexo生成的页面一部分。

如果确信ownerrepo以及拿到的client idclient secret都没错,那么可以使用如下方法写死(不建议使用这种方法)。

打开hexo的主题目录,找到themes\hexo-theme-indigo\layout\_partial\plugins\gitment.ejs打开(此路径仅适用于indigo主题,其他主题请换成相应的文件),修改成如下内容:

gitment
gitment

之后重新生成页面即可

Error: Comments Not Initialized

  1. 第一步在Github增加认证步骤中,Authorization callback URL填写错误。此时只需在Github申请页面修正即可。
  2. 没有登陆Github账号。登录账号即可。

Error: validation failed

每一篇文章的评论都是作为一个issue存在于仓库中,因此有一个唯一的id,但是Github对此id长度有限制,出现该错误就是因为id过长,默认传递的id应该是文章的题目,很容易过长。

解决方法是自己设立一个不会过长的id,在搜索了资料之后发现可以使用文章日期,这样就能随意起标题啦。具体如下:

Error: Not found类似,打开themes\hexo-theme-indigo\layout\_partial\plugins\gitment.ejs,增加id一栏

gitment
gitment

参考资料: