静态博客没有后端,评论数据无处存储。Giscus 基于 GitHub Discussions,免费、稳定、支持 Markdown,是 Hexo 博客的最佳评论方案之一。
本文记录从零接入 Giscus 的完整流程,包括踩坑点。
进入博客 GitHub 仓库 → Settings → Features → 勾选 Discussions。
进入仓库 → Discussions → 右侧 Edit categories → New category:
Announcements这一步很关键。如果选成 General,访客可以在仓库里随意新建帖子,造成混乱。Announcement 类型下,只有 Giscus 机器人能创建主帖,访客只能回复。
访问 https://github.com/apps/giscus ,点击 Install。
访问 https://giscus.app/zh-CN ,按以下步骤配置:
填入:用户名/仓库名(如 zuige66/hexo)
选择:Discussion 的标题包含页面的 pathname
这种方式下,每篇文章的 URL 路径会作为 Discussion 的标题,一一对应。
选择:Announcements
| 选项 | 建议 |
|---|---|
| 启用主帖子上的反应 | ✅ 勾选 |
| 将评论框放在评论上方 | ✅ 勾选 |
| 懒加载评论 | ✅ 勾选 |
| 输出 discussion 的元数据 | ☐ 不勾选 |
选择:用户偏好的色彩方案
这样评论区会自动跟随博客的亮色/暗色模式切换。
页面会生成一段 <script> 代码,类似:
<script src="https://giscus.app/client.js"
data-repo="zuige66/hexo"
data-repo-id="R_kgDOUNLYKw"
data-category="Announcements"
data-category-id="DIC_kwDOUNLYK84DE1jw"
data-mapping="pathname"
data-strict="0"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="top"
data-theme="preferred_color_scheme"
data-lang="zh-CN"
data-loading="lazy"
crossorigin="anonymous"
async>
</script>
记住里面的 repo-id 和 category-id,下一步要用。
打开 _config.fluid.yml,添加两处配置:
启用评论(在 post 段落内):
post:
# ... 其他配置
comments:
enable: true
type: giscus
Giscus 参数(文件末尾添加):
giscus:
repo: zuige66/hexo
repo-id: R_kgDOUNLYKw
category: Announcements
category-id: DIC_kwDOUNLYK84DE1jw
mapping: pathname
strict: 0
reactions-enabled: 1
emit-metadata: 0
input-position: top
theme-light: light
theme-dark: dark
lang: zh-CN
注意:Fluid 主题要求
theme-light和theme-dark两个字段,不要写成theme。
hexo clean && hexo deploy
本地
hexo s预览只能看到评论区 UI 框架,不会真正创建 Discussion。必须部署到线上才能正常使用。
文章 URL: /2026/09/04/my-post/
↓
Giscus 根据 pathname 查找对应的 Discussion
↓
找到 → 显示评论
没找到 → 自动创建新的 Discussion 主帖
↓
评论存储在 GitHub Discussions
检查项:
_config.fluid.yml 中 post.comments.enable 是否为 true主题配色要选「用户偏好的色彩方案」,不要固定 GitHub Light。
正常现象。hexo s 只渲染 UI,Discussion 帐子只有部署线上后才会由 Giscus 机器人创建。
分类类型选错了。必须是 Announcement,不能是 General。Announcement 类型下只有 Giscus 能创建主帖。
在文章 front-matter 中设置:
---
title: 某篇文章
comments: false
---
Giscus 默认用文章路径作为 Discussion 标题。如需自定义,可在 giscus.app 配置时修改映射方式。
| 步骤 | 操作 |
|---|---|
| 1 | 仓库开启 Discussions |
| 2 | 创建 Announcement 分类 |
| 3 | 安装 Giscus 应用并授权 |
| 4 | giscus.app 配置并获取参数 |
| 5 | _config.fluid.yml 添加 giscus 配置 |
| 6 | 部署上线验证 |
整个流程约 15 分钟完成,无需服务器,无需付费。
正在加载评论...