DisqusJS

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

这个文档由 V2 的实现迁移过来,无法保证是否完整正确;如果遇到任何问题,欢迎随时 开启一个 issue 来跟进。

官方介绍

纯前端、超轻量级的「评论基础模式」实现:使用 Disqus API 渲染评论列表

配置说明

引入的新文件

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

disqusjs.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
(() => {
let disqusjs = null;
const loadComments = async () => {
if (typeof DisqusJS === "undefined") {
setTimeout(loadComments, 100);
} else {
const container = document.getElementById('disqusjs');
if (!container) {
return;
}
disqusjs = new DisqusJS({
shortname: '<您的站点实例缩略名>',
identifier: container.getAttribute("data-path"),
url: container.getAttribute("data-full-path"),
apikey: '<您的 Disqus API Key>',
});
disqusjs.render(container);
}
};

window.loadComments = loadComments;
window.addEventListener('pjax:before', () => {
// 销毁 DisqusJS 实例
disqusjs.destroy();
});
window.addEventListener('pjax:success', () => {
window.loadComments = loadComments;
});
})();

需要替换的内容:

  • <您的站点实例缩略名> 需要替换成您在 Disqus 设置的具体的站点实例短ID,例如 candiblog
  • <您的 Disqus API Key> 需要替换成您从 Disqus 处申请得到的 API Key。

更新的配置项

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

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

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

1
2
3
4
5
6
additional_injections:
head: |
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/disqusjs@3.0/dist/browser/styles/disqusjs.css">
after_footer: |
<script src="https://cdn.jsdelivr.net/npm/disqusjs@3.0/dist/browser/disqusjs.es2015.umd.min.js"></script>
<script src="/comments/disqusjs.js"></script>

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

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

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