Hello Gitment
换 Disqus 才一年,因为被 Q,本来就清静的博客更清静了,索性再也看不到任何评论,忧伤。
最近又看到一个讨论国内社会化评论系统的帖子,兴之所致接入 Gitment。
网上有不少教程,可以按照教程一步步操作。说说我的踩坑过程:
1. 更新主题
我的博客采用的是 hexo + hexo-theme-yilia,首先更新了hexo-theme-yilia
主题。
2. 配置信息
发现hexo-theme-yilia
主题自带支持Gitment
,如下
1 | gitment_owner: # #你的 GitHub ID |
去创建一个 OAuth application,并获取相关信息填入其中。
3. 部署博客
进入博客文章详情,可以看到文章底部已经有评论模块了。
4. 初始化评论
可以自己点进博客手动点击初始化,也可以使用自动初始化 Gitalk 和 Gitment 评论。
遇到一个蛋疼的问题是当文章链接过长的时候(超过 50 个字符),会报Validation Failed
错误。
解决办法:
- 如果是手动初始化的,可以考虑在 Gitment 配置里面用
page.date
代替url
,这样就不会超出 50 个字符了。 - 如果是使用自动初始化的 ruby 脚本,可以改下代码,思路有几种:
- 将 url 截取不超过 50 个字符
- 将 url md5 加密或者 Base64 编码
- 用时间来代替(估计比较蛋疼,涉及时间格式转换)
- 设置博客的
permalink
,保证 url 长度在 50 个字符以内 - 其它大胆的想法…
我采用的是第 1 种方案。
FBI Warning! FBI Warning! FBI Warning!
因为 Issue 需要和文章对应,改完代码后,还需要在博客源码里面改下 Gitment 的配置,使两处生成的值一致。
Ruby 脚本修改一处:
1 | req.body = { body: url, labels: [kind, url[0,48]], title: title }.to_json |
Gitment 配置修改一处:
1 | var gitment = new Gitment({ |
为方便还晕着的,再贴下原来的代码以便区分:
原 Ruby 脚本:
1 | req.body = { body: url, labels: [kind, url], title: title }.to_json |
原 Gitment 配置:
1 | var gitment = new Gitment({ |
5. 大功告成
6. 后续问题
- 之前旧的评论不能导入:理论上可以实现,解析 Disqus 导出的评论文件,然后添加到文章的评论内。看有无必要了。
- 后续每次添加新文章,都需要手动初始化下评论:同样可以使用脚本初始化,或者发布文章部署时自动调用以初始化。