首页 > 其他分享 >Hexo 评论系统

Hexo 评论系统

时间:2023-04-09 21:02:24浏览次数:46  
标签:repo GitHub Hexo 系统 giscus 评论 id

Hexo 评论系统

上一篇文章博客搭建教程搭建了一个博客的基本框架,但是没有解决博客评论问题,本文填充一下这部分欠缺。

Hexo 博客系统是静态博客,本身无法支持评论等动态的功能,但是可以通过第三方的评论系统让 Hexo 博客支持评论功能。常见的评论系统包括:Valine、Disqus、Gitment、Giscus 等,本文主要介绍 Giscus 的使用。

giscus 简介

giscus是由 GitHub Discussions 驱动的评论系统。让访客借助 GitHub 在你的网站上留下评论和反应,该项目受 utterances 启发。包括以下特性:

  • 开源;
  • 无跟踪,无广告,永久免费;
  • 无需数据库,全部数据均储存在 GitHub Discussions 中;
  • 支持自定义主题;
  • 支持多种语言;
  • 高度可配置;
  • 自动从 GitHub 拉取新评论与编辑;
  • 可自建服务;

运作原理

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

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

在 Hexo 中配置 giscus

Step 1:新建 Github 仓库,确保:

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

Step 2:Hexo 配置

在你的 Hexo 博客目录中执行以下命令,安装 hexo-next-giscus 插件。

npm install hexo-next-giscus --save

然后在 Hexo 的 _config.yml 配置文件添加如下内容:

giscus:
  enable: true
  repo: # Github repository name
  repo_id: # Github repository id
  category: # Github discussion category
  category_id: # Github discussion category id
  # Available values: pathname | url | title | og:title
  mapping: pathname
  # Available values: 0 | 1 
  reactions_enabled: 1
   # Available values: 0 | 1 
  emit_metadata: 1
  # Available values: light | dark | dark_high_contrast | transparent_dark | preferred-color-scheme
  theme: light
  # Available values: en | zh-C
  lang: en
  # Available value: anonymous
  crossorigin: anonymous

或者在主题的配置文件 _config.themename.yml 中对应项添加即可,例如 butterfly 主题:

giscus:
 repo:    # uername/repo_name
 repo_id: 
 category_id: 
 theme:
  light: light
  dark: dark
 option:

repo_id是托管博客的代码仓库的一个标识值,category是该仓库Issues里面对应的分类(或者说是主题)。一个仓库默认具有下面几个分类:Announcements、General、Ideas、Q&A、Show and tell。这里我选择General作为评论的分类。最后的category_id类似repo_id也是对该分类的一个标识值。

如何快速的获取这些数据呢,可以通过GitHub官方的GraphQL API Explorer查询到。这里把查询所用的语句进行记录。

query {
  repository (name: "repo_name", owner: "owner_name")  {
    id
    discussionCategories (first: 5) {
      nodes {
        name
        id
      }
    }
  }
}

然后将查询数据填入对应项即可。

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

参考资料

[1] Giscus

[2] Giscus的基础设置

[3] How does one find out one's own Repo ID?

标签:repo,GitHub,Hexo,系统,giscus,评论,id
From: https://www.cnblogs.com/fhhw/p/17301034.html

相关文章

  • ELK日志分析系统
    ELK日志分析系统  一、ELK概述  1、ELK日志分析系统  ELK是由Elasticsearch、Logstash、Kiban三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于Elastic.co公司名下,故有此简称。  2.、ELK中日志处理步骤  1.将日志进行集中化管......
  • SQL基础操作_3_数据字典(涵盖SQL Server、Oracle、Mysql常见系统数据字典)
    目录数据库元数据查询7.5.1列出模式中所有的表7.5.2列出所有的数据库7.5.3列出给定表的基本信息7.5.4列出给定表的索引信息7.5.5列出给定表的主键、外键约束7.5.6列出给定表的外键引用7.5.7列出给定表的检查约束7.5.8列出给定表的默认约束7.5.9列出给定表的所有约束7.5.10......
  • 【 2023 】近期一些编译调试开发 Android7&9 系统的笔记( h616 / imx8m / rk3399 )
    主要就记录一下自己食用过程中遇到的一些问题吧,板子有新有旧,但都差不多。待整理呢。https://stackoverflow.com/questions/67363030/rebuild-android-code-with-error-ssl-error-when-connecting-to-the-jack-server-thttps://note.qidong.name/2017/07/disable-jack-server/......
  • 系统报告
    电厂的数据种类繁多,日常工作中还需要审核多种多样的质检报告,而目前针对与这些报告大多采用人工手抄的方式进行统计,这常会导致一些不必要的问题,例如,采用人工手抄方式常因为抄错而带来繁琐的二次审核,进而增加工作量。其次随着信息化技术的发展,此种方法也不利于对数据的利用及分析。......
  • ELK 日志分析系统的部署
    文章目录一、ELK前言1.1需要收集的日志1.2日志收集后,如何可视化1.3日志收集可视化后,怎么使用1.4要怎么收集日志二、ELK简介2.1ElasticSearch介绍2.2ElasticSearch核心概念2.2ELK里面有哪些组件2.3ELK的工作原理三、ELK日志分析系统集群部署3.1ELKElasticsearch集群部......
  • ELK日志分析系统
    一、ELK简介1、ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。●ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticse......
  • ELK日志分析系统
    一、ELK日志分析系统简介1、日志服务器的优缺点优点:提高安全性集中存放日志缺点:对日志的分析困难2、ELK日志简化分析的管理工具,由Elasticsearch(ES)、Logstash、Kibana三个开源工具组成,官方网站:https://www.elastic.co/productsES(nosql非关数据库):存储功能和索引......
  • 即时通讯系统之TeamTalk
    TeamTalk是蘑菇街开源的一款企业办公即时通信软件,最初是为自己内部沟通而做的IM工具。备注:当前开源仓库已被删除。TeamTalk先前和网易泡泡有过版权纠纷,网易泡泡投诉TeamTalk从结构、通讯协议等诸多方面都是对网易泡泡的拷贝、修改和翻译而成。鉴于TeamTalk开发了Mac、Windows......
  • Linux系统目录与路径介绍
    HOME目录和工作目录ls命令的作用:以平埔的形式,展示当前工作目录(默认HOME目录)下的内容(文件或文件夹)Linux系统的命令行终端,在启动的时候,默认会加载当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容。HOME目录:每个Linux操作用户在Linux系统的个人账户目......
  • Ubuntu系统Flameshot使用问题
    Ubuntu系统Flameshot使用问题系统:Ubuntu22.04问题:使用Flameshot,每次都会先截取整个屏幕,提示需要先分享,再使用Flameshot的功能安装Flameshotsudoaptinstallflameshot先说解决方案开机用户登录时,右下角有设置桌面环境,默认是Ubuntu,修改为UbuntuonXorg问题使用Flame......