logo
0
0
WeChat Login
Huazie<huazie.lgh@gmail.com>
Mod: 添加模板引擎支持描述

Hexo Comments Giscus

NPM version Required Node.js version Required Hexo version License GitHub Repo stars

轻松集成 Giscus 评论系统到您的 Hexo 博客中,基于 GitHub Discussions 的现代化评论解决方案。

英文说明/English Documentation

功能特性

特性描述优势
GitHub Discussions基于 GitHub Discussions,无需数据库零维护成本,高可用性
安全可靠完全开源,无广告无追踪保护用户隐私,透明可信
主题切换支持亮色/暗色主题自动切换完美适配各种主题风格
响应式设计适配各种设备屏幕移动端友好的用户体验
即时加载支持懒加载和加载动画优化页面性能
多语言支持支持多种界面语言国际化友好
易于配置简单的 YAML 配置快速上手,灵活定制

快速开始

安装插件

# 1. 安装多评论系统核心插件(必需) npm install hexo-generator-comments --save # 2. 安装 Giscus 评论插件 npm install hexo-comments-giscus --save

提示hexo-comments-giscus 需要与 hexo-generator-comments 搭配使用 更多信息:hexo-generator-comments

配置指南

基本配置

在 Hexo 站点配置 _config.yml 或 主题配置 _config.yml_config.[theme].yml 中添加以下内容:

giscus: # 是否启用 Giscus 评论系统 enable: false # 是否显示加载动画 loading: true # GitHub 仓库,格式为 username/repo-name repo: your-username/your-repo-name # GitHub 仓库的唯一ID repo_id: your-repo-id # GitHub Discussions 分类名称 category: General # Discussions 分类的唯一 ID category_id: your-category-id # 指定 GitHub discussion 的匹配规则 mapping: pathname # 当 mapping 为 specific 时的特定术语 term: # 是否启用严格的标题匹配 strict: 0 # 是否启用主帖子上的反应 reactions_enabled: 1 # 是否输出 discussion 的元数据 emit_metadata: 0 # 亮色主题 theme: light # 暗色主题 dark: dark # 评论区的语言 lang: # 评论输入框的位置 input_position: bottom # 懒加载评论 data_loading: lazy

重要:请将配置中的占位符替换为您的实际 GitHub 仓库信息

配置选项详解

选项类型默认值必填描述
enableBooleanfalse是否启用 Giscus 评论系统
loadingBooleantrue是否显示评论加载动画
repoString-GitHub 仓库,格式:username/repo-name
repo_idString-GitHub 仓库的唯一ID
categoryString-GitHub Discussions 分类名称
category_idString-Discussions 分类的唯一 ID
mappingStringpathnameGitHub discussion 的匹配规则
termString-当 mapping 为 specific 时的特定术语
strictNumber0是否启用严格的标题匹配
reactions_enabledNumber1是否启用主帖子上的反应
emit_metadataNumber0是否输出 discussion 的元数据
themeStringlight亮色模式主题
darkStringdark暗色模式主题
langStringnavigator.language评论区的语言
input_positionStringbottom评论输入框的位置
data_loadingStringlazy懒加载评论

高级配置选项

mapping 映射方式

描述适用场景
pathname使用页面路径作为 discussion 标题推荐,适合大多数场景
url使用页面完整 URL 作为 discussion 标题需要包含域名信息时
title使用页面标题作为 discussion 标题希望 discussion 标题更友好
og:title使用页面 Open Graph 标题SEO 优化场景
specific使用特定术语作为标题自定义标识符

主题样式选项

主题名特点
light标准亮色主题
light_high_contrast高对比度亮色主题
light_protanopia红绿色盲友好亮色主题
light_tritanopia蓝黄色盲友好亮色主题
dark标准暗色主题
dark_high_contrast高对比度暗色主题
dark_protanopia红绿色盲友好暗色主题
dark_tritanopia蓝黄色盲友好暗色主题
dark_dimmed暗淡的暗色主题
preferred_color_scheme自动跟随系统主题
transparent_dark透明暗色主题
noborder_light无边框亮色主题
noborder_dark无边框暗色主题
noborder_gray无边框灰色主题
cobalt钴蓝主题
purple_dark紫色暗主题

语言选项

语言代码语言名称
zh-CN简体中文
zh-TW繁体中文
en英文
es-ES西班牙语
fr法语
ru俄语
......

支持的模板引擎

本插件支持所有使用以下模板引擎的 Hexo 主题:

模板引擎文件扩展名支持状态
EJS.ejs✅ 完全支持
Nunjucks.njk✅ 完全支持
JSX + Inferno.jsx✅ 完全支持

使用前提

在开始使用之前,请确保满足以下条件:

1. GitHub 仓库准备

  • 拥有一个 公开的 GitHub 仓库
  • 仓库已启用 Discussions 功能

2. 安装 Giscus App

  • 访问 Giscus GitHub App
  • 点击 "Install" 并选择您的仓库
  • 授权 Giscus 访问您的仓库

3. 获取配置参数

  • 访问 Giscus 官网
  • 按照指引获取 repo_idcategory_id 等参数

提示:Giscus App 只需要 Discussions 的读写权限,非常安全

工作原理

详细流程

  1. 页面加载:访问者打开页面,Giscus 脚本开始工作
  2. 搜索 Discussion:根据配置的 mapping 在指定仓库的 Discussions 中搜索相关讨论
  3. 显示评论:如果找到对应 Discussion,显示其中的评论
  4. 创建 Discussion:首次评论时,自动创建新的 Discussion
  5. GitHub 登录:访问者需要 GitHub 账号才能参与评论

系统要求

依赖版本要求说明
Node.js>= 14.0.0JavaScript 运行环境
Hexo>= 5.3.0静态站点生成器
GitHub 仓库公开仓库存储评论数据

相关链接

官方资源

Hexo 文档

相关插件

许可证

本项目基于 MIT 许可证开源。