使用 Github 空间搭建 Hexo 技术博客——使用NexT优化博客(五)

一.主题安装

1.安装next主题

在项目根目录下,我的项目是e:/work/myblog,打开Git Bash Here执行以下命令

git clone https://github.com/theme-next/hexo-theme-next themes/next

2.将Hexo的主题切换为next主题

在项目根目录下打开_config.yml文件将theme设置为next即:

3.运行命令测试

$ hexo clean
$ hexo s

二.主题配置

接下来就是进入我们博客核心部分了,配置属于自己的主题,让我们一起进入学习吧。

  • 注:这里可能不能全部去设置,大家有属于自己的,可以去研究,欢迎一起分享,可能在后期有遇到好的配置会在接下来的文章编写。
  • 注:一般配置都在theme/next/-config.yml文件下配置

1.修改整体布局

theme/next/-config.yml找到menu看看自己博客所需的分类

#目录
menu:
  home: / || home  #首页 
  tags: /tags/ || tags #标签
  categories: /categories/ || th #分类
  archives: /archives/ || archive #归档
  about: /about/ || user #关于本站
  #schedule: /schedule/ || calendar #时间表
  #sitemap: /sitemap.xml || sitemap #网站地图
  #commonweal: /404/ || heartbeat #公益

显示如下:

menu_settings如果设置icon: false则无图标,badges: true则标签都会显示数字,个人喜欢不加数字

menu_settings:
  icons: true
  badges: true #默认是false

  • 注:这里我们需要创建about页面,很简单,同理创建标签tags、归档archives页面一样的方式,所需要创建的名称要与menu相对应,举例说明如下。
$ hexo new page about   #看看menu上还有什么标签没创建就行创建
$ hexo new page tags    #创建标签等
$ hexo new page categories #创建分类等
$ hexo new page achives #创建归档等

创建完成之后我们在自己项目查找,如我的是myblog/source/目录下查看新创建好的相关标签页面,里面包含各自的index.md文件,大家可以自行编辑了。

2.Schemes方案设置

# Schemes
#scheme: Muse  #这是 Nex默认版本,黑白主调,大量留白
#scheme: Mist  #Muse 的紧凑版本,整洁有序的单栏外观
#scheme: Pisces #双栏 Scheme,小家碧玉似的清新
scheme: Gemini  #双子座,也是双栏形式,和Pisces类似

3.social设置

使用方式: Key: permalink || icon  Key表示标签显示,permalink表示URI连接,icon表示图标,自己添加所要显示的,

social:
  GitHub: https://github.com/wugenqiang || github
  E-Mail: mailto:2422676183@qq.com || envelope
  CSDN: https://blog.csdn.net/wugenqiang || heartbeat
  Gitee: https://gitee.com/wugenqiang || gitlab
  #简书: https://www.jianshu.com/u/447fdef5fb8f || heartbeat
  #Segmentfault: https://segmentfault.com/blog/iconye_vue || link
  #知乎: https://www.zhihu.com/people/yi-ke-id/activities || ioxhost
  #Google: https://plus.google.com/yourname || google
  #Twitter: https://twitter.com/yourname || twitter
  #FB Page: https://www.facebook.com/yourname || facebook
  #VK Group: https://vk.com/yourname || vk
  #StackOverflow: https://stackoverflow.com/ || stack-overflow
  #YouTube: https://youtube.com/yourname || youtube
  #Instagram: https://instagram.com/yourname || instagram
  #Skype: skype:yourname?call|chat || skype

social_icons:  #设置图标是否显示这里
  enable: true #表示开启
  icons_only: true 只显示图片
  transition: true
  exturl: false

4.avatar头像设置

avatar:
  url: #/images/avatar.gif  #头像图片路径 图片放置在next/source/images
  rounded: false  #是否显示圆形头像,true表示圆形,false默认
  opacity: 0.7  #透明度0~1之间
  rotated: false  #是否旋转 true表示旋转,false默认

5.toc边栏中的目录设置

toc:
  enable: false #是否启动侧边栏
  number: true  #自动将列表编号添加到toc。
  wrap: false #true时是当标题宽度很长时,自动换到下一行

6.Creative Commons 4.0国际许可设置

creative_commons:
  # Available: by | by-nc | by-nc-nd | by-nc-sa | by-nd | by-sa | zero
  license: by-nc-sa
  sidebar: true
  post: true
  language:

7.sidebar侧边栏配置这里选择默认吧。

大家可以去看看里面的属性,有许多相对应的scheme而设置。

8.save_scroll配置

save_scroll: false # 是否在Cookie中自动保存每个帖子/页面上的滚动位置。

9.excerpt_description

excerpt_description: true #是否自动摘录主页中的描述作为前导文本。

10.auto_excerpt配置

auto_excerpt:
  enable: true  #是否自动摘录。不推荐。
  length: 150  #这里是说文章开头第一个字到第150个字就显示"阅读全文"

11.codeblock代码块配置

codeblock:
  copy_button:
    enable: true  #是否添加复制按钮
    show_result: true  #是否显示文本复制结果

12.wechat_subscriber微信配置

wechat_subscriber:
  enabled: true #是否启动微信订阅
  qcode: /path/to/your/wechatqcode ex. /uploads/wechat-qcode.jpg #设置图片
  description: ex. subscribe to my blog by scanning my public wechat account #描述

13.Code Highlight theme 代码突出显示主题

# Available values: normal | night | night eighties | night blue | night bright
highlight_theme: normal #设置喜欢的模式,默认:normal

14.footer 底部设置

footer:
  icon:
    name: user  #设置图标,想修改图标从https://fontawesome.com/v4.7.0/icons获取
    animated: true  #是否要为图标设置动画,默认为false
    color: "#66CDAA"  #图标颜色
  copyright: ©2019 by WuGenQiang  #版权
  #powered:
    #enable: true  #是否显示 Hexo link
    #version: true  #是否显示Hexo链接后的Hexo版本信息(vX.X.X)
  #theme:
    #enable: true   #是否显示NexT Themelink
    #version: true  #是否显示NexT版本信息

15.favicon标签页图标

favicon:
  small: /images/favicon-16x16-next.png   #小图标 默认的NexT
  medium: /images/favicon-32x32-next.png  #中图标 默认NexT
  apple_touch_icon: /images/apple-touch-icon-next.png #苹果触摸图标
  safari_pinned_tab: /images/logo.svg   #safari固定标签

16.在每篇文章末尾统一添加“本文结束”标记

实现效果图

具体实现方法

在路径 \themes\next\layout\_macro 中新建 passage-end-tag.swig 文件,并添加以下内容:

<div>
    {% if not is_index %}
        <div style="text-align:center;color: #ccc;font-size:14px;">-------------本文结束<i class="fa fa-paw"></i>感谢您的阅读-------------</div>
    {% endif %}
</div>

接着打开\themes\next\layout\_macro\post.swig文件,在post-body 之后, post-footer 之前添加如下画红色部分代码(post-footer之前两个DIV):

代码如下:

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

然后打开主题配置文件(_config.yml),在末尾添加:

# 文章末尾添加“本文结束”标记
passage_end_tag:
  enabled: true

完成以上设置之后,在每篇文章之后都会添加如上效果图的样子。

17.主页文章添加阴影效果

打开\themes\next\source\css\_custom\custom.styl,向里面加入

// 主页文章添加阴影效果
.post {
  margin-top: 5px;
  margin-bottom: 2px;
  padding: 2px;
  -webkit-box-shadow: 0 0 5px rgba(202, 203, 203, .5);
  -moz-box-shadow: 0 0 5px rgba(202, 203, 204, .5);
}

效果如下:

 

三.第三方服务配置

1.Math Equations Render Support 数学方程式渲染支持

math:
  enable: true  #默认为false
  per_page: true
  engine: mathjax   #两种方式  mathjax / katex
  mathjax:
    cdn: //cdn.jsdelivr.net/npm/mathjax@2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML  #默认 这里大家根据自己需求
  katex:
    cdn: //cdn.jsdelivr.net/npm/katex@0.7.1/dist/katex.min.css   #默认

2.Han Support 支持汉字

1.打开Git Bash Here进入themes/next目录下

2.获取该汉字支持Git module,执行命令以下命令获得

git clone https://github.com/theme-next/theme-next-han source/lib/Han

3.设置汉字支持

han: true

4.更新update

$ cd themes/next/source/lib/Han
$ git pull

3.添加图标链接到GitHub

一般在右上角或者左上角

1.打开Fork_me_on_GitHub链接,里面有许多样式,选择自己喜欢的样式,将其复制下来。

2.打开自己博客项目中的themes/next/layout/_layout.swig文件,搜索<div class="headband"></div> 将复制的内容粘贴到<div class="headband"></div>下面,如下:

当然也可以使用下面连接:http://tholman.com/github-corners/

注意开头的连接url要改成自己的地址,比如我的是https://github.com/wugenqiang

4.将文章底部#标签修改带为带图标的形式

在博客项目中找到/themes/next/layout/_macro/post.swig,搜索 rel="tag",将 #号 换成<i class="fa fa-tag"></i>

5.font字体设置

themes/next/_config.yml搜索font

6.设置背景动画样式

NexT里面有几种动画背景样式canvas_nestthree_wavescanvas_linescanvas_sphere

安装这款:canvas_nest

按照以下步骤完成

1.打开Git Bash Here进入自己文件夹下/themes/next文件夹下

2.下载安装 canvas_nest module 执行

git clone https://github.com/theme-next/theme-next-canvas-nest source/lib/canvas-nest

3.在/themes/next/_config.yml设置

canvas_nest: true

7.给每篇文章添加类别和标签

在创建的文章都在source/_post目录下找到,每篇文章添加tagscategories

结果:

8.添加站内搜索

由于可能我需要快速查找相关文章,那么就需要添加站内搜索。

按以下步骤进行

1.安装站内搜索插件

$  npm install hexo-generator-searchdb --save
或者
$ cnpm install hexo-generator-searchdb --save

2.在根目录下的_config.yml添加

#表示站内搜索
search:
    path: search.xml
    field: post
    format: html
    limit: 10000

3.在themes/next/_config.yml文件中搜索local_search,进行设置

local_search:
  enable: true  #设置为true
  trigger: auto  # auto /  manual,auto 自动搜索、manual:按回车[enter ]键手动搜索
  top_n_per_article: 1
  unescape: true

9.实现博文压缩

 

在站点的根目录下执行以下命令:

$ npm install gulp -g
$ npm install gulp-minify-css gulp-uglify gulp-htmlmin gulp-htmlclean gulp --save

在如下图所示,新建 gulpfile.js ,并填入以下内容:

var gulp = require('gulp');
var minifycss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var htmlmin = require('gulp-htmlmin');
var htmlclean = require('gulp-htmlclean');
// 压缩 public 目录 css
gulp.task('minify-css', function() {
    return gulp.src('./public/**/*.css')
        .pipe(minifycss())
        .pipe(gulp.dest('./public'));
});
// 压缩 public 目录 html
gulp.task('minify-html', function() {
  return gulp.src('./public/**/*.html')
    .pipe(htmlclean())
    .pipe(htmlmin({
         removeComments: true,
         minifyJS: true,
         minifyCSS: true,
         minifyURLs: true,
    }))
    .pipe(gulp.dest('./public'))
});
// 压缩 public/js 目录 js
gulp.task('minify-js', function() {
    return gulp.src('./public/**/*.js')
        .pipe(uglify())
        .pipe(gulp.dest('./public'));
});
// 执行 gulp 命令时执行的任务
gulp.task('default', [
    'minify-html','minify-css','minify-js'
]);

生成博文是执行 hexo g && gulp 就会根据 gulpfile.js 中的配置,对 public 目录中的静态资源文件进行压缩。

但是注意:

在hexo 最新3.8版本里面安装gulp 进行压缩。发现会进行报错。百思不得其解,发现是因为网络上的gulp教程均适用于 gulp 4.0 版本以下 ,如果是安装了最新的gulp 4.0 版本的情况下,则就会进行报错。解决办法在下面有说明

解决办法参考:https://master.compassionate-raman-1e7f63.netlify.com/posts/74d69307.html

由于我的gulp4..0所以配置文件改为:

var gulp = require('gulp');
var minifycss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var htmlmin = require('gulp-htmlmin');
var htmlclean = require('gulp-htmlclean');
// 压缩 public 目录 css
gulp.task('minify-css', function() {
    return gulp.src('./public/**/*.css')
        .pipe(minifycss())
        .pipe(gulp.dest('./public'));
});
// 压缩 public 目录 html
gulp.task('minify-html', function() {
    return gulp.src('./public/**/*.html')
        .pipe(htmlclean())
        .pipe(htmlmin({
            removeComments: true,
            minifyJS: true,
            minifyCSS: true,
            minifyURLs: true,
        }))
        .pipe(gulp.dest('./public'))
});
// 压缩 public/js 目录 js
gulp.task('minify-js', function() {
    return gulp.src('./public/**/*.js')
        .pipe(uglify())
        .pipe(gulp.dest('./public'));
});
// 执行 gulp 命令时执行的任务
// gulp 4.0 适用的方式
gulp.task('build', gulp.parallel('minify-html', 'minify-css', 'minify-js'
    //build the website
));

欧克,成功

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WuGenQiang

谢谢你的喜欢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值