giscus

GitHub Discussions 驱动的评论系统。让访客借助 GitHub 在你的网站上留下评论和反应吧!本项目受 utterances 强烈启发。

注意:
giscus 仍处于活跃开发中。GitHub 也还在活跃地开发 Discussions 及其 API。因此,一些 giscus 的特性可能随时间损坏或改变。

它如何运作

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

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

配置

语言

选择 giscus 的显示语言。找不到你的语言?贡献一个吧。

仓库

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

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

一个公开的(public) GitHub 仓库。Discussion 将被连接到此仓库。

页面 ↔️ discussion 映射关系

选择页面与嵌入的 discussion 之间的映射关系。

giscus 将查找标题中包含页面 URL 的 pathname 成分的 discussion。

giscus 将查找标题中包含页面 URL 的 discussion。

giscus 将查找标题中包含页面的 <title> 标签的 discussion。

giscus 将查找标题中包含页面的 <meta property="og:title"> 标签的 discussion。

giscus 将查找标题中包含特定字符串的 discussion。

giscus 将按编号加载特定的 discussion。此选项支持自动创建 discussion。

Discussion 分类

选择新 discussions 所在的分类。 推荐使用公告(announcements)类型的分类,以确保新 discussion 只能由仓库维护者和 giscus 创建。

当搜索匹配的 discussion 时,giscus 将只搜索该分类。

特性

选择是否启用某些特性。

Discussion 的主帖子上的反应将会显示在评论前。

Discussion 的元数据将定期被发送到父页面(被嵌入的页面)。作为演示,尝试启用此选项并在此页面打开浏览器控制台。查看文档获取更多细节。

评论输入框会放在评论上方,这样用户可以在不滚动到讨论底部的情况下发表评论。

评论的加载将延迟到用户滚动到评论容器附近。 这是通过将 loading="lazy" 添加到 <iframe> 元素来完成的。

主题

选择适合你网站的主题。找不到合适的?贡献一个新主题吧。

启用 giscus

在你想让评论出现的位置添加以下 <script> 标签。但如果已经存在带有 giscus 类的元素,则评论会被放在那里。

<script src="https://giscus.app/client.js"
        data-repo="[在此输入仓库]"
        data-repo-id="[在此输入仓库 ID]"
        data-category="[在此输入分类名]"
        data-category-id="[在此输入分类 ID]"
        data-mapping="pathname"
        data-reactions-enabled="1"
        data-emit-metadata="0"
        data-input-position="bottom"
        data-theme="light"
        data-lang="zh-CN"
        crossorigin="anonymous"
        async>
</script>

你可以在嵌入的页面中使用 .giscus.giscus-frame 选择器来自定义容器布局。

如果你使用 giscus,请考虑在 GitHub 上 star 🌟 giscus为你的仓库添加 giscus 话题!🎉

高级用法

你可以依照高级用法指南添加额外配置(例如允许特定来源)。

要在 React、Vue 和 Svelte 中使用 giscus,请查看 giscus 组件库

迁移

如果你曾经使用过其它利用 GitHub Issue 的评论系统(如 utterancesgitalk),你可把已有的 issue 转换成 discussion。转换后,只要确保 discussion 标题与页面的映射关系正确,giscus 就会自动使用这些 discussion。

正使用 giscus 的网站

贡献

请查看 CONTRIBUTING.md

试一试 👇👇👇

Powered by Vercel