Skip to content

4. 基于github的评论系统 gitment

MichaelLu edited this page Dec 28, 2017 · 2 revisions

原理

Gitment评论系统基于github。通过你的github账户下某一个仓库来储存留言。

由于github的issue功能本身就与常规留言板功能高度类似,包括留言,点赞,@,markdown语法支持等等。

所以可以用github仓库的一个issue来对应博客中每篇文章的留言板块。

本主题中gitment的特色

通过修改源码,切实的实现了首页文章摘要中的评论数统计以及锚点跳转功能,稳定可靠。

实质上,使用的源码版本是 gitmint 而不是 gitment,而gitmint本身携带统计功能,但并不理想。 为了追求稳定性,已经将插件本地化,不追随新版。

下面介绍开启该评论系统相关功能的具体方法与具体设置。

配置

该配置位于主题配置文件 mellow/_config.yml

gitment:
  enable: false
  lazy: true
  owner: codefine
  repo: gitment
  oauth: 
    client_id: # client_id
    client_secret: # client_id
  perPage: 10
  • enable 是否开启。如 true 或者 false
  • lazy 是否让评论在打开页面的时候隐藏,然后通过按钮展开。如 true 或者 false
  • owner github账号。如 codefine
  • repo github仓库,必须是 owner 里所填账号下的某一个已经存在的仓库。如 gitment
  • parPage 分页依据,每页展示留言的最大数目。如 10
  • client_idclient_secret 是通过开启github相关功能来获取,下面介绍获取方法

client_id 和 client_secret 的获取方法

首先创建一个OAuth application应用,地址https://github.com/settings/applications/new

新建应用

创建结束后得到client_idclient_secret

获取key

client_idclient_secret 填入配置中,并确保 enable 设置为 true 后,配置工作完毕。

首页文章摘要中的评论数统计以及锚点跳转功能默认开启。

评论系统初始化

每篇文章必须进行评论系统初始化操作,不进行初始化是无法留言的。方法也很简单。

点击评论系统上的 initialize 按钮 -> 跳转至Github权限接入页 -> 输入账号密码确认接入 -> 初始化结束。

由于初始化过程存在网络传输,相应速度根据你的网速而不可控,所以请不要看没反应就猛戳初始化按钮,这样会造成创建多个同名issue,对后面的留言管理不友好。

为什么要初始化?

上面提到了一篇文章对应一个issue,但是github限制了issue的创建过程,目前来看,只能通过手动触发来创建。(在 gitment 原项目中发现了关于自动初始化的方案,由于比较麻烦,暂不考虑了)

留言管理

本主题的核心理念之一:完全控制。也就是说所有模块必须携带增 / 删 / 改的功能,从而规避某些不理想不情愿的情况发生。

但是这款评论系统基于的issue功能本身并不能删除,也就是说 不能删除issue只能关闭issue,所以并不能真正意义上的整体删除某篇文章的留言。

但是单独某条留言是完全可以实现增 / 删 / 改的功能。

所以如果有删除整篇文章留言的需求,请到对应的issue页面,逐条删除,望周知。