之前博客使用的评论系统是disqus,用了一段时间之后发现,用disqus来评论的人很少,这才有了更换评论系统的想法。
其实最重要的原因是disqus貌似无法在国内使用,被GFW挡住了。虽然对于我来说不是什么问题,但是不能要求每个读者都有这项技能。
之前搜索时发现还有挺多的第三方评论系统,可以参考第三方评论系统选择。考虑到我的博客托管在Github,而且博客受众很多也是Github用户,干脆全部放到Github好了。
Gitment 是作者实现的一款基于
GitHub Issues的评论系统。支持在前端直接引入,不需要任何后端代码。可以在页面进行登录、查看、评论、点赞等操作,同时有完整的Markdown/GFM和代码高亮支持。尤为适合各种基于GitHub Pages的静态博客或项目页面。
备忘-配置流程
增加gitment之前需要确认你的博客所使用的主题集成了gitment系统,我所使用的主题是indigo,已经集成了gitment。
确认之后第一步是在Github增加认证程序
需要填写以下内容
其中最重要的是Authorization callback URL,这个需要填写你的博客地址,上图是我所填写的内容示例。
注册成功之后会拿到client id和client secret。
拿到这两个东西之后,在本地的hexo主题配置文件_config.yaml里添加gitment。示例如下:
owner: 填写你的Github用户名repo: 用于存储评论的仓库,我这里直接使用博客的仓库,也可以另外创建仓库用于存储评论client_id: 上一步申请到的client idclient_secret: 上一步申请到的client secret
到这里差不多已经配置好了,只需要初始化一下
- 重新生成你的博客页面
- 在评论框登陆
Github账号 - 登录之后初始化评论
踩过的坑
注意,不要在本地进行评论测试。
Error: Not found
owner或者repo配置错误了,按照上面的教程重新配置一下就好。可以通过查看生成网页查看是否配置好
这是我已经配置好后hexo生成的页面一部分。
如果确信owner和repo以及拿到的client id和client secret都没错,那么可以使用如下方法写死(不建议使用这种方法)。
打开hexo的主题目录,找到themes\hexo-theme-indigo\layout\_partial\plugins\gitment.ejs打开(此路径仅适用于indigo主题,其他主题请换成相应的文件),修改成如下内容:
之后重新生成页面即可
Error: Comments Not Initialized
- 第一步在
Github增加认证步骤中,Authorization callback URL填写错误。此时只需在Github申请页面修正即可。 - 没有登陆
Github账号。登录账号即可。
Error: validation failed
每一篇文章的评论都是作为一个issue存在于仓库中,因此有一个唯一的id,但是Github对此id长度有限制,出现该错误就是因为id过长,默认传递的id应该是文章的题目,很容易过长。
解决方法是自己设立一个不会过长的id,在搜索了资料之后发现可以使用文章日期,这样就能随意起标题啦。具体如下:
与Error: Not found类似,打开themes\hexo-theme-indigo\layout\_partial\plugins\gitment.ejs,增加id一栏