hexo5--hexo辅助插件和第三方服务


title: hexo5--hexo辅助插件和第三方服务
date: 2017-10-25 12:15:08
categories: hexo建博
tags: hexo
copyright: true
keywords: hexo,next,插件,工具
comments: ture


添加RSS

效果图

1.png

实现方法

首先安装插件:

$ npm install --save hexo-generator-feed

打开博客根目录下的_config.yml 配置文件,末尾添加如下代码:

# Extensions
## Plugins: http://hexo.io/plugins/
plugins: hexo-generate-feed

打开皮肤目录下的_config.yml 配置文件,修改rss的属性值:

# Set rss to false to disable feed link.
# Leave rss as empty to use site's feed link.
# Set rss to specific value if you have burned your feed already.
rss: /atom.xml

重新生成博客。

评论插件-gitalk

到目前为止,好用的评论插件基本都停止服务了,剩下的畅言需要备案,其他也不怎么好用,所以我直接选择了gitalk,必须拥有github账号才可以评论,范围是小了点,先用着再说吧,效果如图:

2.png

安装步骤如下:下面引用这篇文章, 谢谢作者的分享。

新建Gitalk的swig文件

由于Next主题的可扩展性还算好,为了方便统一管理,尽量不修改已经存在的文件。
首先创建Gitalk的swig文件,放在next/layout/_third-party/comments文件夹下,命名为gitalk.swig。内容如下


{% if page.comments && theme.gitalk.enable %}

  <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
  
  <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>

   <script type="text/javascript">
        var gitalk = new Gitalk({
          clientID: '{{ theme.gitalk.ClientID }}',
          clientSecret: '{{ theme.gitalk.ClientSecret }}',
          repo: '{{ theme.gitalk.repo }}',
          owner: '{{ theme.gitalk.githubID }}',
          admin: ['{{ theme.gitalk.adminUser }}'], 
          id: location.pathname,
          distractionFreeMode: '{{ theme.gitalk.distractionFreeMode }}'
        })

        gitalk.render('gitalk-container')           
       </script>
{% endif %}

在主题文件layout/_third-party/comments/index.swig中引入刚刚添加的文件。

{% include 'gitalk.swig' %}

修改主题评论代码

layout/_partials/comments.swig文件中找到最后一个if分支,应该是这两句:

{% elseif theme.valine.appid and theme.valine.appkey %}
      <div id="vcomments"></div>

在最后一个if分支后加一个Gitalk的分支:

{% elseif theme.gitalk.enable %}
 <div id="gitalk-container"></div>

在主题配置文件中引入Gitalk

gitalk:
  enable: true
  githubID: newdee   
  repo: BlogComments
  ClientID: ******
  ClientSecret: ******
  adminUser: newdee
  distractionFreeMode: true

这里需要创建OAuth Application,没有的小伙伴请戳这里

其中githubID是你的Github用户名,repo是你用来存放评论Issue的仓库,可以不是Blog的仓库。adminUser是你的用户名,主要用来初始化评论的。clientID和client_secret是你的授权客户端ID和密钥。具体获得方法是在Github的设置界面选择Authorized Github Apps,然后Register a new application,将Authorization callback URL设置为你的Blog的域名,然后就可以获得clientID和client_secret了。

基本上到这里就可以直接用了,打开页面会提示你初始化评论框。如果要设置按钮的样式,可以参照以下步骤:

新建样式文件

要设置评论框的样式,可以在source/css/_common/components/third-party/文件夹下,新建一个gitalk.styl文件,向其中加入如下内容:

.gt-header a, .gt-comments a, .gt-popup a
  border-bottom: none;
.gt-container .gt-popup .gt-action.is--active:before
  top: 0.7em;

可以根据自己的喜好添加修改样式。

引入样式文件

在主题目录下的source/css/_common/components/third-party/third-party.styl文件中引入:

@import "gitalk";

Issue重复的问题

到这里是可以用了的,但是初始化过程中发现Issue页面有两个一样的,后来发现是因为它把直接文章页面地址和点击阅读更多所跳转的带#more的页面当成两个页面,因此重复创建Issue了。
解决方案:
由于默认的id参数是location.href,可以将其改为location.pathname,即可解决当前状况。
即在gitalk.swig文件中的admin下面加一行:

id: location.pathname,

至此,大功告成。
不过配置完才发现,Gitalk也是需要一篇文章一篇文章的初始化的,并不能自动将所有的文章一次性初始化完成。

本地化

由于Gitalk是使用UNPKG来给npm的CDN加速的,但是网络延迟有时候会稍高,可以选择直接下载js和css文件到本地。
将下载的css文件放于主题目录的source/css目录下,js放于source/js/src目录下。
layout/_third-party/comments/gitalk,swig文件中的超链接两行修改一下:

<link rel="stylesheet" href="/css/gitalk.css">
<script src="/js/src/gitalk.min.js"></script>

然后就可以正常加载了。

搜索引擎收录

待续

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容