最近在重构博客主题,给主题添加一些新功能,并修复了一些bug(修不完的,绝对修不完的 🙀)
我给博客新增了 giscus
和 utteranc
两种评论系统,并将自己博客的 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
owner
和 repo
是你的 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
owner
和 repo
是你的 GitHub 用户名和仓库名,repoId
和 categoryId
是 Discussions 的 ID,mapping
是评论的唯一标识。
提示:
可以从官网获取 Repo 和 Category 的 ID。
其他配置项也可以在官网查看。
关于 gitalk 的安全问题
参考这个issue,虽然 gitalk
的作者认为 clientSecret
即使是暴露在前端也不会有安全问题。
但是,我认为即使 gitalk 不会出问题,不代表 GitHub 不会出问题。把 clientSecret
暴露在前端,总归是不太合理。
因此,我还是选择了更加安全的 utteranc
和 giscus
。