Hexo接评论系统记录

之前因为建站是为了当笔记本,就没有搞些花里胡哨的社交属性的功能;后来无意间看到过一个老哥在挂载该博客的仓库留言过,后来一想,还是加一个吧,方便实时看到一些可能不太会有的留言。。

选择


  • 以上都是觉得很不错的选择的评论系统,因为是静态博客,都需要借助其他平台来存数据;gitalk是使用仓库的issue来存储,Valine是通过LeancloudWaline支持的就更多了;来必力用的应该是自己的服务器存储;
  • 最后选了gitalk,主要考虑到留言的数量不会很多,其次博客也是挂载github,不想在接入一个平台来搞相关的(目前),用issue,因为github是每天都会上去的,会很直观的可以看到,所以还是方便

接入

具体使用很简单,文档都有描述,这里记录一下Hexo中Next主题里如何使用

  • 找到Next下负责渲染文章的模板文件:themes->layout->_macro->post.swig
  • 中间嵌入放评论的容器代码就好

关于初始化评论失败

原因是gitalk是借助github的接口来存取仓库issues的数据的,然后每个文章对应仓库的一个issues,但是这个长度不能超过50个字符,不然就会导致初始化失败并返回,422错误,这是github的限制;官方是使用location.pathname来作为id的

  • 解决
  • 思路就是把id缩短,通过md5转义下就好
  • 直接在模板引擎引入对应md5的cdn就好

遗留问题

因为是通过github的接口在配置的仓库创建对应的issue来保存每篇文章的评论,这就涉及到谁创建的问题,gitalk也提供了对应的配置选项,这就带来了,每篇文章需要该仓库权限拥有者去初始化该文章对应的issue这一操作,这就很繁琐,计划写个小服务来解决一下这个问题

目前思路

  • 使用node,在github ci部署后,在跑一下node服务
  • 服务主要就是去自动请求一下github的接口,自动初始化一下新文章的评论区
  • 写好在抛出来…

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!