评论系统
作者:Goose 和 Quill
3 分钟阅读 257 字
目录
Goosequill 目前通过 siteConfig.comments 支持两个评论提供商:
giscuswaline
你应该一次只配置一个提供商。
配置结构
在 src/config.ts 中设置 comments:
comments: { provider: "giscus" | "waline",}Giscus
最小示例
comments: { provider: "giscus", repo: "owner/repo", repoId: "R_kgDOExample", category: "Announcements", categoryId: "DIC_kwDOExample",}参数
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
provider | "giscus" | 是 | — | 选择 Giscus |
repo | string | 是 | — | GitHub 仓库,格式为 owner/name |
repoId | string | 是 | — | Giscus 仓库 ID |
category | string | 是 | — | GitHub Discussions 分类名称 |
categoryId | string | 是 | — | GitHub Discussions 分类 ID |
mapping | "pathname" | "url" | "title" | "og:title" | "specific" | "number" | 否 | "pathname" | 页面如何映射到讨论主题 |
strict | "0" | "1" | 否 | "0" | 映射是否必须严格匹配 |
reactionsEnabled | "0" | "1" | 否 | "1" | 在评论 UI 中启用反应 |
emitMetadata | "0" | "1" | 否 | "0" | 将讨论元数据发射到页面 |
inputPosition | "top" | "bottom" | 否 | "top" | 评论框位置 |
theme | string | 否 | 仅回退 | 浅色和深色共用的主题回退 |
theme_light | string | 否 | "light" | 浅色模式下使用的 Giscus 主题 |
theme_dark | string | 否 | "dark" | 深色模式下使用的 Giscus 主题 |
lang | string | 否 | "en" | Giscus UI 语言 |
loading | "lazy" | "eager" | 否 | "lazy" | 脚本加载策略 |
说明
repo、repoId、category和categoryId是 Goosequill 中的硬性要求。- Goosequill 会将 Giscus 主题与站点的
data-theme状态和系统颜色方案同步。 - 如果省略
theme_light或theme_dark,Goosequill 会回退到theme,然后回退到light或dark。
Waline
最小示例
comments: { provider: "waline", serverURL: "https://your-waline-server.example.com",}参数
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
provider | "waline" | 是 | — | 选择 Waline |
serverURL | string | 是 | — | Waline 服务器端点 |
lang | "zh" | "zh-CN" | "zh-TW" | "en" | "en-US" | "jp" | "jp-JP" | "pt-BR" | "ru" | "ru-RU" | "fr-FR" | "fr" | "vi" | "vi-vn" | "es" | "es-MX" | 否 | "en" | Waline UI 语言 |
emoji | string[] | false | 否 | false | 表情来源列表,或禁用表情 |
meta | ("nick" | "mail" | "link")[] | 否 | ["nick", "mail", "link"] | 表单中显示的输入字段 |
requiredMeta | ("nick" | "mail" | "link")[] | 否 | [] | 变为必填的字段 |
login | "enable" | "disable" | "force" | 否 | "enable" | 登录模式 |
wordLimit | number | [number, number] | 否 | 0 | 文字长度限制 |
pageSize | number | 否 | 10 | 每页评论数 |
search | boolean | 否 | false | 在面板中启用管理搜索 |
reaction | boolean | string[] | 否 | false | 启用反应或提供自定义反应图片 |
pageview | boolean | 否 | false | 启用页面浏览量计数器 |
noCopyright | boolean | 否 | false | 隐藏 Waline 版权 |
noRss | boolean | 否 | false | 禁用 RSS 条目输出 |
说明
- Goosequill 目前使用
window.location.pathname作为 Waline 讨论的主题键。 - 站点主题会转换为 Waline 的
dark布尔值,并在主题模式更改时更新。 - 除了
provider之外,serverURL是唯一的硬性要求。
推荐的起点
如果你想要最小的工作配置:
- 当你的内容和身份已经围绕 GitHub Discussions 时使用 Giscus。
- 当你想要自托管后端和更多表单级控件时使用 Waline。