Winse Blog

走走停停, 熙熙攘攘, 忙忙碌碌, 不知何畏.

Gitalk on Octopress

以前有添加过 多说 ,步骤都类似的。其实就是调用一个第三方的服务,把评论的数据存储在第三方。

可以先看看 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://winseliu.com" + 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

Comments