Gitalk - 在Hexo Next中实现基于GitHub Issues的博客评论

此前我使用Leancloud提供的Valine实现Hexo博客的评论系统,但Valine存在一系列问题,例如:缺乏通知、服务不稳定、以及近期麻烦的实名制手续。我尝试了Gitment,但这东西自己一堆BUG(object ProgressEvent)都没解决。最终使用了Gitalk,Hexo Next7.1.2有集成,部署简单。

Gitalk - 在Hexo Next中实现基于GitHub Issues的博客评论

1 GitHub OAuth Apps

首先,新建一个GitHub OAuth App。

依次进入GitHub => Settings => OAuth Apps => New OAuth App,

在Register a new OAuth application页面,填写:

  • Application name:Gitalk

  • Homepage URL:https://heary.cn

  • Application description:Blog comment system.

  • Authorization callback URL:https://heary.cn

2 gitalk-comments repo

随后,新建一个repository,命名为gitalk-comments,用于让Gitalk利用该repo的issues功能实现评论功能。

3 Hexo Next config

修改theme\next\_config.yml配置文件中的Gitalk项目:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Gitalk
# Demo: https://gitalk.github.io
gitalk:
enable: true
github_id: <Github UserName> # Github repo owner
repo: gitalk-comments # Repository name to store issues
client_id: <OAuth_APP_client_id> # Github Application Client ID
client_secret: <OAuth_APP_client_secret> # Github Application Client Secret
admin_user: <Github username> # GitHub repo owner and collaborators, only these guys can initialize github issues
distraction_free_mode: true # Facebook-like distraction free mode
# Gitalk's display language depends on user's browser or system environment
# If you want everyone visiting your site to see a uniform language, you can set a force language value
# Available values: en, es-ES, fr, ru, zh-CN, zh-TW
language:

注意:

  • repo填写的不是URL,而是刚刚创建的repo名,即gitalk-comments
  • distraction_free_mode可以实现出那种类似于“关灯模式”的效果。

4 初始化issue

随后就可以验证Gitalk是否设置成功:

1
2
hexo clean
hexo s

验证通过即可部署查看实际效果:

1
2
hexo clean
hexo g -d

每一篇post都需要管理员登陆点击,才能初始化comment,原理是通过管理员登陆来在repo gitalk-comments中创建出post文章对应的issue页提供评论。

5 相关链接

Gitalk

GitHub Demo