2025-03-28
多听,少说,接受每一个人的责难,但是保留你的最后裁决。——莎士比亚《哈姆雷特》
GitHub - utterance/utterances: 🔮 A lightweight comments widget built on GitHub issues
Utterances:基于 GitHub Issues 的超轻量评论系统
如果你正在为静态博客寻找一款干净、开源、可控又易用的评论系统,那么你可能会喜欢这款工具——utterances。
这是一款用一句话就能说明白的工具:
Utterances 是一个基于 GitHub Issues 的轻量级评论系统,每一条评论本质上都是一条 issue 回复。
为什么选择 utterances?
相比传统的评论插件,它有以下几个显著优势:
-
🚀 超轻量:仅一个 iframe,不注入额外 JS,加载速度极快
-
🔐 隐私友好:不收集用户数据,不追踪
-
🧠 天然反垃圾评论:用户必须使用 GitHub 登录评论
-
✍️ 支持 Markdown、表情、代码块,评论体验优秀
-
🧰 自动同步到 Issues:你可以用 GitHub 管理所有评论
-
📦 完全开源:放心可控,没有隐藏后门或收费陷阱
适合搭配 Hexo、Hugo、VuePress、Astro、Next.js 等静态博客使用,部署毫无压力。
评论原理简介
utterances 会把你的每一篇博客文章,映射成你仓库中的一个 issue。
每条评论就是这个 issue 下的回复。
它通过 GitHub 的 OAuth 登录授权,用户用自己的 GitHub 账号评论,评论被自动同步到指定仓库,非常透明。
你可以选择通过:
-
文章的
pathname
-
url
-
title
-
issue number
-
custom term
来作为 issue 的唯一标识,灵活又方便。
快速开始
1. 准备一个公共仓库作为评论存储位置
比如:yourname/blog-comments
确保开启了 Issues 功能。
2. 配置 utterances
选择你要用的 repo、映射方式(推荐 pathname
)、主题风格(支持暗色/亮色自动适配),然后复制生成的代码片段。
代码大致如下:
1 |
|
将它插入到你博客文章页面的合适位置,例如放在文章末尾。
样式效果
默认的 GitHub 风格界面,简洁好看,和大多数技术博客风格自然融合:
-
支持回复
-
支持 Markdown 格式
-
支持代码高亮
-
响应式设计,适配移动端
使用体验分享
我亲自使用 utterances 已有一段时间,感受如下:
-
集成简单,几乎零配置
-
评论加载飞快,没有广告、追踪脚本
-
通过 GitHub 管理所有评论,极为方便
-
博客干净,页面无任何多余组件
唯一小缺点是:用户必须登录 GitHub 才能评论,这对非技术用户可能稍有门槛。但如果你面向的是开发者,这反而是一种优势。
和 Gitalk 的对比
特性 | utterances | Gitalk |
---|---|---|
登录方式 | GitHub OAuth | GitHub OAuth |
样式 | 极简 GitHub 风格 | 类似 GitHub,更多配置 |
评论位置 | iframe 注入 | 原生 DOM 注入 |
是否开源 | ✅ 是 | ✅ 是 |
管理入口 | GitHub Issues | GitHub Issues |
评论门槛 | GitHub 登录 | GitHub 登录 |
两者本质思路一样,但 utterances 更轻量,零依赖、加载更快、免维护,适合追求极简体验的开发者。
总结
utterances 是一个几乎完美的静态博客评论系统,它的优点可以概括为:
-
不需要后端、数据库
-
免费且开源
-
评论数据全存储在 GitHub
-
无广告、无追踪,真正为开发者而生
如果你的博客是面向技术人群,那 utterances 是一个非常值得尝试的解决方案。