美文网首页Hexo(+NexT)
Hexo添加Gitalk评论插件

Hexo添加Gitalk评论插件

作者: Erbiduo | 来源:发表于2017-10-28 22:34 被阅读2294次

    好多“红杏“类软件都扑街了,而且disqus在国内的加载速度那个惨啊,所以转战Gitalk试试~

    1.安装

    Gitalk提供了两种方式:

    1. 直接引入
    <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
      
    <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
    
    1. npm安装
    npm i --save gitalk
    
    import 'gitalk/dist/gitalk.css'
    
    import Gitalk from 'gitalk'
    

    鉴于我懒的程度直接选择第一种了TAT。

    2.使用

    新建仓库

    1. Github上新建一个仓库,命名随便只要记得住,这里就不赘述了,详细操作查看Hexo博客搭建
    1. 创建OAuth Application,没有的小伙伴请戳这里
    2

    完成后会生成相应的clientIDandclientSecret

    3

    修改主题文件

    1. 这里以next主题为例,不同的主题目录和模板引擎不同,可以自己修改哈,修改next主题配置文件_config.yml,于dikqus上方,添加字段:
    # Gitalk
    gitalk: 
      enable: true    #用来做启用判断可以不用
      clientID: 'your clientID'    #上面生成的往这里怼
      clientSecret: 'your clientSecret'   #同上
      repo: Blog_comments    #仓库名称
      owner: erbiduo    #github用户名
      admin: erbiduo
      distractionFreeMode: true
    
    1. 找到next/layout/_third-party/comments文件夹,新建gitalk.swig文件,代码如下:
    {% if not (theme.duoshuo and theme.duoshuo.shortname) and not theme.duoshuo_shortname %}
      
      {% if theme.gitalk.enable %}  //_config.yml文件若没有添加enable: true可删除该判断
    
        {% if theme.gitalk.distractionFreeMode  %}      
          <link rel='stylesheet' href="https://yiyeti.cc/usr/themes/veryse/css/gitalk.css">
          <script src="https://yiyeti.cc/usr/themes/veryse/css/gitalk.min.js"></script>
          <script type="text/javascript">
              var gitalk = new Gitalk({
                clientID:  '{{theme.gitalk.clientID}}', 
                clientSecret: '{{theme.gitalk.clientSecret}}',
                id: window.location.pathname,
                repo: '{{theme.gitalk.repo}}', 
                owner: '{{theme.gitalk.owner}}', 
                admin: '{{theme.gitalk.admin}}', 
                distractionFreeMode: '{{theme.gitalk.distractionFreeMode}}',
              })
              gitalk.render('gitalk-container')
          </script>
        {% endif %}
    
      {% endif %}
    {% endif %}
    
    1. 同目录下在index.swig文件末尾添加:
    {% include 'gitalk.swig' %}
    
    1. 下步搞起,next/layout/_partials文件夹下,找到comments.swig文件,添加代码:
    {% elseif theme.gitalk.distractionFreeMode %}  
      <div id="gitalk-container"></div>
    {% endif %}
    

    哦了,不过Gitalk在移动端属于隐形状态。想看Gitalk效果可以戳右边哈-杂谈博客

    看不见

    相关文章

      网友评论

      • kbyyd24:不是很清楚 `OAuth Application` 的机制,如果暴露了 client ID 和 client Secret ,会不会有安全问题?
      • scue:文章总体很不错哈~
      • scue:要是可以将clientSecret设定为读取Shell环境变量就更好了~
      • 0xC00005:看起来你的blog的图片好像挂掉了【还是我没有加载出来?】
        Erbiduo:@0xC00005 握爪
        0xC00005:@Erbiduo 我也是哈哈哈,就当是另一个简书了
        Erbiduo:我转换了图片格式最好用chrome看 不过好久没更新了 一直加班 555
      • Gemma_b2ca:您好,为什么我的gitalk上面有显示Error:Not Found,可以麻烦您帮我看看嘛? 博客地址https://zhangmingemma.github.io
        果壳里的:@漠北空城 该如何解决呢
        漠北空城:https://github.com/viosey/hexo-theme-material/issues/622
        因为你的gitalk的id生成策略生成的id太长了,导致无法创建issue,也就产生了Error:Not Found错误
        Erbiduo:@Gemma_b2ca 如果评论没问题的话可以考虑直接CSS隐藏gt-error算了2333 没有很深入的研究这个只是蛮用
      • HiCloudKK:你好,请问博主,这<link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css";>

        <script src="https://unpkg.com/gitalk/dist/gitalk.min.js";></script>
        两行在哪里配置。

        如果以npm方式安装配置的话,这两行又在哪里配置呢?
        import 'gitalk/dist/gitalk.css'

        import Gitalk from 'gitalk'
        漠北空城:我的next主题,是在:next\layout\_third-party\comments\gitalk.swig下引入的脚本和样式,
        Erbiduo:@Leo_25f2 刚刚看到 npm的话我没试过(懒的呦) 可以在index模板文件里面直接引入(简单粗暴不过你的记得放在哪里) 不同模板放的地方不一样框架都不一样2333
      • Erbiduo:对了 补充下,最好全站hppts哈,要不没有的地方点击会跑到首页。

      本文标题:Hexo添加Gitalk评论插件

      本文链接:https://www.haomeiwen.com/subject/qdkepxtx.html