之前博客使用的评论系统是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 id
client_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
一栏