Solo 集成 Gitalk 评论系统

本贴最后更新于 1587 天前,其中的信息可能已经时移世易

Solo 评论组件

在 v4.3.0 发布后,因为评论系统的问题给大家造成了很多不便,非常抱歉。通过大家的讨论,我们决定在 v4.3.1 中解决该问题。

解决方案是引入 Gitalk 作为默认评论组件,它会将评论数据保存到用户自己的 GitHub 仓库 issues 里。在集成 Gitalk 后,Solo 评论功能方面总体的业务逻辑如下:

  • 皮肤的文章模板中内置 <div id="gitalk-container"></div>
  • 用户通过配置页头、页脚集成 Gitalk 评论组件
  • 文章推送到社区后,系统会自动外加 VComment 评论组件

也就是说,最多会出现两块评论区:Gitalk 和 VComment,这样可以方便不同访客评论文章:

  • 没有黑客派账号的访客可通过 GitHub 登录评论,不必注册黑客派
  • 有黑客派账号的访客能可通过社区登录评论

由访客自由选择,在最大程度上方便访客和博主进行交互,于此同时,我们也能通过 GitHub 或者黑客派对恶意评论账号进行追溯。

配置方式

  1. 创建 GitHub OAuth 应用 https://github.com/settings/applications/new

    • Application name 建议填成 solo-blog-gitalk
    • Homepage URLAuthorization callback URL 都填成线上的博客 URL
  2. 创建一个公开仓库 solo-blog 用于保存评论数据(该仓库也可以用来备份文章,详见 solo-blog 仓库同步功能回来了!

  3. 在 Solo 后台的偏好设定 - 信息配置中配置页头和页脚

    页头:

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css">
    <script src="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js"></script>
    

    页脚:

    <script>
      document.addEventListener("DOMContentLoaded", function (event) {
        if (Label.articleId) {
          const gitalk = new Gitalk({
            clientID: 'OAuth 应用那里可以找到',
            clientSecret: 'OAuth 应用那里可以找到',
            repo: 'solo-blog',
            owner: '你的 GitHub 用户名',
            admin: ['你的 GitHub 用户名'],
            id: Label.articleId,
            distractionFreeMode: false
          })
    
          gitalk.render('gitalk-container')
        }
      })
    </script>
    
  4. 配置完成后后,访问文章就可以看到集成 Gitalk 后的效果了,博主通过集成的 Gitalk 登录后,solo-blog 仓库上会自动创建和该文章对应的一个 issue 用来保存评论数据

细节事项

  • Gitalk 配置项 id 我们使用的是文章 id,Gitalk 创建 issue 时会使用该 id 作为 issue 的 Label,使用 id 的好处是 id 唯一,且长度可控,减少出错的可能性;另外,只要 id 不变,即使迁移博客后也可以关联到之前的评论,不会丢失数据
  • Gitalk 可能会因为网络问题(比如 GFW)导致不够稳定,如果使用过程中出现报错,请先到 Gitalk Issues 上寻找解决方案

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • barryzpc 1

    谢谢,这个功能真的是太好了。辛苦了 👍

  • JssDream 1

    😋 可以的

  • gitalk 可以哦 很棒

  • lizhongyue248 1

    =-= 前几天刚说 solo 再见,没想到那么快真的再见了。。。

    1 回复
  • telami

    哈哈,大型真香现场

  • wangdaowei
    该回帖仅作者和楼主可见
    1 回复
  • 88250

    目前仅 Docker 镜像包含了此项改进,使用发布包的话要等 v4.3.1 发布。

    1 回复
  • 让俺试试你的新特性

  • 我怎么测试一下自动备份的这个功能

    1 回复
  • 88250 2 评论

    有什么问题么?

    没啥问题,gt 能用,我想让他自动备份文章到 solo-blog 里,怎么能测一下能不能自动备
    someone27889
    @ferried Gitalk 只是用于保存评论,备份文章请看 https://hacpai.com/article/1589995001682
    88250
  • wangdaowei
    该回帖仅作者和楼主可见
  • wangdaowei
    该回帖仅作者和楼主可见
    1 回复
  • 88250

    应该可以的,试试看。

  • qichen 1 评论

    总是报错 Error: Network Error 很烦 暂时不用评论了

    1 回复
    网络不通
    someone27889
  • 88250

    文章初始化过 issue 后这个报错会比较少出现。

    1 回复
  • image.png
    每一篇都需要初始化吗?我发现用 github 账号登录也不能保证所有文章可以自动创建 issues😳

    1 回复
  • 88250

    似乎是要手动初始化,具体可以找下 Gitalk issues 上的讨论研究一番。

    1 回复
  • 火钳刘明

  • goodbye

    现在 gittalk 还能正常用么?gitment 这货已经废了。

  • iTanken

    PJAX 切换页面后 Gittalk 不显示

  • Jireh 1 赞同

    image.png
    有个问题 页面检索下 就暴露了 github oauth 的 id 和 secret 啊

    1 回复
  • 88250

    Gitalk 是这样的,但是应该风险不大,请参考它的项目介绍和相关讨论。

  • sunpi

    我的配置之后,什么显示也没有,评论去这块儿界面啥也没有

  • jianzh5

    我的配置之后,什么显示也没有,评论去这块儿界面啥也没有?
    看到了 div 的 id

  • qingchun94

    Error: Not Found.

  • yangdi0518

    Error: Not Found.

  • xmqaq

    评论功能没问题,实际点进去已经有评论,但是文章首页显示为 0 评论

    1 回复
  • 88250

    使用 Gitalk 评论系统的话没有统计哦。

    1 回复
  • xmqaq

    D 神还有什么推荐的评论系统 ❤️

  • jalins-blog

    gitalk 设置后是繁体字,有什么办法可以设置为简体中文吗?

    image.png

  • yisheng 1 赞同

    每次打开博客,要再刷新一次页面才能评论

请输入回帖内容 ...