Gitment评论功能接入踩坑教程

简介: 前言之前接入的评论功能,都因为各种原因被放弃了,今天从新计划接入评论功能,所以就在了今天这篇文章。评论模块多说 - 最多用户使用的评论,但遗憾2017年6月将暂定服务;不建议新用户使用,但为旧用户保留,也感谢多说一路的陪伴;网易云跟帖 - 网易提供的评论组件,功能比较简单,性能优秀;管理后台在查询上还不算特别智能,但足够普通用户使用;畅言 - 搜狐提供的评论组件,功能丰富,体验优异;但必须进行域名备案。

前言

之前接入的评论功能,都因为各种原因被放弃了,今天从新计划接入评论功能,所以就在了今天这篇文章。

评论模块

  • 多说 - 最多用户使用的评论,但遗憾2017年6月将暂定服务;不建议新用户使用,但为旧用户保留,也感谢多说一路的陪伴;
  • 网易云跟帖 - 网易提供的评论组件,功能比较简单,性能优秀;管理后台在查询上还不算特别智能,但足够普通用户使用;
  • 畅言 - 搜狐提供的评论组件,功能丰富,体验优异;但必须进行域名备案。只要域名备过案就可以通过审核。
  • Disqus - 国外使用较多的评论组件。万里长城永不倒,一枝红杏出墙来,你懂的。

以上评论模块应该大家都知道,多说和网易云跟帖没有了,畅言要备案,对于对于挂靠在GitHub的博客非常的不友好,放弃!Disqus,不希望自己的博客,可以不分国界!也放弃!

所以,将是我们要介绍的Gitment!

Gitment评论模块

Gitment is a comment system based on GitHub Issues, which can be used in the frontend without any server-side implementation.

Gitment 基于 GitHub Issues 的评论系统。支持在前端直接引入,不需要任何后端代码。可以在页面进行登录、查看、评论、点赞等操作,同时有完整的 Markdown / GFM 和代码高亮支持。尤为适合各种基于 GitHub Pages 的静态博客或项目页面。

想了解具体示例,可以点击查看官方Demo Page:Gitment Demo

具体的接入我就不在这里说了,本文末有参考链接大家可以去了解学习,主要是说一下其中的坑点。

Gitment坑点小结

1、owner: 'Your GitHub ID'

owner: '你的 GitHub ID',
可以是你的GitHub用户名,也可以是github id,建议直接用GitHub用户名就可以。

2、repo: 'The repo to store comments

repo: '存储评论的 github repo'
这个是你要存储评论内容的仓库名,可以与博客下的仓库,也可以新建一个仓库专门存储评论内容的。

3、Error: Not Found问题

owner或者repo配置错误了,注意名字和仓库名字的大小写。

4、Error: Comments Not Initialized
  • 在注册OAuth Application这个步骤中,给Authorization callback URL指定的地址错了
  • 还没有在该页面的Gitment评论区登陆GitHub账号

如果还是不行,可以参考另一个情况 Error: Comments Not Initialized · Issue #95 · imsun/gitment

5、Error:validation failed

issue的标签label有长度限制!labels的最大长度限制是50个字符。

id: '页面 ID', // 可选。默认为 location.href

这个id的作用,就是针对一个文章有唯一的标识来判断这篇本章。

在issues里面,可以发现是根据网页标题来新建issues的,然后每个issues有两个labels(标签),一个是gitment,另一个就是id。

所以明白了原理后,就是因为id太长,导致初始化失败,现在就是要让id保证在50个字符内。

对应配置的id为:

id: '<%= page.title %>'

如果用网页标题也不能保证在50个字符!

最后,我用文章的时间,这样长度是保证在50个字符内,完美解决!(避免了文章每次更新标题或路径时,会重新创建一个issue评论的问题。)

id: '<%= page.date %>'
6、gitment的汉化

只需到模板里将原来定义CSS和JS的那两行改成:

<link rel="stylesheet" href="https://billts.site/extra_css/gitment.css">
<script src="https://billts.site/js/gitment.js"></script>

即可。来源:https://github.com/imsun/gitment/issues/104

7、所有文章一键初始化评论

配置正确的文章,第一次显示,提示还没有初始化:


img_92b1c0faa4e6226f7883e40cdee26158.png
0225-Error Comments Not Initialized.png

文章作者需要登陆GitHub授权后,会显示初始化按钮(注意,不要多点按钮,否则issues出现多条一样的):


img_9968e420cc4ec11f4b9ae23e7b90197e.png
0225-Initialize Comments.png

点击初始化按钮后,如果正常就会出现:


img_7a22b70d9303da3cd2ad3a2f61046723.png
0225-No Comment Yet.png

关于自动初始化所有文章的功能,到本文编写时,还没有一个完善的解决方法,就是用脚本来执行自动化,有需要的可以详细了解:https://github.com/imsun/gitment/issues/5

8、请保持克制,切勿滥用。

作者提醒使用本项目的用户,请保持克制,切勿滥用。详见 Gitment:使用 GitHub Issues 搭建评论系统

9、订阅issue

issue订阅,有新评论时就可以通过邮件提醒,这个功能是把双刃剑,因为有些垃圾订阅邮件骚扰,大家看着用吧。

总结

Gitment目前来说,已经解决了一个博客简单的评论功能,点赞 / 有完整的 Markdown / GFM 和代码高亮支持!

通过Gitment至少可以证明一点,生产力的发展有无限可能,环境的限制,会有的各种奇异的想法,或者奇异的东西出现,Gitment就是一个完美的证明,充分解决了一个简单博客的评论功能。另一方面,与国内的生活要求希望大家能够遵守规则,让GitHub和Gitment在我们生活中快乐成长!

参考引用


注:本文首发于 iHTCboy's blog,如若转载,请注明来源。

目录
相关文章
|
4月前
怎么使用零代码平台,在线搭建一套应用系统 — 敲敲云免费
怎么使用零代码平台,在线搭建一套应用系统 — 敲敲云免费
41 0
|
小程序 JavaScript 前端开发
小程序云开发全套实战教程(最全)
小程序云开发全套实战教程(最全)
129 0
|
运维 安全 Linux
【运维知识进阶篇】手把手教你搭建OpenVPN(保姆级教程)(一)
【运维知识进阶篇】手把手教你搭建OpenVPN(保姆级教程)
10234 1
|
运维 Linux 网络安全
【运维知识进阶篇】手把手教你搭建OpenVPN(保姆级教程)(二)
【运维知识进阶篇】手把手教你搭建OpenVPN(保姆级教程)(二)
5301 0
|
前端开发 安全 数据挖掘
点赞做任务系统如何开发?[点赞做任务系统模式开发搭建流程]
点赞做任务系统如何开发?[点赞做任务系统模式开发搭建流程]
|
Android开发
动手开发了一款微信插件,这也太好用了吧
动手开发了一款微信插件,这也太好用了吧
|
前端开发 JavaScript 应用服务中间件
前端网关踩坑实践
在后端微服务中,常见的通常会通过暴露一个统一的网关入口给外界,从而使得整个系统服务有一个统一的入口和出口,收敛服务;然而,在前端这种统一提供网关出入口的服务比较少见,常常是各个应用独立提供出去服务,目前业界也有采用微前端应用来进行应用的调度和通信,其中nginx做转发便是其中的一种方案,这里为了收敛前端应用的出入口,项目需要在内网去做相关的部署,公网端口有限,因而为了更好接入更多的应用,这里借鉴了后端的网关的思路,实现了一个前端网关代理转发方案,本文旨在对本次前端网关实践过程中的一些思考和踩坑进行归纳和总结,也希望能给有相关场景应用的同学提供一些解决方面的思路
204 1
|
Java 应用服务中间件 网络安全
微信公众号开发:对接本地开发环境【内网穿透】
微信公众号开发:对接本地开发环境【内网穿透】
186 0
|
存储 NoSQL Java
GoFrame避坑指南和实践干货(2)
用GoFrame已经开发了一段时间,今天为大家分享避坑指南和实践干货。这些坑并不是框架设计者的问题,更多的是我作为初学者的各种摸石头过河
212 0
GoFrame避坑指南和实践干货(2)
|
存储 Java 关系型数据库
从零到完成安卓项目实战【安卓端+后端】
因为平时自己喜欢打篮球,那就开发一个篮球相关的系统吧:NBA安卓系统。
172 0
从零到完成安卓项目实战【安卓端+后端】