我一直没有在这个博客上启用评论功能,但其实很早就想把它做出来了。 我试过 Disqus。它很酷,但事实证明并不符合我的需求。
对 Disqus 的看法
Disqus 拥有丰富的 UI 和用于讨论博客文章的各种功能,但它允许:
- 匿名评论
- 插入广告
关于匿名评论:值得庆幸的是,这个博客几乎没有读者留言。然而,最近许多名人因为不断收到恶意攻击性评论,最终饱受心理疾病的折磨。谁也不敢说这种事不会发生在这个小小的个人博客上。
插入广告则意味着 Disqus 在追踪用户信息。我不想让我的读者为安全问题担忧。
转向 utterances
于是我决定使用 utterances。 utterances 构建在 GitHub Issue API 之上,评论会存储在一个个 GitHub Issue 中。
utterances 列出的主要特性如下:
Open source. 🙌
No tracking, no ads, always free. 📡🚫
No lock-in. All data stored in GitHub issues. 🔓
Styled with Primer, the css toolkit that powers GitHub. 💅
Dark theme. 🌘
Lightweight. Vanilla TypeScript. No font downloads, JavaScript frameworks or polyfills for evergreen browsers. 🐦🌲
听起来不错吧?
评论前需要先通过 GitHub 认证1,这是因为 GitHub Issue 不允许游客留言。
我的博客托管在自己的私有云服务器上,而代码存放在 GitHub。对我来说,用 Issue 来管理评论更合理。
实现 utterances
下面介绍我在 Hugo 博客上的实现方法。 话虽如此,对我而言只需要寥寥几行。
我只是在 config.toml 里加了这几行:
[params.utterances]
repo = "junkpiano/yusuke.cloud"
issueTerm = "pathname"
请注意,具体配置取决于你的博客主题。不同的主题有不同的配置方式,请参考所用主题的 README。
填好 config.toml 之后,试着运行你的博客:
hugo serve -D # -D option includes draft posts. Remove it if you don't need it.
然后,你就会在博客文章底部看到评论表单。
总结
现在我可以收到你的评论了,快在下面和我打个招呼吧!
如果你还不了解 GitHub:GitHub 是一个供开发者存储程序源代码并与其他开发者共享的平台。也推荐看看这份 GitHub 指南:Mastering issues。 ↩︎