新增 giscus 评论
自从我基于 Zola 重建这个网站以来,一直醒目地缺席的一样东西就是:评论。
我向来不太在意它们的缺失,而且——既然是静态网站——也不太确定这在实践上是否真的可行。
giscus
giscus 是一个由 GitHub Discussions 驱动的评论小组件。它有几点特别适合静态网站:
- 无需数据库:每条评论都只是 GitHub Discussion 下的一条评论
- 无追踪、无广告、永久免费
- 访客只需授权 giscus GitHub 应用即可评论(或者直接在 GitHub 上回复)
主要的缺点:访客需要一个 GitHub 账号才能评论。
因为它完全在客户端运行,只需要在页面里加上一个 <script> 标签,就能把评论直接嵌入到网站上。
如何启用
第一步在 GitHub 上完成:创建一个公开仓库,在上面安装 giscus 应用,然后启用 Discussions。
接下来,giscus.app 的配置器会为你生成一段现成的 <script> 标签,把它加到你的网站即可。
对于这个网站,我使用了 pathname 映射,这样每个页面都会拥有自己独立的讨论串。由于这是一个多语言网站,一篇文章的中英文版本自然会拥有各自独立的讨论串。你也可以调整映射,让两种语言共享同一个讨论串。
在我的 minimal 主题 里,还有几个小地方需要处理:
- 主题的
page.html同时渲染普通页面和文章。我在代码片段外面加了一个简单的路径判断,让 giscus 只出现在/posts/*下。 - 生成的代码片段默认写死了英文。我改成根据页面语言来设置,这样中文页面会自动加载
zh-CN。 - 这个网站有手动的浅色/深色切换,但 giscus 默认只跟随操作系统的
prefers-color-scheme。我加了一小段 JS,在切换主题时把当前主题推送给 giscus 的<iframe>。
结语
由于整个设置起来毫不费力,我会先让评论跑起来看看效果。网站以前的版本也带过评论,但最终它们带来的麻烦超过了价值。且看这次 2026 年的尝试如何。