Gitalk

  • ~3.18K 字
  1. 1. 官方介绍
  2. 2. 配置说明
    1. 2.1. 引入的新文件
    2. 2.2. 更新的配置项

官方介绍

Gitalk 是一个基于 GitHub Issue 和 Preact 开发的评论插件。

配置说明

引入的新文件

请将下述两个文件放置于 source 目录中的合适位置,在此处我们使用的是 comments 目录。

gitalk.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.gt-counts,
.gt-header-textarea,
.gt-user-name {
color: var(--kr-theme-text) !important;
}

.gt-header-textarea,
.gt-header-preview,
.gt-btn-preview,
.gt-comment-content,
.gt-popup {
background-color: var(--kr-theme-page-bg) !important;
}

.gt-popup {
border-color: #6190e8 !important;
}
gitalk.js
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
28
29
30
31
32
(() => {
const loadComments = async () => {
if (typeof Gitalk === "undefined") {
setTimeout(loadComments, 100);
} else {
const container = document.getElementById('gitalk-container');
if (!container) {
return;
}
const path = container.getAttribute("data-path");
const gitalk = new Gitalk(Object.assign({
id: path, // 直接使用路径作为 id
// id: container.getAttribute("data-path-hash"), // 使用 hash 作为 ID
path: path,
}, {
clientID: '<GitHub Application Client ID>',
clientSecret: '<GitHub Application Client Secret>',
repo: "<存储评论使用的 issue 的仓库名称>",
owner: "<存储评论使用的 issue 的仓库所属>",
admin: ["<管理员账户的 GitHub 用户名>"],
distractionFreeMode: false,
}));

gitalk.render('gitalk-container');
}
};

window.loadComments = loadComments;
window.addEventListener('pjax:success', () => {
window.loadComments = loadComments;
});
})();

需要替换的内容:

  • <GitHub Application Client ID><GitHub Application Client Secret> 需要替换成您根据 Gitalk 官方文档中描述的内容创建的 GitHub Application 的信息。
  • <存储评论使用的 issue 的仓库名称><存储评论使用的 issue 的仓库所属> 需要替换成您用于存储评论时需要使用的仓库对应的名称。例如对于 Candinya/Kratos-Rebirth 来说,仓库名称是 Kratos-Rebirth ,仓库所属是 Candinya
  • <管理员账户的 GitHub 用户名> 需要设置成管理员的 GitHub 用户名,可以添加多个。只有这个列表里的用户可以初始化评论区。

目前已知当文章路径过长时,使用 id 创建 issue 可能会失败。您可以使用数据摘要来作为文章的 ID ,对应调整注释行的代码即可(注释掉第 12 行,解除第 13 行的注释)。

更新的配置项

需要更新 comments设置为以下内容:

1
2
3
4
5
6
7
comments:
core:
enable_at:
- post
- page
template:
_shared: <div id="gitalk-container" class="kr-comments lazy-load" data-path="$PATH" data-path-hash="$PATH_HASH"></div>

需要更新 additional_injections加入以下内容:

1
2
3
4
5
6
7
additional_injections:
head: |
<link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
<link rel="stylesheet" href="/comments/gitalk.css" />
after_footer: |
<script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
<script src="/comments/gitalk.js"></script>

假设您把上述的两个文件放置在 source 目录的 comments 目录中,且您的站点配置为根目录模式,那么您应当可以通过上述的两个路径 /comments/gitalk.css/comments/gitalk.js 访问到对应的文件。如果您使用的是其他配置,您需要对应调整这两个路径。

当您配置完成后重启 Hexo ,您应当可以看见正在加载的 Gitalk 实例。预祝您使用愉快。

分享内容
扫描此处的二维码即可分享。