本项目支持多种评论系统,你可以在 site.config.ts 配置文件中选择其中一种进行配置。评论功能将自动出现在以下页面:
- 博客详情页
- 随笔页
- 项目页
- 书籍页
- 友链页
- 关于页
新版本 (推荐):在 site.config.ts 配置文件中统一配置
旧版本 (仍支持):通过环境变量配置,但建议迁移到配置文件方式
基于 GitHub Discussions 的评论系统,完全免费且功能强大。
优点:
- 完全免费
- 基于 GitHub,无需额外服务
- 支持表情回应
- 支持深色模式
- 数据完全由你掌控
配置步骤:
- 确保你的 GitHub 仓库是公开的
- 在仓库中启用 Discussions 功能
- 访问 Giscus 官网
- 填写你的仓库信息,获取配置参数
- 在
site.config.ts文件中配置:
export const siteConfig = {
// ... 其他配置
comments: {
enabled: true,
provider: "giscus",
giscus: {
repo: "your-username/your-repo",
repoId: "your-repo-id",
category: "General",
categoryId: "your-category-id",
mapping: "pathname",
theme: "preferred_color_scheme",
lang: "zh-CN",
loading: "lazy",
reactionsEnabled: true,
emitMetadata: false,
inputPosition: "bottom",
},
// 其他评论系统配置保持空白即可
gitalk: { /* ... */ },
valine: { /* ... */ },
waline: { /* ... */ },
},
// ... 其他配置
};基于 GitHub Issues 的评论系统。
优点:
- 基于 GitHub Issues
- 轻量级
- 支持 Markdown
缺点:
- 需要访客登录 GitHub
- 每个页面会创建一个 Issue
配置步骤:
- 在 GitHub 创建一个 OAuth App:
- 访问 GitHub Settings > Developer settings > OAuth Apps
- 点击 "New OAuth App"
- 填写应用信息,注意 Authorization callback URL 填写你的网站域名
- 获取 Client ID 和 Client Secret
- 在
site.config.ts文件中配置:
comments: {
enabled: true,
provider: "gitalk",
gitalk: {
clientID: "your-client-id",
clientSecret: "your-client-secret",
repo: "your-repo",
owner: "your-username",
admin: ["admin1", "admin2"],
language: "zh-CN",
perPage: 10,
distractionFreeMode: false,
pagerDirection: "last",
createIssueManually: false,
enableHotKey: true,
},
// 其他配置...
}基于 LeanCloud 的评论系统。
优点:
- 无需登录即可评论
- 支持邮件通知
- 支持头像显示
缺点:
- 需要注册 LeanCloud 账号
- 国际版可能访问较慢
配置步骤:
- 注册 LeanCloud 账号
- 创建新应用
- 在应用设置中获取 App ID 和 App Key
- 在
site.config.ts文件中配置:
comments: {
enabled: true,
provider: "valine",
valine: {
appId: "your-app-id",
appKey: "your-app-key",
placeholder: "请输入评论内容...",
avatar: "mp",
meta: ["nick", "mail", "link"],
pageSize: 10,
lang: "zh-CN",
visitor: true,
highlight: true,
recordIP: false,
enableQQ: true,
requiredFields: ["nick", "mail"],
},
// 其他配置...
}Valine 的增强版,功能更加丰富。
优点:
- 支持多种部署方式
- 功能丰富(点赞、回复、管理后台等)
- 性能更好
配置步骤:
- 部署 Waline 服务端(推荐使用 Vercel)
- 参考 Waline 官方文档
- 获取服务器地址后,在
site.config.ts文件中配置:
comments: {
enabled: true,
provider: "waline",
waline: {
serverURL: "https://your-waline-server.vercel.app",
placeholder: "请输入评论内容...",
avatar: "mp",
meta: ["nick", "mail", "link"],
pageSize: 10,
lang: "zh-CN",
visitor: true,
highlight: true,
recordIP: false,
enableQQ: true,
requiredFields: ["nick", "mail"],
},
// 其他配置...
}评论系统根据 site.config.ts 中的配置有以下几种行为:
comments: {
enabled: false, // 不显示任何评论相关内容
// 其他配置会被忽略
}comments: {
enabled: true,
provider: "giscus",
giscus: {
repo: "", // 配置不完整
// ...
}
}会显示"评论功能配置不完整"的提示信息。
comments: {
enabled: true,
provider: "giscus",
giscus: {
repo: "owner/repo",
repoId: "repo_id",
// ... 完整配置
}
}正常显示评论系统。
"giscus"- 使用 Giscus 评论系统"gitalk"- 使用 Gitalk 评论系统"valine"- 使用 Valine 评论系统"waline"- 使用 Waline 评论系统
- 配置文件优先:优先使用
site.config.ts中的配置 - 环境变量兜底:如果配置文件中没有正确配置,会回退检查环境变量
评论组件已经适配了网站的深色模式和整体设计风格。如果需要进一步自定义,可以:
- 修改
components/Comments.tsx中的样式类名 - 在
globals.css中添加自定义 CSS - 针对特定评论系统的样式进行覆盖
- Giscus 推荐:对于大多数个人博客,推荐使用 Giscus,因为它完全免费且功能强大
- 配置方式:现在推荐在
site.config.ts中配置,但仍支持环境变量方式(配置文件优先级更高) - 敏感信息:如使用环境变量,记得将
.env.local文件添加到.gitignore中,避免泄露敏感信息 - 测试:在生产环境部署前,先在本地测试评论功能是否正常
- 备份:建议定期备份评论数据
Q: 评论不显示怎么办?
A: 检查 site.config.ts 中的评论配置是否正确,确保 enabled: true 且提供商配置完整,查看浏览器控制台是否有错误信息。
Q: 可以切换评论系统吗? A: 可以,但注意不同系统的数据不互通,需要考虑数据迁移问题。
Q: 评论数据在哪里? A:
- Giscus/Gitalk: GitHub
- Valine: LeanCloud
- Waline: 你的服务器或托管平台
Q: 如何管理评论? A:
- Giscus: 在 GitHub Discussions 中管理
- Gitalk: 在 GitHub Issues 中管理
- Valine: 在 LeanCloud 控制台管理
- Waline: 使用 Waline 管理后台
有其他问题,请查看对应评论系统的官方文档。