以前有添加过 多说 ,步骤都类似的。其实就是调用一个第三方的服务,把评论的数据存储在第三方。
可以先看看 gitalk 的文档 ,分四步:
- 注册一个github 的 OAuth Apps
- 添加div容器
- 加入css,js依赖
- 调用javascript显示
配置
注册一个github应用
在 _layouts/post.html
的 Comments 下添加一个 gitalk-container 的节点:
(粘贴后把大括号和百分号之间的空格去掉)
1
2
3
4
5
6
7
8
| { % if site.disqus_short_name and page.comments == true % }
<section>
<h1>Comments</h1>
<!-- gitalk评论 start -->
<div id="gitalk-container"></div>
<!-- gitalk评论 end -->
</section>
{ % endif % }
|
在 _includes
目录下增加一个 gitalk.html 的页面,添加依赖并添加初始化代码:
这里clientID,clientSecret对应第一步注册应用的id和secret。
在官网文档给的例子上调整了一下: id, body, createIssueManually。代码里面是通过 labels + id
来查询对应的issue:查询Issue源码
(粘贴后把大括号和百分号之间的空格去掉)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| { % if site.disqus_short_name and page.comments != false % }
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css">
<script src="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js"></script>
<script>
var gitalk = new Gitalk({
clientID: 'c14f68eac6330d15d984',
clientSecret: '73b7c1fffa98e299ff0cdd332821201933858e6e',
repo: 'winse.github.com',
owner: 'winse',
admin: ['winse'],
id: location.pathname,
labels: ['Gitalk'],
body: "http://winse.github.io" + location.pathname,
createIssueManually: true,
// facebook-like distraction free mode
distractionFreeMode: false
})
gitalk.render('gitalk-container')
</script>
{ % endif % }
|
然后在同一级目录的 after_footer.html 新增一条 这个新页面一个引用(粘贴后把大括号和百分号之间的空格去掉):
1
| { % include gitalk.html % }
|
初始化
其实就是在对应的repo下面建一个repo,注意下 labels 规则就行了:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| username = "winse" # GitHub 用户名
# https://github.com/settings/tokens
new_token = "" # GitHub Token
repo_name = "winse.github.com" # 存放 issues
sitemap_url = "sitemap.xml" # sitemap
kind = "Gitalk"
# 可以结合git的状态,added的调用命令创建一个issue
# 除了使用Token,也可以手动输入密码
curl -H "Accept: application/json" -X POST -d '{"body": "http://winseliu.com/blog/2017/11/20/sed-debug-sedsed/", "labels": ["Gitalk", "/blog/2017/11/20/sed-debug-sedsed/"], "title": "gitalk 测试" }' -u $username https://api.github.com/repos/$username/$repo_name/issues
Enter host password for user 'winse':
OR
# https://developer.github.com/v3/auth/#basic-authentication
curl -u username:token https://api.github.com/user
|
参考
–END