FixIt 主题配置 Giscus 评论系统

基于 Github Discussions 的博客评论系统 Giscus 搭建流程,主题使用 FixIt

创建仓库

Github 创建一个公开仓库

开启仓库的 Discussions

仓库设置中勾选 Discussions。

安装 Giscus App

点击 giscus 安装并绑定仓库。

获取仓库关键信息

需要获取四个必要的参数,用于配置 Giscus

  • repo: 仓库,一般是 用户名/仓库名
  • category: 分类,使用 Github Discussions 的哪种分类,比如 General。
  • repoId: 仓库id,通过 Api 调用获取,见下文。
  • categoryId: 分类id,通过 Api 调用获取,见下文。

获取 repoId、categoryId:

打开 Github Docs 官网:Github Docs Explorer,授权 Github 账户登录,并输入以下内容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
  repository(owner: "userName", name: "repoName") {
    id
    discussionCategories (first: 5) {
      nodes {
        name
        id
      }
    }
  }
}
  • 将 userName 换成具体的 Github 用户名;
  • 将 repoName 换成保存评论数据的 Repo 名称。

如图

images/GraphQLAPI.png

获取响应数据

  • repoId: data.repository.id
  • categoryId: data.repository.discussionCategories.nodes[?].id

将上面获取到的四个参数配置到 giscus 即可连接。

提示

选择 giscus 连接到的仓库。请确保:

  1. 该仓库是 公开的,否则访客将无法查看 discussion。
  2. giscus app 已安装,否则访客将无法评论和回应。
  3. Discussions 功能已在你的仓库中启用

它如何运作

giscus 加载时,会使用 GitHub Discussions 搜索 API 根据选定的映射方式(如 URL、pathname、<title> 等)来查找与当前页面关联的 discussion。如果找不到匹配的 discussion,giscus bot 就会在第一次有人留下评论或回应时自动创建一个 discussion。

访客如果想要评论,必须按照 GitHub OAuth 流程授权 giscus app 代表他发布,或者可以直接在 GitHub Discussion 里评论。你可以在 GitHub 上管理评论。