关于gitalk配置问题
Closed this issue · 5 comments
使用的hexo 5.20
当前gitalk配置:
kaze主题评论配置
gitalk:
clientID: ********
clientSecret: **********
repo: blog-comments
owner: 1kuxyz
admin: 1kuxyz
id: location.href
distractionFreeMode: false
language: zh-CN
公共github仓库:
https://github.com/1kuxyz/blog-comments
GitHub Application配置:
问题
1.无论在博客中哪篇文章下评论,最后这些评论都会在所有文章评论中显示,github的issues中,也只会有一贴issues,Label是Gitalk和location.href。
2.只有用owner的github账号在博客发了第一条评论,访客才能看到文章下正常的评论区;如果博客中(也就是github中的issues中)没有第一条评论时,显示如图
- 我们并未对 gitalk 做仔细的测试,现在已在
devel
分支修复,可以获取最新的devel
版本。
如果想自己修改可以找到 kaze/layout/_partial/plugins/comments/gitalk.ejs
,将本身 new
中的内容修改为:
var gitalk = new Gitalk({
clientID: '<%= theme.comment.gitalk.clientID %>',
clientSecret: '<%= theme.comment.gitalk.clientSecret %>',
repo: '<%= theme.comment.gitalk.repo %>',
owner: '<%= theme.comment.gitalk.owner %>',
admin: <%- JSON.stringify(theme.comment.gitalk.admin || []) %>,
id: <%= theme.comment.gitalk.id %>,
distractionFreeMode: <%= theme.comment.gitalk.distractionFreeMode %>,
language: '<%= theme.comment.gitalk.language %>',
labels: <%- JSON.stringify(theme.comment.gitalk.labels || []) %>,
perPage: <%= theme.comment.gitalk.perPage || 10 %>
})
- 这应该是 gitalk 本身的特性,它通过
issue
来生成评论,当没有这个issue
时 需要 owner 手动创建。
非常感谢你的解答,试了一下问题1已经解决了。问题2的确是gitalk的特性,没篇文章发布完,一定要owner在github登录状态打开一下文章,进而初始化生成对应的issues评论。
另外还有一个小问题:能否增加title参数,使初始化生成的issues以文本标题命名,这样比较好管理。我自己尝试修改了一下(如下),但没成功,是否哪里不对,还是有其他地方要改?
kaze/layout/_partial/plugins/comments/gitalk.ejs
var gitalk = new Gitalk({
clientID: '<%= theme.comment.gitalk.clientID %>',
clientSecret: '<%= theme.comment.gitalk.clientSecret %>',
repo: '<%= theme.comment.gitalk.repo %>',
owner: '<%= theme.comment.gitalk.owner %>',
admin: <%- JSON.stringify(theme.comment.gitalk.admin || []) %>,
id: <%= theme.comment.gitalk.id %>,
title: <%= theme.comment.gitalk.title %>,
distractionFreeMode: <%= theme.comment.gitalk.distractionFreeMode %>,
language: '<%= theme.comment.gitalk.language %>',
labels: <%- JSON.stringify(theme.comment.gitalk.labels || []) %>,
perPage: <%= theme.comment.gitalk.perPage || 10 %>
})
_config.kaze.yml
gitalk:
clientID: **************
clientSecret: ****************************
repo: blog-comments
owner: 1kuxyz
admin: 1kuxyz
id: location.pathname
title: location.title
distractionFreeMode: true
language: zh-CN
labels: ['Gitalk']
perPage: 10
location
是一个 Web API,可见 MDN文档,location.pathname
用来获取 url 的字符串,但是并没有 location.title
这一 API。文章的标题可以通过 document.title
来获取,这在 gitalk 文档 也有说明。
不过需要注意的是,之前主题并没有对文章中的 title
进行处理,假如你的 kaze 版本是 v1.1.0-beta
以下,我们建议升级。假如没有升级打算想要手动修改,可以在 kaze/layout/_partial/head.ejs
中找到
<title><%- theme.title %></title>
将其修改为
<title><%- page.title || theme.title %></title>
之后在配置中
gitalk:
...
title: document.title
应该就可以正常使用了
如果没有问题将关闭这个 issue
1. 我们并未对 gitalk 做仔细的测试,现在已在 `devel` 分支[修复](https://github.com/theme-kaze/hexo-theme-kaze/commit/99a35ce2016c4ce194334c729465aff2c62bc291),可以获取最新的 `devel` 版本。
如果想自己修改可以找到
kaze/layout/_partial/plugins/comments/gitalk.ejs
,将本身new
中的内容修改为:var gitalk = new Gitalk({ clientID: '<%= theme.comment.gitalk.clientID %>', clientSecret: '<%= theme.comment.gitalk.clientSecret %>', repo: '<%= theme.comment.gitalk.repo %>', owner: '<%= theme.comment.gitalk.owner %>', admin: <%- JSON.stringify(theme.comment.gitalk.admin || []) %>, id: <%= theme.comment.gitalk.id %>, distractionFreeMode: <%= theme.comment.gitalk.distractionFreeMode %>, language: '<%= theme.comment.gitalk.language %>', labels: <%- JSON.stringify(theme.comment.gitalk.labels || []) %>, perPage: <%= theme.comment.gitalk.perPage || 10 %> })1. 这应该是 gitalk 本身的特性,它通过 `issue` 来生成评论,当没有这个 `issue` 时 需要 owner 手动创建。
这项修改,在我的环境中不生效,我一直在使用v1.0.5,在这个版本上仅仅通过修改这个文件是不行的. 我最后的解决方法是,把整个kaze更新到最新版本才有效.