一个博客怎么能没有评论系统!Giscus是利用 GitHub Discussions 实现的评论系统,让访客可以借助 GitHub 在网站上留下评论和反应。部署起来还是比较简单的,其具有一下特点(来自官网):
- 开源。🌏
- 无跟踪,无广告,永久免费。📡 🚫
- 无需数据库。所有数据均储存在 GitHub Discussions 中。
- 支持 自定义主题!🌗
- 支持 多种语言。🌐
- 高可配置性。🔧
- 自动从 GitHub 拉取新评论与编辑。🔃
- 可自建服务!🤳
1. 创建并配置Github仓库 #
Giscus需要依靠一个Github仓库来进行部署,仓库需要满足以下三个条件:
1.1 创建一个公开的Github仓库 #
直接在Your repositories
下new一个就可以,记得需要选择public
1.2 为仓库启动Discussions功能 #
找到Settings -> General -> Features
,勾选Discussions
1.3 为仓库安装Giscus #
进入这个网址: GitHub Apps - giscus,点击安装
点击安装后,选择Only select repositories
,选择刚才创建的仓库
2. 从官网获取配置信息 #
评论区的html代码与配置信息可以在官网进行自动配置获取,首先进入官网: giscus
2.1 填写仓库名 #
如图所示
其他配置先默认
2.2 配置Discussion 分类 #
选择 Announcements 类型即可
2.3 获取html代码与配置信息 #
在启用giscus
栏中,即可看到相应代码。
要记下data-repo
,data-repo-id
,data-category
,data-category-id
,data-mapping
这几个值。
3. hugo配置 #
这里使用的 Hugo 一定要是最新的版本,不然是不支持 Giscus 的
3.1 创建html文件 #
-
在hugo项目下
themes/<你的主题文件夹>/layouts/partials/
目录下新建comments.html
文件,填入刚才在官网获取的script脚本代码内容。如果使用
blowfish
主题,具体路径应该是\themes\blowfish\layouts\partials\
-
在hugo项目下
themes/<你的主题文件夹>/layouts/_default/single.html
文件下,加入{{ partial "comments.html" . }}
{{ partial "header.html" . }} {{ .Content }} <footer class="footline"> {{with .Params.LastModifierDisplayName}} <i class='fas fa-user'></i> <a href="mailto:{{ $.Params.LastModifierEmail }}">{{ . }}</a> {{with $.Date}} <i class='fas fa-calendar'></i> {{ .Format "02/01/2006" }}{{end}} </div> {{end}} </footer> {{ partial "comments.html" . }} {{ partial "footer.html" . }}
如果使用
blowfish
主题,则无需进行这项配置(原本文件中就有)
3.2 toml配置修改 #
进入\config\_default\params.toml
,按照如下格式,填入在官网获取到的配置:
[giscus]
data-repo="[自动生成]"
data-repo-id="[自动生成]"
data-category="[自动生成]"
data-category-id="[自动生成]"
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"
如图:
如果你是blowfish
主题,还需要在[article]
配置项中加入一行: showComments = true
这样就可以显示评论啦