最近在重构博客主题,给主题添加一些新功能,并修复了一些bug(修不完的,绝对修不完的 🙀)

我给博客新增了 giscusutteranc 两种评论系统,并将自己博客的 gitalk 更换为了 giscus

giscus 是基于 GitHub Discussions 的评论系统,utteranc 是基于 GitHub Issues 的评论系统。

下面简单介绍这两种评论系统。

utteranc

官网地址:utteranc

utteranc 是一个基于 GitHub Issues 的评论系统,它会在你的 Issues 中创建一个新的 Issue 来存储评论。

因此,可以很方便地将 gitalk 的评论迁移到 utteranc

gitalk 不同的是,utteranc 不需要配置 OAuth Application,不会把 clientSecret 暴露在前端,因此更加安全。

在我重构后的博客主题中,需要在配置文件中添加如下配置:

comment: utteranc # 选择utteranc评论系统
## Utteranc
utteranc:
  owner: talentestors
  repo: talentestors.github.io
  issueTerm: location.pathname
  label: "💬comment"
  theme: github-light

ownerrepo 是你的 GitHub 用户名和仓库名,issueTerm 是评论的唯一标识,label 是评论的标签,theme 是评论的主题。

giscus

官网地址:giscus

giscus 是一个基于 GitHub Discussions 的评论系统,它会在你的 Discussions 中创建一个新的 Discussion 来存储评论。

giscus 同样不会把敏感信息暴露在前端。

同时,基于 Discussions,它的回复功能更加完善,可以直接回复评论。

配置方法:

comment: giscus # 选择giscus评论系统
## giscus
giscus:
  owner: talentestors
  repo: talentestors.github.io
  repoId: R_kgDOJfPMMg
  category: Announcements
  categoryId: DIC_kwDOJfPMMs4ClgjC
  mapping: pathname
  reactions: 1
  metadata: 0
  theme: light_tritanopia
  position: top
  lang: zh-CN
  api: https://giscus.app/client.js # 可以自建giscus

ownerrepo 是你的 GitHub 用户名和仓库名,repoIdcategoryId 是 Discussions 的 ID,mapping 是评论的唯一标识。

提示:

可以从官网获取 Repo 和 Category 的 ID。
其他配置项也可以在官网查看。

关于 gitalk 的安全问题

参考这个issue,虽然 gitalk 的作者认为 clientSecret 即使是暴露在前端也不会有安全问题。

但是,我认为即使 gitalk 不会出问题,不代表 GitHub 不会出问题。把 clientSecret 暴露在前端,总归是不太合理。

因此,我还是选择了更加安全的 utterancgiscus


愿此行,终抵群星!