next6、7博客主题美化 2020-04-10

2020-04-10  本文已影响0人  宇宙小神特别萌

目录:
1、Hexo 启用next主题模板
2、更改Next主题为中文
3、增加标签页和分类页
4、使用标签页和分类页
5、next主题样式的更改
6、更换头像-可旋转
7、更改博客标题和作者名称
8、启用侧边栏社交链接
9、启用侧边栏友情链接
10、新增一片文章
11、开启订阅公众号
12、开启打赏功能
13、首页文章设置阅读全文
14、添加动态背景
15、给博客添加fork Github
16、修改文章内部链接样式
17、修改文章底部带#的标签
18、增加评论功能
18.1添加-来必力评论:-待完善
18.2添加-Valine评论:-已成功
18.3添加-Gitment评论:-待完善
19、增加搜索功能
20、增加不蒜子统计功能
21、增加内容分享服务-未成功
22、增加加载效果
23、增加点击爆炸效果
24、底部布局-隐藏底部的强力驱动
25、实现字数统计和阅读时长的功能
26、文章的置顶功能
27、修改字体大小
28、博客文章中插入图片
28.1 插入本地图片
28.2 插入网络图片
29、添加博客自定义图标
30、文章结束语
31、侧边栏设置
32、文章阴影设置
33、增强文章底部版权信息
34、添加页面宠物
35、设置代码块样式
36、代码块增加复制按钮功能
37、设置博客摘要-全文显示
38、文章内链接样式
39、加入网易云音乐播放器
40、设置RSS订阅
41、设置文章头信息post.md
42、设置菜单信息page.md
43、主页、归档、标签及分类分别控制
44、文章标签显示和文章字数显示设置-未测
45、分页显示问题-未测
46、修改Pisces主题宽度-未测
47、设置主题透明度-未测
48、配置全局,标题、文章、代码块等字体
49 、显示最近博客
50、添加主题动态背景图片
51、hexo博客部署到远端的Github

next主题为例:

├── .github            #git信息
├── languages          #多语言
|   ├── default.yml    #默认语言
|   └── zh-Hans.yml      #简体中文
|   └── zh-tw.yml      #繁体中文
├── layout             #布局,根目录下的*.ejs文件是对主页,分页,存档等的控制
|   ├── _custom        #可以自己修改的模板,覆盖原有模板
|   |   ├── _header.swig    #头部样式
|   |   ├── _sidebar.swig   #侧边栏样式
|   ├── _macro        #可以自己修改的模板,覆盖原有模板
|   |   ├── post.swig    #文章模板
|   |   ├── reward.swig    #打赏模板
|   |   ├── sidebar.swig   #侧边栏模板
|   ├── _partial       #局部的布局
|   |   ├── head       #头部模板
|   |   ├── search     #搜索模板
|   |   ├── share      #分享模板
|   ├── _script        #局部的布局
|   ├── _third-party   #第三方模板
|   ├── _layout.swig   #主页面模板
|   ├── index.swig     #主页面模板
|   ├── page           #页面模板
|   └── tag.swig       #tag模板
├── scripts            #script源码
|   ├── tags           #tags的script源码
|   ├── marge.js       #页面模板
├── source             #源码
|   ├── css            #css源码
|   |   ├── _common    #*.styl基础css
|   |   ├── _custom    #*.styl局部css
|   |   └── _mixins    #mixins的css
|   ├── fonts          #字体
|   ├── images         #图片
|   ├── uploads        #添加的文件
|   └── js             #javascript源代码
├── _config.yml        #主题配置文件
└── README.md          #用GitHub的都知道

我们需要改的文件其实也就那么几个,大部分是不需要更改,next都已经帮我们配置好了~
hexo博客默认目录结构:

.
├── .deploy # 执行hexo deploy命令部署到GitHub上的内容目录
├── public#  执行hexo generate命令,输出的静态网页内容目录
├── scaffolds # layout模板文件目录,其中的md文件可以添加编辑(新写了一片文章)
├── scripts # 扩展脚本目录,这里可以自定义一些javascript脚本
├── source # 文章源码目录,该目录下的markdown和html文件均会被hexo处理
|   ├── _drafts # 草稿文章
|   └── _posts # 发布文章
├── themes # 主题文件目录
├── _config.yml # 全局配置文件,大多数的设置都在这里
└── package.json # 应用程序数据,指明hexo的版本等信息,类似于一般软件中的关于按钮

1、Hexo 启用next主题模板

官网主题 地址:https://hexo.io/themes/

next主题:

测试使用next主题,也是大多数人比较喜欢的主题之一。

next主题官网参考:next主题官网
next主题github地址: next5 旧版本。

next主题github地址:next7 建议用这个新的版本.

下载next主题:

命令:

#cmd 进入博客根目录

#下载next主题 版本5 ,不推荐(已经不维护)
git clone https://github.com/iissnan/hexo-theme-next.git themes/next5
#下载next主题 最新版本7,推荐
git clone https://github.com/theme-next/hexo-theme-next themes/next7

_config.yml 配置文件有两个:

注意:站点配置文件是博客根目录下的_config.yml主题配置文件是下载的主题下的_config.yml.

站点配置文件: D:\blog\zhengjiaao\_config.yml

主题配置文件: D:\blog\zhengjiaao\themes\next\_config.yml

站点配置文件: 修改主题

#将默认主题landscape,修改为next主题
#theme: landscape
theme: next7

启动博客:

#cmd 进入博客根目录

#清除博客缓存
hexo clean
#生成静态文件
hexo g
#启动博客 默认端口4000 ,也可指定端口启动: hexo s -p -5555
hexo s

#浏览器访问:http://localhost:4000/
#可看到next主题页面

2、更改Next主题为中文

站点配置文件

language: zh-CN # 主题语言-简单中文

3、增加标签页和分类页

主题配置文件

#找到menu,打开标签页和分类页
menu:
  home: /|| home
  #about: /about/ || user
  tags: /tags/|| tags #标签页 + 图标tags
  categories: /categories/|| th #分类页 + 图标th
  #archives: /archives/|| archive
  #schedule: /schedule/|| calendar #日历
  #sitemap: /sitemap.xml|| sitemap #站点地图,供搜索引擎爬取
  #commonweal: /404/|| heartbeat # 腾讯公益404
  resources: /resources/|| download #资源 + 图标download
# Enable/Disable menu icons.
menu_icons:
  enable: true #是否启用menu图标
  

创建标签页和分类页

#打开cmd,进入博客根目录

#创建标签页
hexo n page tags
#创建分类页
hexo n page categories

修改标签页 D:\blog\zhengjiaao\source\tags\index.md

#修改前
---
title: tags
date: 2019-12-26 09:58:14
---

#修改后,一定要添加type: "tags"
---
title: 标签
date: 2019-12-26 09:58:14
type: "tags"
---

修改分类页 D:\blog\zhengjiaao\source\categories\index.md

#修改前
---
title: categories
date: 2019-12-26 10:05:28
---

#修改后,一定要添加type: "categories"
---
title: 分类
date: 2019-12-26 09:58:14
type: "categories"
---

以上是已经存在的默认菜单,只需要这样配置接好了。

现在要添加一个新的resources资源

主题配置文件

#找到menu,新增 resources 资源
menu:
  home: /|| home
  tags: /tags/|| tags #标签页
  categories: /categories/|| th #分类页
  resources: /resources/|| download #资源

创建资源页

#打开cmd,进入博客根目录

#创建标签页
hexo n page resources

修改资源页 D:\blog\zhengjiaao\source\resources\index.md

#修改前
---
title: resources
date: 2019-12-26 10:10:56
---


#修改后,一定要添加type: "tags"
---
title: 资源
date: 2019-12-26 09:58:14
type: "resources"
---

修改 D:\blog\zhengjiaao\themes\next\languages\zh-Hans.yml

#新增 resources 翻译成中文 资源
menu:
  resources: 资源

4、使用标签页和分类页

打开文章 D:\blog\zhengjiaao\source_posts\hello-world.md

在md文章头部添加:

---
title: Hello World
date: 2017-03-11 23:54:11
tags: [Hello,测试] 
categories: 测试
---

5、next主题样式的更改

主题配置文件

# ---------------------------------------------------------------
# 主题的样式设置
# ---------------------------------------------------------------
# 只能选择一套。
# Schemes
# scheme: Muse
#scheme: Mist
# scheme: Pisces
scheme: Gemini

6、更换头像-可旋转

在/themes/next/source/下新建文件夹uploads,将头像图片放在/themes/next/source/uploads/下。

主题配置文件

#将作者头像图片放置在blog/themes/next/source/images目录下,修改名称为avatar.gif
# 用户头像-成功,也可以 http:图片链接形式
avatar: /uploads/avatar.gif

头像圆形并鼠标放上旋转

找到 D:\blog\zhengjiaao\themes\next\source\css_common\components\sidebar\sidebar-author.styl 文件

方式一:简单配置-头像圆形旋转

.site-author-image {
  display: block;
  margin: 0 auto;
  padding: $site-author-image-padding;
  max-width: $site-author-image-width;
  height: $site-author-image-height;
  border: $site-author-image-border-width solid $site-author-image-border-color;
   
  /* 头像圆形 */
  border-radius: 50%;
  transition: 2s all;
}
/*旋转*/
.site-author-image:hover{
  transform: rotate(360deg);
}

方式二:复杂点配置-头像圆形旋转

.site-author-image {
  display: block;
  margin: 0 auto;
  padding: $site-author-image-padding;
  max-width: $site-author-image-width;
  height: $site-author-image-height;
  border: $site-author-image-border-width solid $site-author-image-border-color;
   
  /* 头像圆形 */
  border-radius: 80px;
  -webkit-border-radius: 80px;
  -moz-border-radius: 80px;
  box-shadow: inset 0 -1px 0 #333sf;
  /* 设置循环动画 [animation: (play)动画名称 (2s)动画播放时长单位秒或微秒 (ase-out)动画播放的速度曲线为以低速结束 
    (1s)等待1秒然后开始动画 (1)动画播放次数(infinite为循环播放) ]*/
 
  /* 鼠标经过头像旋转360度 */
  -webkit-transition: -webkit-transform 1.0s ease-out;
  -moz-transition: -moz-transform 1.0s ease-out;
  transition: transform 1.0s ease-out;
}
img:hover {
  /* 鼠标经过停止头像旋转 
  -webkit-animation-play-state:paused;
  animation-play-state:paused;*/
  /* 鼠标经过头像旋转360度 */
  -webkit-transform: rotateZ(360deg);
  -moz-transform: rotateZ(360deg);
  transform: rotateZ(360deg);
}

/* Z 轴旋转动画 */
@-webkit-keyframes play {
  0% {
    -webkit-transform: rotateZ(0deg);
  }
  100% {
    -webkit-transform: rotateZ(-360deg);
  }
}
@-moz-keyframes play {
  0% {
    -moz-transform: rotateZ(0deg);
  }
  100% {
    -moz-transform: rotateZ(-360deg);
  }
}
@keyframes play {
  0% {
    transform: rotateZ(0deg);
  }
  100% {
    transform: rotateZ(-360deg);
  }
}

7、更改博客标题和作者名称

站点配置文件

# Site
title: Zheng # 博客的标题(名称)
subtitle: '' # 根据主题的不同,有的会显示有的不会显示
description: '站点描述,可以是你喜欢的一句签名' # 站点描述,可以是你喜欢的一句签名
keywords:
author: 宇宙小神特别萌 # 作者名称
language: zh-Hans # 主题语言-简单中文
timezone: Asia/Shanghai #中国的时区,不要乱改城市(可选)

8、启用侧边栏社交链接

主题配置文件

#侧边栏添加-社交账号: 格式为 链接名:链接地址 || 链接图标 ,链接图标必须是http://fontawesome.dashgame.com/网站中存在的图标名
social: 
  GitHub: https://github.com/zhengjiaao || github
  简书: https://www.jianshu.com/u/70d69269bd09 || book
social_icons:
  enable: true #是否显示social社交图标
  icons_only: false #是否仅显示社交图标
  transition: false

9、启用侧边栏友情链接

主题配置文件

# 侧边栏添加-友情链接
# Blog rolls 推荐阅读
links_icon: link
links_title: Links
#links_layout: block #友情链接居中排列
links_layout: inline #友情链接并行排列
links:
  Web前端导航: http://www.alloyteam.com/nav/
  创造狮导航: http://www.chuangzaoshi.com/code
  前端书籍资料: http://www.36zhen.com/t?id=3448
  掘金酱: http://e.xitu.io/
  V2EX: https://www.v2ex.com/
  印记中文: https://www.v2ex.com/
  # Title: http://example.com/

10、新增一片文章

命令

#打开cmd,进入博客根目录

#新建一片文章 名称为 第一篇文章
hexo n 第一篇文章

命令演示:

#新建一片文章 名称为 第一篇文章
D:\blog\zhengjiaao>hexo n 第一篇文章
INFO  Created: D:\blog\zhengjiaao\source\_posts\第一篇文章.md

打开 D:\blog\zhengjiaao\source_posts\第一篇文章.md

---
title: 第一篇文章
date: 2019-12-26 11:01:58
tags:
    - 分享
    - 导航
categories: 后台
---

# 从这里才可以写文章内容
## 第一篇文章哦

11、开启订阅公众号

在/themes/next/source/下新建文件夹uploads,将微信公众号二维码wechat-qcode.jpg图片放在/themes/next/source/uploads/下。

主题配置文件

# 微信公众号订阅
wechat_subscriber:
  enabled: true #是否启用
  #公众号 二维码,可以是 http://二维码图片链接
  qcode: /uploads/wechat-qcode.jpg 
  description: 扫一扫上面的二维码可以关注我哦 #公众号描述,会放二维码上方
  

12、开启打赏功能

在/themes/next/source/下新建文件夹uploads,将收款的二维码wechatpay.jpgalipay.png图片放在/themes/next/source/uploads/下。

主题配置文件:

# 微信支付宝打赏功能 微信收款 码\支付宝收款码
# Reward
reward_comment: 坚持原创技术分享,您的支持将鼓励我继续创作!
wechatpay: /uploads/wechatpay.jpg
alipay: /uploads/alipay.png
#bitcoin: /images/bitcoin.png

13、首页文章设置阅读全文

方式一:主题配置文件

# 显示 阅读全文
auto_excerpt:
  enable: true # fales/true 自动截取一定程度的摘要
  length: 150 # 截取多少字显示

方式二:md文章中配置-比较灵活

在需要截取的地方,添加:

<!-- more -->

当然两种可以同时使用,有 more,就以more显示。

14、添加动态背景

主题配置文件

# 共有四种动态背景:canvas_nest、three_waves、canvas_lines、canvas_sphere
# Canvas-nest
# canvas_nest: false
# 使用网络背景特效 Dependencies: https://github.com/theme-next/theme-next-canvas-nest
canvas_nest:
  enable: true # false/true
  onmobile: true # display on mobile or not
  color: '0,0,0' # RGB values, use ',' to separate
  opacity: 0.5 # the opacity of line: 0~1
  zIndex: -1 # z-index property of the background
  count: 150 # the number of lines

# 3D背景特效
# JavaScript 3D library.
# Dependencies: https://github.com/theme-next/theme-next-three
# three_waves
three_waves: false # false/true

# canvas_lines
canvas_lines: false # false/true

# canvas_sphere
canvas_sphere: false # false/true

另外需要在blog中下载相应资源包,具体见上面的链接,下面我给出canvas_nest的下载方式:

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

15、给博客添加fork Github

找到自己喜欢的样式:http://tholman.com/github-corners/

打开: D:\blog\zhengjiaao\themes\next\layout\_layout.swig

<div class="headband"></div>
<!--找到大概23行代码,在上方这个代码下的位置添加下面代码-->
<!--修改 a标签 github换成自己的地址:href="https://github.com/zhengjiaao"-->
<a href="https://your-url" class="github-corner" aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>

16、修改文章内部链接样式

打开 themes\next\source\css\_common\components\post\post.styl,在末尾添加如下css样式:

// 文章内链接文本样式
.post-body p a{
  color: #0593d3;
  border-bottom: none;
  border-bottom: 1px solid #0593d3;
  &:hover {
    color: #fc6423;
    border-bottom: none;
    border-bottom: 1px solid #fc6423;
  }
}

17、修改文章底部带#的标签

打开 D:\blog\zhengjiaao\themes\next\layout_macro\post.swig

搜索:tag.name

<!--修改前-->
<a href="{{ url_for(tag.path) }}" rel="tag"># {{ tag.name }}</a>
<!--修改后:将 # 替换成 google图标-->
<a href="{{ url_for(tag.path) }}" rel="tag"><i class="fa fa-tag"></i> {{ tag.name }}</a>

图标必须是FontAwesome网站中存在的图标名。

18、增加评论功能

18.1添加-来必力评论:-待完善

来必力官网注册:https://livere.com/ 暂时无法注册,好像挂了。

主题配置文件


18.2添加-Valine评论:-已成功

Valine官网:https://valine.js.org/

leancloud参考:https://blog.csdn.net/weixin_39345384/article/details/80787998

注册:leancloud

1.创建一个应用 新应用名称 "hexo-next",选择 "开发版" 创建,在应用上点击存储

数据栏中,_开头的都是系统预定义好的表,为了区分,新建一张表来保存数据。为了保证对NexT主题的修改兼容,新建Class名字必须为Counter。为了避免权限问题导致 次数统计显示不正常,选择无限制,创建Class。

2.获取App IDApp Key

Class创建完成后,选择界面最左侧的设置应用Key,复制App IDApp Key

3.打开博客根目录/themes/next/下的_config.yml,查找leancloud,填写复制来的App IDApp Key,重新生成、部署博客即可正常统计文章阅读量。

主题配置文件

# 添加-leancloud存储库-只能统计文章阅读量,没有评论功能
leancloud_visitors:
  enable: true # false/true 是否启用
  app_id: OuyHeA0XGL8hK4vgbqqweERx-gzGzoHsz
  app_key: L58VglKmWULcGK2W2qwekWzM

leancloud附赠说明:

Valine评论功能:

主题配置文件

# Valine.
# You can get your appid and appkey from https://leancloud.cn
# more info please open https://valine.js.org
# Valine 评论功能
valine:
  enable: true # false/true 是否启用valine评论功能
  appid: OuyHeA0XGL8hK4vgbqqweERx-gzGzoHsz # your leancloud application appid #LeanClound获得的appid
  appkey: L58VglKmWULcGK2W2qwekWzM # your leancloud application appkey #LeanClound获得的appkey
  notify: true # false/true  mail notifier , https://github.com/xCss/Valine/wiki # 邮件提醒
  verify: false # false/true Verification code
  placeholder: Just go go # comment box placeholder 欢迎畅所欲言
  avatar: monsterid # gravatar style  # mm 默认头像设置、wavatar、monsterid、robohash
  guest_info: nick,mail,link # custom comment header
  pageSize: 10 # pagination size
  

指定文章(页面)评论功能是否开启
在 Hexo 博客中,评论的功能是在所有页面都默认开启的,但是有的时候我们在页面上不需要显示评论功能,例如分类,标记页面我们并不需要评论功能。

我们可以在 Front-matter 中通过comments属性设置true或false控制该页面或者是文章的评论功能是否打开,如我设置标签页面的评论功能关闭:

title: 标签
date: 2019-07-18 15:16:50
type: "tags"
comments: false

设置评论头像:https://valine.js.org/avatar.html

# Valine 评论功能
valine:
  avatar: monsterid # gravatar style  # mm 默认头像设置、wavatar、monsterid、robohash
18.3添加-Gitment评论:-待完善

需要github登录才能评论,有局限性,适合评论少的、不推荐。

主题配置文件


19、增加搜索功能

#打开cmd,进入博客根目录

#安装本地搜索插件
npm install hexo-generator-searchdb --save

安装之后,会在站点目录的 public 文件夹下创建一个 search.xml 文件

站点配置文件

# Search  添加搜索功能
search:
  path: ./public/search.xml #索引文件的路径,相对于站点根目录
  field: post #搜索范围,默认是 post,还可以选择 page、all,设置成 all 表示搜索所有页面
  format: html # 
  limit: 10000 # 限制搜索的条目数

主题配置文件

# Local search
# Dependencies: https://github.com/flashlab/hexo-generator-search
# 添加搜索功能
local_search:
  enable: true # false/true 是否启动
  # if auto, trigger search by changing input
  # if manual, trigger search by pressing enter key or search button
  trigger: auto
  # show top n results per article, show all results by setting to -1
  top_n_per_article: 1 #字段表示在每篇文章中显示的搜索结果数量,设成 -1 会显示每篇文章的所有搜索结果数量。


20、增加不蒜子统计功能

主题配置文件

# 统计访客量以及文章阅读量
# NexT主题集成了不蒜子统计功能
busuanzi_count:
  # count values only if the other configs are false
  enable: true # false/true 是否开启不蒜子统计功能
  # custom uv span for the whole site
  # 效果:本站访客数12345人次
  site_uv: true
  #本站访客数
  site_uv_header: 本站访客数 <i class="fa fa-user"></i>
  site_uv_footer: 人次
  # custom pv span for the whole site
  # 效果:本站总访问量12345次(一般不开启这个)
  site_pv: true
  #本站总访问量
  site_pv_header: 本站总访问量 <i class="fa fa-eye"></i>
  site_pv_footer: 次
  # custom pv span for one page only
  ## 效果:本文总阅读量12345次
  page_pv: true
  #本文总阅读量
  page_pv_header: 本文总阅读量 <i class="fa fa-file-o"></i>
  page_pv_footer: 次
  

hexo博客解决不蒜子统计无法显示问题:

首先需要先找到NexT下引用不蒜子统计的方法。文件路径为/theme/next/layout/_third-party/analytics/busuanzi-counter.swig文件:

<!--修改前-->
  <script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>
<!--修改后-->
  <script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>

21、增加内容分享服务-未成功

主题配置文件:

# 开启分享
jiathis: ture
  ##uid: Get this uid from http://www.jiathis.com/
#add_this_id:
# 开启百度分享
baidushare: true
#   type: button

22、增加加载效果

不推荐使用,影响加载速度

主题配置文件:

# Progress bar in the top during page loading.
# 文章内容加载效果 false/true
pace: true
# Themes list: 效果列表
#pace-theme-big-counter
#pace-theme-bounce
#pace-theme-barber-shop
#pace-theme-center-atom
#pace-theme-center-circle
#pace-theme-center-radar
#pace-theme-center-simple
#pace-theme-corner-indicator
#pace-theme-fill-left
#pace-theme-flash
#pace-theme-loading-bar
#pace-theme-mac-osx
#pace-theme-minimal
# For example
# pace_theme: pace-theme-center-simple
#修改加载效果-效果不明显,不推荐使用,影响加载速度
pace_theme: pace-theme-center-atom

23、增加点击爆炸效果

不推荐使用,影响加载速度

1.创建爆炸js文件
在/themes/next/source/js/src下新建文件fireworks.js,并复制粘贴如下代码

"use strict";function updateCoords(e){pointerX=(e.clientX||e.touches[0].clientX)-canvasEl.getBoundingClientRect().left,pointerY=e.clientY||e.touches[0].clientY-canvasEl.getBoundingClientRect().top}function setParticuleDirection(e){var t=anime.random(0,360)*Math.PI/180,a=anime.random(50,180),n=[-1,1][anime.random(0,1)]*a;return{x:e.x+n*Math.cos(t),y:e.y+n*Math.sin(t)}}function createParticule(e,t){var a={};return a.x=e,a.y=t,a.color=colors[anime.random(0,colors.length-1)],a.radius=anime.random(16,32),a.endPos=setParticuleDirection(a),a.draw=function(){ctx.beginPath(),ctx.arc(a.x,a.y,a.radius,0,2*Math.PI,!0),ctx.fillStyle=a.color,ctx.fill()},a}function createCircle(e,t){var a={};return a.x=e,a.y=t,a.color="#F00",a.radius=0.1,a.alpha=0.5,a.lineWidth=6,a.draw=function(){ctx.globalAlpha=a.alpha,ctx.beginPath(),ctx.arc(a.x,a.y,a.radius,0,2*Math.PI,!0),ctx.lineWidth=a.lineWidth,ctx.strokeStyle=a.color,ctx.stroke(),ctx.globalAlpha=1},a}function renderParticule(e){for(var t=0;t<e.animatables.length;t++){e.animatables[t].target.draw()}}function animateParticules(e,t){for(var a=createCircle(e,t),n=[],i=0;i<numberOfParticules;i++){n.push(createParticule(e,t))}anime.timeline().add({targets:n,x:function(e){return e.endPos.x},y:function(e){return e.endPos.y},radius:0.1,duration:anime.random(1200,1800),easing:"easeOutExpo",update:renderParticule}).add({targets:a,radius:anime.random(80,160),lineWidth:0,alpha:{value:0,easing:"linear",duration:anime.random(600,800)},duration:anime.random(1200,1800),easing:"easeOutExpo",update:renderParticule,offset:0})}function debounce(e,t){var a;return function(){var n=this,i=arguments;clearTimeout(a),a=setTimeout(function(){e.apply(n,i)},t)}}var canvasEl=document.querySelector(".fireworks");if(canvasEl){var ctx=canvasEl.getContext("2d"),numberOfParticules=30,pointerX=0,pointerY=0,tap="mousedown",colors=["#FF1461","#18FF92","#5A87FF","#FBF38C"],setCanvasSize=debounce(function(){canvasEl.width=2*window.innerWidth,canvasEl.height=2*window.innerHeight,canvasEl.style.width=window.innerWidth+"px",canvasEl.style.height=window.innerHeight+"px",canvasEl.getContext("2d").scale(2,2)},500),render=anime({duration:1/0,update:function(){ctx.clearRect(0,0,canvasEl.width,canvasEl.height)}});document.addEventListener(tap,function(e){"sidebar"!==e.target.id&&"toggle-sidebar"!==e.target.id&&"A"!==e.target.nodeName&&"IMG"!==e.target.nodeName&&(render.play(),updateCoords(e),animateParticules(pointerX,pointerY))},!1),setCanvasSize(),window.addEventListener("resize",setCanvasSize,!1)}"use strict";function updateCoords(e){pointerX=(e.clientX||e.touches[0].clientX)-canvasEl.getBoundingClientRect().left,pointerY=e.clientY||e.touches[0].clientY-canvasEl.getBoundingClientRect().top}function setParticuleDirection(e){var t=anime.random(0,360)*Math.PI/180,a=anime.random(50,180),n=[-1,1][anime.random(0,1)]*a;return{x:e.x+n*Math.cos(t),y:e.y+n*Math.sin(t)}}function createParticule(e,t){var a={};return a.x=e,a.y=t,a.color=colors[anime.random(0,colors.length-1)],a.radius=anime.random(16,32),a.endPos=setParticuleDirection(a),a.draw=function(){ctx.beginPath(),ctx.arc(a.x,a.y,a.radius,0,2*Math.PI,!0),ctx.fillStyle=a.color,ctx.fill()},a}function createCircle(e,t){var a={};return a.x=e,a.y=t,a.color="#F00",a.radius=0.1,a.alpha=0.5,a.lineWidth=6,a.draw=function(){ctx.globalAlpha=a.alpha,ctx.beginPath(),ctx.arc(a.x,a.y,a.radius,0,2*Math.PI,!0),ctx.lineWidth=a.lineWidth,ctx.strokeStyle=a.color,ctx.stroke(),ctx.globalAlpha=1},a}function renderParticule(e){for(var t=0;t<e.animatables.length;t++){e.animatables[t].target.draw()}}function animateParticules(e,t){for(var a=createCircle(e,t),n=[],i=0;i<numberOfParticules;i++){n.push(createParticule(e,t))}anime.timeline().add({targets:n,x:function(e){return e.endPos.x},y:function(e){return e.endPos.y},radius:0.1,duration:anime.random(1200,1800),easing:"easeOutExpo",update:renderParticule}).add({targets:a,radius:anime.random(80,160),lineWidth:0,alpha:{value:0,easing:"linear",duration:anime.random(600,800)},duration:anime.random(1200,1800),easing:"easeOutExpo",update:renderParticule,offset:0})}function debounce(e,t){var a;return function(){var n=this,i=arguments;clearTimeout(a),a=setTimeout(function(){e.apply(n,i)},t)}}var canvasEl=document.querySelector(".fireworks");if(canvasEl){var ctx=canvasEl.getContext("2d"),numberOfParticules=30,pointerX=0,pointerY=0,tap="mousedown",colors=["#FF1461","#18FF92","#5A87FF","#FBF38C"],setCanvasSize=debounce(function(){canvasEl.width=2*window.innerWidth,canvasEl.height=2*window.innerHeight,canvasEl.style.width=window.innerWidth+"px",canvasEl.style.height=window.innerHeight+"px",canvasEl.getContext("2d").scale(2,2)},500),render=anime({duration:1/0,update:function(){ctx.clearRect(0,0,canvasEl.width,canvasEl.height)}});document.addEventListener(tap,function(e){"sidebar"!==e.target.id&&"toggle-sidebar"!==e.target.id&&"A"!==e.target.nodeName&&"IMG"!==e.target.nodeName&&(render.play(),updateCoords(e),animateParticules(pointerX,pointerY))},!1),setCanvasSize(),window.addEventListener("resize",setCanvasSize,!1)};

2.在\themes\next\layout\_layout.swig文件的<body>标签最后添加:

  <!--页面点击爆炸效果-->
    {% if theme.fireworks %}
    <canvas class="fireworks" style="position: fixed;left: 0;top: 0;z-index: 1; pointer-events: none;" ></canvas>
    <script type="text/javascript" src="//cdn.bootcss.com/animejs/2.2.0/anime.min.js"></script>
    <script type="text/javascript" src="/js/src/fireworks.js"></script>
    {% endif %}

主题配置文件: 新增

# Fireworks 页面点击爆炸效果
fireworks: true

24、底部布局-隐藏底部的强力驱动

主题配置文件:

#底部显示建站时间和图标修改
footer:
  # Specify the date when the site was setup.
  # If not defined, current year will be used.
  since: 2019 # 建站年份

  # Icon between year and copyright info.
  icon: user #作者图标(默认是author人像)

  # If not defined, will be used `author` from Hexo main config.
  # 别填bool型,最后显示的东西是copyright || author,即左边没有设置的话就显示作者
  copyright: 宇宙小神特别萌 # (可不写)
  # -------------------------------------------------------------
  # Hexo link (Powered by Hexo).
  powered: false # true/false 是否显示Hexo信息-隐藏底部的强力驱动

  #主题信息
  theme:
    # Theme & scheme info link (Theme - NexT.scheme).
    enable: false # true/false 是否显示主题信息
    # Version info of NexT after scheme info (vX.X.X).
    version: false # true/false 是否显示主题版本
    

25、实现字数统计和阅读时长的功能

方式一:post_wordcount (不推荐)

#打开cmd,进入博客根目录

# 安装统计插件
npm install hexo-wordcount --save

主题配置文件: 开启统计功能

# 实现字数统计和阅读时长的功能
post_wordcount:
  item_text: true
  wordcount: true # false/true
  min2read: true # false/true
  totalcount: false
  separated_meta: true

方式二:symbols_count_time (推荐)

#打开cmd,进入博客根目录

# 安装统计插件
npm install hexo-symbols-count-time

#下载
git clone https://github.com/theme-next/hexo-symbols-count-time.git /node_modules/hexo-symbols-count-time
#进入目录
cd node_modules/hexo-symbols-count-time
#Test 测试
npm install mocha chai --save-dev
npm test
#Tests with coverage 覆盖率测试
npm install -g nyc
nyc --print both node_modules/.bin/_mocha -- test/index.js

主题配置文件: 开启统计功能

# Post wordcount display settings
# Dependencies: https://github.com/theme-next/hexo-symbols-count-time
# 实现字数统计和阅读时长的功能 (参考 https://github.com/theme-next/hexo-symbols-count-time)
symbols_count_time:
  separated_meta: true
  item_text_post: true
  item_text_total: false # false/true # 总字数
  awl: 4
  wpm: 275

方式三:不蒜子统计功能

主题配置文件

# 统计访客量以及文章阅读量
# NexT主题集成了不蒜子统计功能
busuanzi_count:
  # count values only if the other configs are false
  enable: true # false/true 是否开启不蒜子统计功能
  # custom uv span for the whole site
  # 效果:本站访客数12345人次
  site_uv: true
  #本站访客数
  site_uv_header: 本站访客数 <i class="fa fa-user"></i>
  site_uv_footer: 人次
  # custom pv span for the whole site
  # 效果:本站总访问量12345次(一般不开启这个)
  site_pv: true
  #本站总访问量
  site_pv_header: 本站总访问量 <i class="fa fa-eye"></i>
  site_pv_footer: 次
  # custom pv span for one page only
  ## 效果:本文总阅读量12345次
  page_pv: true
  #本文总阅读量
  page_pv_header: 本文总阅读量 <i class="fa fa-file-o"></i>
  page_pv_footer: 次
  

hexo博客解决不蒜子统计无法显示问题:

首先需要先找到NexT下引用不蒜子统计的方法。文件路径为/theme/next/layout/_third-party/analytics/busuanzi-counter.swig文件:

<!--修改前-->
  <script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>
<!--修改后-->
  <script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>

26、文章的置顶功能

#cmd 进入博客根目录

#卸载 hexo-generator-index
npm uninstall hexo-generator-index --save
#安装 hexo-generator-index-pin-top
npm install hexo-generator-index-pin-top --save

在需要置顶的文章的Front-matter中加上top: true 或者top: 任意数字,比如:

---
title: 文章置顶测试
top: 2
tags:
---

top中数字越大,文章越靠前。top: 2文章在top: 1文章的上方.

设置文章置顶图标:

打开/themes/next/layout/_macro/ 目录下的post.swig文件,在的第一个标签下,插入如下代码:

搜索"post-meta"

    <div class="post-meta">
            <!--新增代码,此注释不要添加-->
            {% if post.top %}
                <i class="fa fa-thumb-tack"></i>
                <font color=7D26CD>置顶</font>
                <span class="post-meta-divider">|</span>
            {% endif %}
    </dev>

27、修改字体大小

打开 \themes\next\source\css_\variables\base.styl , 将$font-size-base改为16px

// Font size
$font-size-base           = 16px

28、博客文章中插入图片

28.1 插入本地图片
#cmd 进入博客根目录

#方式一: hexo-asset-image  有时会失效
npm install hexo-asset-image --save

#方式二:比较稳定
npm install https://github.com/CodeFalling/hexo-asset-image --save

站点配置文件: 修改

post_asset_folder: true # false/true 是否启动资源文件夹

新建一片文章:

#cmd 进入博客根目录

#创建一片新文章
hexo new post ceshi

方式一:执行hexo new post ceshi 会创建一个同名的文件夹,将你博文中插入的照片放置到这个同名文件夹中即可,图片的命名随意,在文章中直接使用

# 添加图片:在想添加的位置写入![](图片名字.图片格式),例如:
<img src="ceshi/alipay.png" alt="测试1" style="zoom:25%;" /> #推荐
![测试2](ceshi/alipay.png)
![测试2](alipay.png)

方式二:hexo/source目录下新建一个img文件夹

使用本地路径:在hexo/source目录下新建一个img文件夹,将图片放入该文件夹下,插入图片时链接即为/img/图片名称.

在此路径下放一张图片 D:\blog\zhengjiaao\source\img\test.png

给ceshi.md文章插入图片

---
title: ceshi
date: 2019-12-26 16:29:35
tags:
---

![测试4](/img/alipay.png)

28.2 插入网络图片

河床存储图片:

![qwe](https://i.loli.net/2018/02/09/5a7d6a402e15e.jpg)

![jrebel插件安装.png](https://img.haomeiwen.com/i15645795/22ac925b9c130d7b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![](https://img.haomeiwen.com/i15645795/22ac925b9c130d7b.png)

但是有可能插入网络图片不显示,或者只显示某些网络图片.

执行命令:

#cmd 进入博客根目录

npm uninstall -g hexo-renderer-marked-lazy

然后在博客文章中加入:<meta name="referrer" content="no-referrer"/>

---
title: Docker安装常用软件2
tags:
  - Docker
categories: ''
resources: ''
copyright: false
comments: true
date: 2019-12-31 12:56:42
top:
---
<meta name="referrer" content="no-referrer"/>

![qwe](https://i.loli.net/2018/02/09/5a7d6a402e15e.jpg)

![jrebel插件安装.png](https://img.haomeiwen.com/i15645795/22ac925b9c130d7b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![](https://img.haomeiwen.com/i15645795/22ac925b9c130d7b.png)

29、添加博客自定义图标

#cmd 进入博客根目录

#安装 hexo-asset-image
npm install hexo-asset-image --save

站点配置文件: 修改

post_asset_folder: true # false/true 是否启动资源文件夹

使用本地路径:在hexo/source目录下新建一个img文件夹,将图片放入该文件夹下,插入图片时链接即为/img/图片名称。

Next支持修改图标,博客网站的图标可以在easyiconbitbugiconfont等网站选择和制作,然后选择或者创建相应大小的图标文件,放置在blog/themes/next/sources/img目录下,并在主题配置文件中进行如下配置,只需要设置small和medium两个就可以:

# 添加博客自定义图标
favicon: 
  small: /img/blog_favicon/favicon-16x16-next.png
  medium: /img/blog_favicon/favicon-32x32-next.png
  # apple_touch_icon: /images/apple-touch-icon-next.png
  # safari_pinned_tab: /images/logo.svg
  #android_manifest: /images/manifest.json
  #ms_browserconfig: /images/browserconfig.xml
  

30、文章结束语

在路径 \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>

修改 post.swig 文件
\themes\next\layout\_macro\post.swig中, post-body之后, post-footer之前添加如下代码(post-footer之前两个DIV),在 wechat-subscriber.swig 代码块下方添加:

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

主题配置文件:

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

31、侧边栏设置

设置主题配置文件,其中social表示社交信息,我们可以填入我们相关的链接,格式为链接名:链接地址 || 链接图标,其中链接图标必须是FontAwesome网站中存在的图标名。

# ***侧边栏设置***
# Posts / Categories / Tags in sidebar.
# site_state: true #默认true 是否在侧边栏加入日志、分类、标签等跳转链接

#侧边栏添加-社交账号: 格式为 链接名:链接地址 || 链接图标 ,链接图标必须是http://fontawesome.dashgame.com/网站中存在的图标名
social: 
  GitHub: https://github.com/zhengjiaao || github
  简书: https://www.jianshu.com/u/70d69269bd09 || book
social_icons:
  enable: true #是否显示社交图标
  icons_only: false #是否仅显示社交图标
  transition: false

# 侧边栏添加-友情链接
# Blog rolls 推荐阅读
links_icon: link
links_title: Links
# links_layout: block
links_layout: inline
links:
  Web前端导航: http://www.alloyteam.com/nav/
  创造狮导航: http://www.chuangzaoshi.com/code
  前端书籍资料: http://www.36zhen.com/t?id=3448
  掘金酱: http://e.xitu.io/
  V2EX: https://www.v2ex.com/
  印记中文: https://www.v2ex.com/
  # Title: http://example.com/

#将作者头像图片放置在blog/themes/next/source/images目录下,修改名称为avatar.gif
# 用户头像-成功
avatar: /images/avatar.gif
# avatar: #添加用户头像-失败
#   url: /images/avatar.gif
#   rounded: true #鼠标放在头像上时是否旋转
#   opacity: 1 #头像放缩指数
#   rotated: true # false/true ,头像是否设为圆形,否则为矩形

# Table Of Contents in the Sidebar
toc:
  enable: true #是否自动生成目录
  # Automatically add list number to toc.
  number: false #false/true 目录是否自动产生编号
  # If true, all words will placed on next lines if header width longer then sidebar width.
  wrap: false #标题过长是否换行
  # Maximum heading depth of generated toc. You can set it in one post through `toc_max_depth` var.
  # max_depth: 6 #最大标题深度

sidebar:
  # Sidebar Position, available value: left | right (only for Pisces | Gemini).
  position: left #侧边栏位置
  # position: right

  # Sidebar Display, available value (only for Muse | Mist):
  #  - post    expand on posts automatically. Default.
  #  - always  expand for all pages automatically
  #  - hide    expand only when click on the sidebar toggle icon.
  #  - remove  Totally remove sidebar including sidebar toggle.
  display: post
  #display: always
  #display: hide
  #display: remove

  # Sidebar offset from top menubar in pixels (only for Pisces | Gemini).
  offset: 12 # 默认12 侧边栏相对主菜单像素距离

  # Back to top in sidebar (only for Pisces | Gemini).
  b2t: true # false/true 是否提供一键置顶

  # Scroll percent label in b2t button.
  scrollpercent: true # false/true 是否显示当前阅读进度

  # Enable sidebar on narrow view (only for Muse | Mist).
  onmobile: false #手机上是否显示侧边栏

32、文章阴影设置

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

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

33、增强文章底部版权信息

1.在目录 themes/next/layout/_macro/ 下添加 my-copyright.swig ,内容如下:

{% if page.copyright %}
<div class="my_post_copyright">
  <script src="//cdn.bootcss.com/clipboard.js/1.5.10/clipboard.min.js"></script>
  
  <!-- JS库 sweetalert 可修改路径 -->
  <script type="text/javascript" src="http://jslibs.wuxubj.cn/sweetalert_mini/jquery-1.7.1.min.js"></script>
  <script src="http://jslibs.wuxubj.cn/sweetalert_mini/sweetalert.min.js"></script>
  <link rel="stylesheet" type="text/css" href="http://jslibs.wuxubj.cn/sweetalert_mini/sweetalert.mini.css">

  <p><span>本文标题:</span>{{ page.title }}</a></p>
  <p><span>文章作者:</span>{{ theme.author }}</a></p>
  <p><span>发布时间:</span>{{ page.date.format("YYYY年MM月DD日 - HH:mm:ss") }}</p>
  <p><span>最后更新:</span>{{ page.updated.format("YYYY年MM月DD日 - HH:mm:ss") }}</p>
  <p><span>原始链接:</span><a href="{{ url_for(page.path) }}" title="{{ page.title }}">{{ page.permalink }}</a>
    <span class="copy-path"  title="点击复制文章链接"><i class="fa fa-clipboard" data-clipboard-text="{{ page.permalink }}"  aria-label="复制成功!"></i></span>
  </p>
  <p><span>许可协议:</span><i class="fa fa-creative-commons"></i> <a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/" target="_blank" title="Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)">署名-非商业性使用-禁止演绎 4.0 国际</a> 转载请保留原文链接及作者。</p>  
</div>
<script> 
    var clipboard = new Clipboard('.fa-clipboard');
    clipboard.on('success', $(function(){
      $(".fa-clipboard").click(function(){
        swal({   
          title: "",   
          text: '复制成功',   
          html: false,
          timer: 500,   
          showConfirmButton: false
        });
      });
    }));  
</script>
{% endif %}

2.在目录 themes/next/source/css/_common/components/post/ 下添加 my-post-copyright.styl,内容如下:

.my_post_copyright {
  width: 85%;
  max-width: 45em;
  margin: 2.8em auto 0;
  padding: 0.5em 1.0em;
  border: 1px solid #d3d3d3;
  font-size: 0.93rem;
  line-height: 1.6em;
  word-break: break-all;
  background: rgba(255,255,255,0.4);
}
.my_post_copyright p{margin:0;}
.my_post_copyright span {
  display: inline-block;
  width: 5.2em;
  color: #333333; // title color
  font-weight: bold;
}
.my_post_copyright .raw {
  margin-left: 1em;
  width: 5em;
}
.my_post_copyright a {
  color: #808080;
  border-bottom:0;
}
.my_post_copyright a:hover {
  color: #0593d3; // link color
  text-decoration: underline;
}
.my_post_copyright:hover .fa-clipboard {
  color: #000;
}
.my_post_copyright .post-url:hover {
  font-weight: normal;
}
.my_post_copyright .copy-path {
  margin-left: 1em;
  width: 1em;
  +mobile(){display:none;}
}
.my_post_copyright .copy-path:hover {
  color: #808080;
  cursor: pointer;
}

3.修改 themes/next/layout/_macro/post.swig ,如下:

在 wechat-subscriber.swig 代码块前添加:

<div>
    {% if not is_index %}
        {% include 'my-copyright.swig' %}
    {% endif %}
</div>

4.打开 themes/next/source/css/_common/components/post/post.styl 文件,在最后一行增加代码:

@import "my-post-copyright"

5.设置新建文章自动开启 copyright ,即新建文章自动显示自定义的版权声明,设置 ~/scaffolds/post.md 文件,如下:

---
title: {{ title }}
date: {{ date }}
copyright: true # 是否开启版权底部版权信息
---

新建一片文章

#cmd 进入博客根目录

hexo new post ceshi

查看文章是否看起版权信息。

34、添加页面宠物

首先在博客目录下执行:

#cmd 进入博客根目录

#安装 hexo-helper-live2d
npm install -save hexo-helper-live2d

站点配置文件: 新增

#添加页面宠物
live2d:
  enable: true
  scriptFrom: local
  pluginRootPath: live2dw/
  pluginJsPath: lib/
  pluginModelPath: assets/
  tagMode: false
  model:
    use: live2d-widget-model-wanko  #选择哪种模型
  display: #放置位置和大小
    position: right
    width: 150
    height: 300
  mobile:
    show: false #是否在手机端显示

上面模型的选择可在lived2d中选择,并下载相应的模型:

npm install live2d-widget-model-wanko

35、设置代码块样式

站点配置文件:

# 代码块的设置,Hexo自带的代码高亮插件
highlight:
  enable: true #是否开启代码高亮
  line_number: true #是否增加代码行号,代码块的行号显示
  auto_detect: false #自动判断代码语言
  tab_replace: ''
  wrap: true
  hljs: false

主题配置文件:

#代码块主题
highlight_theme: normal # normal/night 白色/黑色

36、代码块增加复制按钮功能

为了提高博客代码块的用户体验,仅仅代码高亮还不行,最好还能一键复制代码。

下载 clipboard.js
clipboard.js
clipboard.min.js 推荐

将clipboard.js或clipboard.min.js 放到\themes\next\source\js\src下

也是在.\themes\next\source\js\src目录下,创建clipboard-use.js,文件内容如下:

/*页面载入完成后,创建复制按钮*/
!function (e, t, a) { 
  /* code */
  var initCopyCode = function(){
    var copyHtml = '';
    copyHtml += '<button class="btn-copy" data-clipboard-snippet="">';
    copyHtml += '  <i class="fa fa-globe"></i><span>copy</span>';
    copyHtml += '</button>';
    $(".highlight .code pre").before(copyHtml);
    new ClipboardJS('.btn-copy', {
        target: function(trigger) {
            return trigger.nextElementSibling;
        }
    });
  }
  initCopyCode();
}(window, document);

.\themes\next\source\css\_custom\custom.styl样式文件中添加下面代码:

//代码块复制按钮
.highlight{
  //方便copy代码按钮(btn-copy)的定位
  position: relative;
}
.btn-copy {
    display: inline-block;
    cursor: pointer;
    background-color: #eee;
    background-image: linear-gradient(#fcfcfc,#eee);
    border: 1px solid #d5d5d5;
    border-radius: 3px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-appearance: none;
    font-size: 13px;
    font-weight: 700;
    line-height: 20px;
    color: #333;
    -webkit-transition: opacity .3s ease-in-out;
    -o-transition: opacity .3s ease-in-out;
    transition: opacity .3s ease-in-out;
    padding: 2px 6px;
    position: absolute;
    right: 5px;
    top: 5px;
    opacity: 0;
}
.btn-copy span {
    margin-left: 5px;
}
.highlight:hover .btn-copy{
  opacity: 1;
}

.\themes\next\layout\_layout.swig文件中,添加引用(注:在 swig 末尾或 body 结束标签之前添加):

  <!-- 代码块复制功能 -->
  <script type="text/javascript" src="/js/src/clipboard.min.js"></script>  
  <script type="text/javascript" src="/js/src/clipboard-use.js"></script>

37、设置博客摘要-全文显示

对于摘要显示,首先我们需要开启摘要功能,修改主题配置文件:

# Automatically scroll page to section which is under <!-- more --> mark.
scroll_to_more: true #选取博客正文<!--more-->前的内容

# Automatically saving scroll position on each post/page in cookies.
save_scroll: false

# Automatically excerpt description in homepage as preamble text.
excerpt_description: true #自动截取摘要

# Automatically Excerpt. Not recommend.
# Please use <!-- more --> in the post to control excerpt accurately.
auto_excerpt:
  enable: false #自动截取一定程度的摘要
  length: 150

38、文章内链接样式

修改文件 themes\next\source\css\_common\components\post\post.styl,在末尾添加如下css样式:

// 文章内链接文本样式
.post-body p a{
  color: #0593d3;
  border-bottom: none;
  border-bottom: 1px solid #0593d3;
  &:hover {
    color: #fc6423;
    border-bottom: none;
    border-bottom: 1px solid #fc6423;
  }
}

39、加入网易云音乐播放器

首先在网页搜索网易云音乐,选择音乐,并生成外链:

例如生成的连接:

<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="//music.163.com/outchain/player?type=2&id=411214279&auto=1&height=66"></iframe>

将代码粘贴到一个合适的位置,建议放在侧边栏,在Blog/themes/next/layout/_macro/sidebar.swig文件下,选择位置复制进去,不同位置效果不同,建议放到最后,不然会遮挡下方内容。

我的加入网易云音乐播放器配置方式:

第一步:在Blog/themes/next/layout/_macro/sidebar.swig文件添加代码:

      {% if theme.background_music %}
       <div>
          <iframe class="cc-license motion-element" frameborder="no" border="0" marginwidth="0" marginheight="0" width="280" height="86" src="{{ theme.background_music }}"></iframe>
       </div>
      {% endif %}

第二步:在 themes/next/_config.yml 配置文件中添加歌单地址配置

#添加歌单地址配置
background_music: //music.163.com/outchain/player?type=2&id=411214279&auto=1&height=66

40、设置RSS订阅

在博客主目录下执行:

#cmd 进入博客根目录

#安装 hexo-generator-feed
npm install --save hexo-generator-feed

在站点配置文件中修改:

#RSS订阅
feed:
  type: atom
  path: atom.xml
  limit: 20
  hub:
  content:
  content_limit: 140
  content_limit_delim: ' '

# 配置 RSS订阅 插件
plugins: hexo-generate-feed

然后设置主题配置文件:

# Set rss to false to disable feed link.
rss: /atom.xml

41、设置文章头信息post.md

新建文章自动显示自定义头信息。

设置 找到博客根目录下/scaffolds/post.md 文件,添加如下:

---
title: {{ title }}
date: {{ date }}
top:   # 文章是否置顶
tags:  # 标签  配置 1.单个"" 2.多个 [] 按","号分割 3.多个- 按行
    - 
categories: ""  # 分类 配置 1.单个"" 2.多个 [] 按","号分割 3.多个- 按行
resources: ""   # 资源 一般是可下载资源
copyright: false # false/true 自动显示自定义的文章底部版权声明
comments: true  # false/true 关闭文章底部Valine评论功能
---

新建一片文章

#cmd 进入博客根目录

hexo new post ceshi

查看文章是否看起版权信息。

42、设置菜单信息page.md

设置 找到博客根目录下/scaffolds/page.md 文件,添加如下:

#修改前
---
title: {{ title }}
date: {{ date }}
---

#修改后
---
title: {{ title }} # 中文博客 需要手动改为中文简体
date: {{ date }}
comments: false  # false/true 关闭文章底部Valine评论功能
type: {{ title }}
---

创建菜单

#cmd 进入博客根目录下

#创建资源页
hexo n page resources
#创建标签页
hexo n page tags
#创建分类页
hexo n page categories

打开 D:\blog\zhengjiaao\source\resources\index.md 修改

#修改前
---
title: resources
comments: false
type: resources
date: 2019-12-27 09:52:20
---

#修改后
---
title: 资源
comments: false
type: resources
date: 2019-12-27 09:52:20
---

打开 \themes\next\languages\zh-Hans.yml 新增资源翻译中文

menu:
  home: 首页
  archives: 归档
  categories: 分类
  tags: 标签
  about: 关于
  search: 搜索
  schedule: 日程表
  sitemap: 站点地图
  commonweal: 公益404
  resources: 资源  #新增资源翻译中文

主题配置文件: 新增菜单

menu:
  home: /|| home
  #about: /about/ || user
  tags: /tags/|| tags #标签页
  categories: /categories/|| th #分类页
  #archives: /archives/|| archive
  #schedule: /schedule/|| calendar #日历
  #sitemap: /sitemap.xml|| sitemap #站点地图,供搜索引擎爬取
  #commonweal: /404/|| heartbeat # 腾讯公益404
  resources: /resources/|| download #资源

43、主页、归档、标签及分类分别控制

#cmd 进入博客根目录

#安装 
npm install hexo-generator-index --save
npm install hexo-generator-archive --save
npm install hexo-generator-tag --save
npm install hexo-generator-category --save

站点配置文件:

#博客首页分页设置
index_generator:
  path: '' #博客的默认路径
  per_page: 10 #主页中每页显示的贴子,0表示禁止分页
  order_by: -date #博客排序,按时间倒序排列

#归档页的分页设置
archive_generator: #归档页的配置
  per_page: 5 #归档页每页博客数
  yearly: true #按年归档
  monthly: true # false/true 按月归档,为了加快生成速度,按月归档可不要

#标签页的分页设置
tag_generator:
  per_page: 5 #标签页每页博客数

#分类页的分页设置
category_generator:
  per_page: 5  #值为0表示不分页,按需填写
 

44、文章标签显示和文章字数显示设置-未测

#cmd 进入项目根目录

#安装
npm install hexo-wordcount --save

主题配置文件:

# Post meta display settings
## 文章标签显示设置
post_meta:
  item_text: true
  created_at: true # 发表时间
  updated_at: false # 更新时间
  categories: true # 分类

# Post wordcount display settings
# Dependencies: https://github.com/willin/hexo-wordcount
# 实现字数统计和阅读时长的功能 (下载 npm install hexo-wordcount --save)
post_wordcount:
  item_text: true
  wordcount: true # false/true  # 显示字数
  min2read: true # false/true   # 所需时间
  totalcount: false # false/true # 总字数
  separated_meta: true # 分割符

45、分页显示问题-未测

打开 themes/next/layout/_partials/pagination.swig

//修改前
{% if page.prev or page.next %}
  <nav class="pagination">
    {{
      paginator({
        prev_text: '<i class="fa fa-angle-left"></i>',
        next_text: '<i class="fa fa-angle-right"></i>',
        mid_size: 1
      })
    }}
  </nav>
{% endif %}

//修改后
{%- if page.prev or page.next %}
 <nav class="pagination">
   {{
     paginator({
       prev_text: '<i class="fa fa-angle-left" aria-label="'+__('accessibility.prev_page')+'"></i>',
       next_text: '<i class="fa fa-angle-right" aria-label="'+__('accessibility.next_page')+'"></i>',
       mid_size: 1
     })
   }}
 </nav>
{%- endif %}

46、修改Pisces主题宽度-未测

打开编辑themes\next\source\css\_schemes\Pisces\_layout.styl,在底部添加如下代码

// 以下为新增代码!!
header{ width: 90% !important; }
header.post-header {
  width: auto !important;
}
.container .main-inner { width: 90%; }
.content-wrap { width: calc(100% - 260px); }

.header {
  +tablet() {
    width: auto !important;
  }
  +mobile() {
    width: auto !important;
  }
}

.container .main-inner {
  +tablet() {
    width: auto !important;
  }
  +mobile() {
    width: auto !important;
  }
}

.content-wrap {
  +tablet() {
    width: 100% !important;
  }
  +mobile() {
    width: 100% !important;
  }
}

47、设置主题透明度-未测

打开 /themes/next/source/css/_schemes/Pisces/_layout.styl

# 透明度参数 
opacity: 1;

48、配置全局,标题、文章、代码块等字体

主题配置文件:

# 配置站点文字:修改全局字体,标题字体、文章字体、logo字体、代码块字体
font:
  enable: true # false/true

  # Uri of fonts host. E.g. //fonts.googleapis.com (Default).
  host:

  # Font options:
  # `external: true` will load this font family from `host` above.
  # `family: Times New Roman`. Without any quotes.
  # `size: xx`. Use `px` as unit.

  # Global font settings used on <body> element.
  global:
    external: true
    family: Lato
    size:

  # Font settings for Headlines (h1, h2, h3, h4, h5, h6).
  # Fallback to `global` font settings.
  headings:
    external: true
    family:
    size:

  # Font settings for posts.
  # Fallback to `global` font settings.
  posts:
    external: true
    family:

  # Font settings for Logo.
  # Fallback to `global` font settings.
  logo:
    external: true
    family:
    size:

  # Font settings for <code> and code blocks.
  codes:
    external: true
    family:
    size:

49 显示最近博客

参考:https://github.com/tea3/hexo-related-popular-posts

#cmd 进入博客根目录

#安装
npm install hexo-related-popular-posts --save

主题配置文件:

# 显示最近博客 :一个hexo插件,它生成到相关帖子或热门帖子的链接列表
related_posts:
  enable: true # false/true
  title: # Custom header, leave empty to use the default one ,自定义页眉,保留为空以使用默认页眉
  display_in_home: false
  params:
    maxCount: 5
    #PPMixingRate: 0.0
    #isDate: false
    #isImage: false
    #isExcerpt: false

文章中使用:

---
title: Hello World
tags:
  - program
  - diary
  - web
---
Welcome to [Hexo](https://hexo.io/)! This is a sample article. Let's add some tags as above.
...

50、添加主题动态背景图片

主题配置文件: 找到custom_file_path,将如图所示的代码取消注释

custom_file_path:
  style: source/_data/styles.styl #添加主题背景

站点根目录:新建文件 source/_data/styles.styl

// 添加背景图片
body {
      background: url(https://source.unsplash.com/random/1600x900?wallpapers);//自己喜欢的图片地址
      background-size: cover;
      background-repeat: no-repeat;
      background-attachment: fixed;
      background-position: 50% 50%;
}

// 修改主体透明度
.main-inner {
      background: #fff;
      opacity: 0.8;
}

// 修改菜单栏透明度
.header-inner {
      opacity: 0.8;
}

51、hexo博客部署到远端的Github

cmd进入博客根目录

# cmd 进入本地博客根目录

#清除缓存
hexo clean
#先生成静态资源
hexo g
#本地启动博客测试-没有问题就发布到github上
hexo s
#发布到github,可能-提示 ERROR Deployer not found: git,安装hexo-deployer-git
hexo d

# 安装hexo-deployer-git
npm install hexo-deployer-git --save

# 需要重新执行前面的所有命令
#清除缓存
hexo clean
#先生成静态资源
hexo g
#本地启动博客测试-没有问题就发布到github上
hexo s
#发布到github,可能-提示 ERROR Deployer not found: git,安装hexo-deployer-git
hexo d

发布完成可以在浏览器中访问 github上的博客域名:

https://zhengjiaao.github.io/

上一篇下一篇

猜你喜欢

热点阅读