hexo博客搭建过程(二)

开启字数统计hexo-wordcount

hexo-wordcount

安装hexo-wordcount插件

npm install hexo-wordcount --save

修改<span class="inline-span purple">主题配置文件</span>

post_wordcount:
  item_text: true
  wordcount: true
  min2read: true

修改yoursite/themes/next/layout/_macro/post.swig文件(重点在13行和30行)

{% if theme.post_wordcount.wordcount or theme.post_wordcount.min2read %}
  <div class="post-wordcount">
    {% if theme.post_wordcount.wordcount %}
      <span class="post-meta-item-icon">
        <i class="fa fa-file-word-o"></i>
      </span>
      {% if theme.post_wordcount.item_text %}
        <span class="post-meta-item-text">{{ __('post.wordcount') }}</span>
      {% endif %}
      <span title="{{ __('post.wordcount') }}">
        {{ wordcount(post.content) }}
      </span>
      <span class="post-meta-item-text">字</span>
    {% endif %}
    {% if theme.post_wordcount.wordcount and theme.post_wordcount.min2read %}
      <span class="post-meta-divider">|</span>
    {% endif %}
    {% if theme.post_wordcount.min2read %}
      <span class="post-meta-item-icon">
        <i class="fa fa-clock-o"></i>
      </span>
      {% if theme.post_wordcount.item_text %}
        <span class="post-meta-item-text">{{ __('post.min2read') }}</span>
      {% endif %}
      <span title="{{ __('post.min2read') }}">
        {{ min2read(post.content) }}
      </span>
      <span class="post-meta-item-text">分钟</span>
    {% endif %}
  </div>
{% endif %}

文章末尾统一添加“本文结束”标记

新建article-end-tag.swig文件

在路径yoursite/themes/next/layout/_macro中添加article-end-tag.swig文件,其内容为:

<div>
  {% if not is_index %}
    <blockquote class="blockquote-center">本文完,如果您觉得本博客对您有帮助,请持续关注,谢谢!</blockquote>
  {% endif %}
</div>

修改post.swig文件

yoursite/themes/next/layout/_macro/post.swig中,在post-body之后添加如下代码:

<div>
  {% if not is_index %}
    {% include 'article-end-tag.swig' %}
  {% endif %}
</div>

在<span class="inline-span purple">主题配置文件</span>中添加字段

在<span class="inline-span purple">主题配置文件</span>中添加以下字段开启此功能:

article_end_tag:
  enable: true

完成以上设置之后,在每篇文章之后都会添加“本文结束”标记。

设置点击出现心心效果

love.js

把js文件love.js放在yoursite/themes/next/source/js/src下,更新yoursite/themes/next/layout/_layout.swig文件,在末尾添加以下代码(如果存在就不必添加了):

{% include '_custom/special_effects.swig' %}

yoursite/themes/next/layout/_custom/special_effects.swig里添加如下代码:

{% if theme.special_effects.love %}
  <script type="text/javascript" src="/js/src/love.min.js"></script>
{% endif %}

最后在<span class="inline-span purple">主题配置文件</span>任意位置添加如下代码即可:

special_effects:
  love: true

添加背景音乐(方法1,已经弃用)

yoursite/themes/next/source/js/src下新建backgroundmusic.js文件,内容如下:

$(function() {
  var player = $('#background-audio')[0];
  $('.site-nav .menu .menu-item.menu-item-backgroundmusic a').click(function() {
    if (player.paused) {
      player.play();
      $(this).html('<i class="menu-item-icon fa fa-fw fa-pause"></i><br>暂停');
    } else {
      player.pause();
      $(this).html('<i class="menu-item-icon fa fa-fw fa-play-circle"></i><br>播放');
    }
  });
})

更新yoursite/themes/next/layout/_layout.swig文件,在末尾添加以下代码(如果存在就不必添加了):

{% include '_custom/special_effects.swig' %}

yoursite/themes/next/layout/_custom/special_effects.swig里添加如下代码:

{% if theme.menu.backgroundmusic %}
  <script type="text/javascript" src="/js/src/backgroundmusic.js"></script>
  <audio id="background-audio" hidden="hidden" loop="loop">
  {% for music_url in theme.special_effects.backgroundmusic %}
    <source src="{{ music_url }}" type="audio/mpeg">
  {% endfor %}
  </audio>
{% endif %}

修改<span class="inline-span purple">主题配置文件</span>(部分其他内容省略)

menu:
  backgroundmusic: javascript:;
menu_icons:
  backgroundmusic: play-circle

最后在<span class="inline-span purple">主题配置文件</span>任意位置添加如下代码即可:

special_effects:
  backgroundmusic: 
    - mp3地址1(本地和互联网资源都行)
    - mp3地址2(本地和互联网资源都行)

添加背景音乐(方法2,有点复杂)

首先先给出依赖吧,这里主要用到了两个模块:

artDialog 用来进行弹出窗口

Amazing Audio Player 音乐播放器

yoursite/themes/next/layout/_custom/special_effects.swig里添加如下代码:

{% if theme.menu.backgroundmusic %}
  <script type="text/javascript">    
    var playerHtml = '\
      <div class="demo-slider" id="player">\
      <link rel="stylesheet" type="text/css" media="all" href="/js/src/player/initaudioplayer.css">\
      <div id="amazingaudioplayer-8" style="display:block;position:relative;width:320px;height:auto;margin:0px auto 0px;">\
      <ul class="amazingaudioplayer-audios" style="display:none;">\
    '
    
    {% for item in theme.special_effects.backgroundmusic %}
      playerHtml += '\
        <li data-title="{{ item.title }}" data-image="{{ item.image }}">\
          <div class="amazingaudioplayer-source" data-src="{{ item.src }}" data-type="audio/mpeg"></div>\
        </li>\
      '
    {% endfor %}
    playerHtml += '\
      </ul>\
      </div>\
      </div>\
    '
  </script>
  <script type="text/javascript" src="/js/src/player/dialog-plus.js"></script>
  <script type="text/javascript" src="/js/src/player/jquery.js"></script>
  <script type="text/javascript" src="/js/src/player/amazingaudioplayer.js"></script>
  <script type="text/javascript" src="/js/src/player/initplayer.js"></script>
{% endif %}

最后在<span class="inline-span purple">主题配置文件</span>任意位置添加如下代码即可:(其中title是音乐名称,image是音乐海报地址,src是音乐地址)

special_effects:
  backgroundmusic: 
    - title: 华胥一梦
      image: /js/src/player/music/华胥一梦.jpg
      src: /js/src/player/music/阿鲲-华胥一梦.mp3
    - title: 天下第一
      image: /js/src/player/music/天下第一.jpg
      src: /js/src/player/music/麦振鸿,罗坚 - 天下第一.mp3
    - title: 雪见—仙凡之旅
      image: /js/src/player/music/雪见—仙凡之旅.png
      src: /js/src/player/music/麦振鸿 - 雪见—仙凡之旅.mp3

大家可以研究下initplayer.js文件,详细的实现过程就不叙述了。
播放器通过上面的音乐图标可以唤出。

开启代码隐藏功能

yoursite/themes/next/source/js/src下新建collapse-code.js文件,内容如下:

$(function() {
  var index = 0;
  $('figure').each(function() {
    var children = $(this).find('table tbody tr td.code div');
    if (children.length > line_limit) {
      index++;
      var collapse_item = $('<h6><i class="fa fa-chevron-up"></i><span class="collapse-label">收起</span></h6>');
      $(this).prepend(collapse_item);
      var table = $(this).find('table');
      var div = $('<div></div>');
      table.remove();
      div.append(table);
      $(this).append(div);
      $(this).find('h6').click(function() {
        if (div.is(':hidden')) {
          collapse_item.find('i').removeClass('close');
          collapse_item.find('span.collapse-label').html('收起');
        } else {
          collapse_item.find('i').addClass('close');
          collapse_item.find('span.collapse-label').html('展开');
        }
        var slide_time = children.length * 20;
        if (slide_time < 200) slide_time = 200;
        else if (slide_time > 2000) slide_time = 2000;
        div.slideToggle();
      });
    }
  });
})

更新yoursite/themes/next/layout/_layout.swig文件,在末尾添加以下代码(如果存在就不必添加了):

{% include '_custom/special_effects.swig' %}

yoursite/themes/next/layout/_custom/special_effects.swig里添加如下代码:

{% if theme.special_effects.collapse_code !== undefined %}
  <script type="text/javascript">var line_limit = {{ theme.special_effects.collapse_code }}</script>
  <script type="text/javascript" src="/js/src/collapse-code.js"></script>
{% endif %}

接下来还需要修改yoursite/themes/next/source/css/_custom/custom.styl文件

figure>h6 {
  margin: 0;
  padding: 8px!important;
  cursor: pointer;
}
figure>h6>i {
  margin-left: 30px;
  margin-right: 10px;
  transition: all 0.4s ease;
}
figure>h6>i.close {
  transform: rotate(180deg);
  color: #b63b4d;
}

修改<span class="inline-span purple">主题配置文件</span>,在任意位置下添加下列代码,数字表示超过多少行开启折叠功能。

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

推荐阅读更多精彩内容