DisqusUtterancesGiscus 评论小部件都是开箱即用的。本文将展示如何配置它们,甚至自定义你自己的评论小部件。

Disqus#

Disqus 评论小部件由 Hugo 提供支持。

1disqusShortname = "yourdiscussshortname"

请注意:disqusShortname 是站点配置,而非参数。将其放在 params 是行不通的。

Utterances#

Utterances 是一个基于 GitHub issue 的轻量级的评论挂件。

1[utterances]
2  repo = "user/repo"
3  #issueTerm = "pathname" # pathname, url, title, og:title.
4  #label = "comment" # Optional.
5  #theme = ""

不同于 Disqus,Utterances 是一个参数。请将其放置在 params

参数#

名称类型默认值描述
utterances.repoString-GitHub 仓库。
utterances.issueTermStringpathname文章和 issue 之间的映射: pathname
utterances.labelString-此标签将会分配给 Utterances 创建的 issue。
utterances.themeString-如果未设置任何主题,亮色和暗色模式会分别使用 github-lightgithub-dark。 可选值: github-light, github-dark, preferred-color-scheme, github-dark-orange, icy-dark, dark-bluephoton-dark

故障排查#

  • 确保仓库是公开的,否则读者无法查看评论。
  • 确保仓库已经安装了 utterances app,否则用户无法发表评论。
  • 如果你的仓库是克隆的,请在设置中确保已经启用了 issues 功能。

Giscus#

Giscus is a lightweight comments widget built on GitHub discussions.

1[giscus]
2  repo = "user/repo"
3  repoId = ""
4  category = ""
5  categoryId = ""

Parameters#

NameTypeDefaultDescription
giscus.repoString-GitHub repository. Required.
giscus.repoIdString-GitHub repository ID. Required.
giscus.categoryString-Discussions category. Required.
giscus.categoryIdString-Discussions category ID. Required.
giscus.themeString-Left it empty if you want to follow the theme mode.
giscus.mappingStringpathnameThe mapping between blog posts and GitHub discussions: pathname, url, title and og:title.
giscus.inputPositionStringtopThe input position: top or bottom.
giscus.reactionsBooleantrueTurn on/off the reactions.
giscus.metadataBooleanfalseEmit discussion metadata.
giscus.langString-Specify language, default to site language.
giscus.lazyLoadingBooleantrueEnable lazy loading.

自定义评论小部件#

我们不打算支持所有的评论小部件,但别担心,你完全可以自定义评论小部件。

在创建自己的评论小部件之前,需要禁用其他评论小部件。

1mkdir -p layouts/partials/post/comments
2echo "MY COMMENTS WIDGET" > layouts/partials/post/comments/custom.html

期间,你很可能需要引入第三方资源,不过这可以通过 自定义资源钩子 轻松解决。