前言

博客主题已更新至3.1
一些直接修改主题配置文件的功能就不说了。

Front-matter

markdown文件最上方以---分隔的区域

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
---
title:
date:
updated:
tags:
categories:
keywords:
description:
top_img:
comments:
cover:
toc:
toc_number:
auto_open:
copyright:
mathjax:
katex:
aplayer:
highlight_shrink:
---
写法 说明
title 【必需】文章标题
date 【必需】文章创建日期
updated 【可选】文章更新日期
tags 【可选】文章标籤
categories 【可选】文章分类
keywords 【可选】文章关键字
description 【可选】文章描述
top_img 【可选】文章顶部图片
cover 【可选】文章缩略图(如果没有设置top_img,文章页顶部将显示缩略图,可设为false/图片地址/留空)
comments 【可选】显示文章评论模块(默认 true)
toc 【可选】显示文章TOC(默认为设置中toc的enable配置)
toc_number 【可选】显示toc_number(默认为设置中toc的number配置)
auto_open 【可选】是否自动打开TOC(默认为设置中toc的auto_open配置)
copyright 【可选】显示文章版权模块(默认为设置中post_copyright的enable配置)
mathjax 【可选】显示mathjax(当设置mathjax的per_page: false时,才需要配置,默认 false)
katex 【可选】显示katex(当设置katex的per_page: false时,才需要配置,默认 false)
aplayer 【可选】在需要的页面加载aplayer的js和css,请参考文章下面的音乐 配置
highlight_shrink 【可选】配置代码框是否展开(true/false)(默认为设置中highlight_shrink的配置)

新建页面

1
hexo new page "pagename"

代码换行

配置butterfly.yml

1
code_word_wrap: true

找到HEXO根目录配置文件,將line_number改成false:

1
2
3
4
5
highlight:
enable: true
line_number: false
auto_detect: false
tab_replace:

文章置顶

首先安裝插件(hexo-generator-index-pin-top 或者 hexo-generator-indexed)

如果使用hexo-generator-index-pin-top, 需要先卸载掉hexo-generator-index,然後在文章的front-matter区域添加top: true屬性來把這篇文章置頂

如果使用hexo-generator-indexed, 需要先卸载掉hexo-generator-index,然后在文章的front-matter区域添加sticky: 1。数值越大,置頂的优先越大。

顶部图

page页直接在主题配置文件中修改,post页可在front-matter中设置top_img属性,即top_img: 图片地址

文章封面

在Front-matter中添加cover: 图片地址,同时在主题配置文件中修改封面配置。

标签外挂

Note

1
2
3
4
5
6
7
8
9
10
11
12
note:
# Note tag style values:
# - simple bs-callout old alert style. Default.
# - modern bs-callout new (v2-v3) alert style.
# - flat flat callout style with background, like on Mozilla or StackOverflow.
# - disabled disable all CSS styles import of note tag.
style: flat
icons: false
border_radius: 3
# Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
# Offset also applied to label tag variables. This option can work with disabled note tag.
light_bg_offset: 0

用法:

1
2
3
4
5
6
7
8
{%note [class] [no-icon] %}
Any content (support inline tags too.io).
{%endnote %}

[class] : default | primary | success | info | warning | danger.
[no-icon] : Disable icon in note.

All parameters are optional.

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{%note default %}
default 提示
{%endnote %}

{%note primary no-icon %}
primary 提示
{%endnote %}

{%note success %}
success 提示
{%endnote %}

{%note info %}
info 提示
{%endnote %}

{%note warning %}
warning 提示
{%endnote %}

{%note danger %}
danger 提示
{%endnote %}

default 提示

primary 提示

success 提示

info 提示

warning 提示

danger 提示

相册图库

示例:

1
2
3
4
<div class="gallery-group-main">
{%galleryGroup 'Pixiv' '收藏的一些插画' '/photo/pixiv' https://whitenight999.gitee.io/img/pixiv/07.jpg %}
{%galleryGroup 'CG' '永远的7日之都' '/photo/forever7' https://whitenight999.gitee.io/img/forever7/05.jpg %}
</div>

相册

示例:

1
2
3
4
5
6
7
8
9
{%gallery %}
![](https://whitenight999.gitee.io/img/pixiv/01.jpg)
![](https://whitenight999.gitee.io/img/pixiv/02.jpg)
![](https://whitenight999.gitee.io/img/pixiv/03.jpg)
![](https://whitenight999.gitee.io/img/pixiv/04.jpg)
![](https://whitenight999.gitee.io/img/pixiv/05.jpg)
![](https://whitenight999.gitee.io/img/pixiv/06.jpg)
![](https://whitenight999.gitee.io/img/pixiv/07.jpg)
{%endgallery %}

Tabs

使用方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

{%tabs Unique name, [index] %}
<!-- tab [Tab caption] [@icon] -->
Any content (support inline tags too).
<!-- endtab -->
{%endtabs %}

Unique name : Unique name of tabs block tag without comma.
Will be used in #id's as prefix for each tab with their index numbers.
If there are whitespaces in name, for generate #id all whitespaces will replaced by dashes.
Only for current url of post/page must be unique!
[index] : Index number of active tab.
If not specified, first tab (1) will be selected.
If index is -1, no tab will be selected. It's will be something like spoiler.
Optional parameter.
[Tab caption] : Caption of current tab.
If not caption specified, unique name with tab index suffix will be used as caption of tab.
If not caption specified, but specified icon, caption will empty.
Optional parameter.
[@icon] : FontAwesome icon name (full-name, look like 'fas fa-font')
Can be specified with or without space; e.g. 'Tab caption @icon' similar to 'Tab caption@icon'.
Optional parameter.

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
{%tabs test1 %}
<!-- tab -->
**This is Tab 1.**
<!-- endtab -->

<!-- tab -->
**This is Tab 2.**
<!-- endtab -->

<!-- tab -->
**This is Tab 3.**
<!-- endtab -->
{%endtabs %}

This is Tab 1.

This is Tab 2.

This is Tab 3.

1
2
3
4
5
6
7
8
9
10
11
12
13
{%tabs test2, 3 %}
<!-- tab -->
**This is Tab 1.**
<!-- endtab -->

<!-- tab -->
**This is Tab 2.**
<!-- endtab -->

<!-- tab -->
**This is Tab 3.**
<!-- endtab -->
{%endtabs %}

This is Tab 1.

This is Tab 2.

This is Tab 3.

1
2
3
4
5
6
7
8
9
10
11
12
13
{%tabs test3, -1 %}
<!-- tab -->
**This is Tab 1.**
<!-- endtab -->

<!-- tab -->
**This is Tab 2.**
<!-- endtab -->

<!-- tab -->
**This is Tab 3.**
<!-- endtab -->
{%endtabs %}

This is Tab 1.

This is Tab 2.

This is Tab 3.

自定义 Tab 名 + 只有 icon + icon 和 Tab 名:

1
2
3
4
5
6
7
8
9
10
11
12
13
{%tabs test4 %}
<!-- tab 第一個Tab -->
**tab名字為第一個Tab**
<!-- endtab -->

<!-- tab @fab fa-apple-pay -->
**只有圖標 沒有Tab名字**
<!-- endtab -->

<!-- tab 炸彈@fas fa-bomb -->
**名字+icon**
<!-- endtab -->
{%endtabs %}

tab名字為第一個Tab

只有圖標 沒有Tab名字

名字+icon

tag-hide

tag-hide 内的标签外挂 content 内都不建议有 h1 - h6 等标题。因为 Toc 会把隐藏内容标题也显示出来,而且当滚动屏幕时,如果隐藏内容没有显示出来,会导致 Toc 的滚动出现异常。

inline 在文本里面添加按钮隐藏内容,只限文字

1
{%hideInline content,display,bg,color %}

content: 文本内容
display: 按钮显示的文字 (可选)
bg: 按钮的背景颜色 (可选)
color: 按钮文字的颜色 (可选)
( content 不能包含英文逗号,可用 ‚)

示例:

1
2
3
😓人和人是不能一概而论的 {%hideInline 直接写下了这个示例,我曾经在极度愤怒的情况下,#FF7242,#fff %}

click here{%hideInline true %}

😓人和人是不能一概而论的 直接写下了这个示例

click heretrue

block 独立的 block 隐藏内容,可以隐藏很多内容,包括图片,代码块等等

( display 不能包含英文逗号,可用 ‚)

1
2
3
{%hideBlock display,bg,color %}
content
{%endhideBlock %}

content: 文本内容
display: 按钮显示的文字 (可选)
bg: 按钮的背景颜色 (可选)
color: 按钮文字的颜色 (可选)
示例:

1
2
3
{%hideBlock 查看答案 %}
XXX
{%endhideBlock %}

XXX

如果你需要展示的内容太多,可以把它隐藏在收缩框里,需要时再把它展开。

( display 不能包含英文逗号,可用 ‚)

1
2
3
{%hideToggle display,bg,color %}
content
{%endhideToggle %}

示例:

1
2
3
{%hideToggle 显示的标题 %}
隐藏的内容
{%endhideToggle %}
显示的标题

隐藏的内容

Button

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{%btn [url],[text],[icon],[color] [style] [layout] [position] [size] %}

[url] : 链接
[text] : 按钮文字
[icon] : [可选] 图标
[color] : [可选] 按钮背景顔色(默认style时)
按钮字体和边框顔色(outline时)
default/blue/pink/red/purple/orange/green
[style] : [可选] 按钮样式 默认实心
outline/留空
[layout] : [可选] 按钮佈局 默认为line
block/留空
[position] : [可选] 按钮位置 前提是设置了layout为block 默认为左边
center/right/留空
[size] : [可选] 按钮大小
larger/留空

示例:

1
2
3
4
5
This is my website, click the button {%btn 'http://whitenight999.top',WhiteNight %}
This is my website, click the button {%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right %}
This is my website, click the button {%btn 'http://whitenight999.top',WhiteNight,,outline %}
This is my website, click the button {%btn 'http://whitenight999.top',WhiteNight ,far fa-hand-point-right,outline %}
This is my website, click the button {%btn 'http://whitenight999.top',WhiteNight ,far fa-hand-point-right,larger %}

This is my website, click the button WhiteNight
This is my website, click the button WhiteNight
This is my website, click the button WhiteNight
This is my website, click the button WhiteNight
This is my website, click the button WhiteNight

1
2
3
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,block %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,block center larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,block right outline larger %}
WhiteNight WhiteNight WhiteNight
1
2
3
4
5
6
7
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,blue larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,pink larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,red larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,purple larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,orange larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,green larger %}
WhiteNight WhiteNight WhiteNight WhiteNight WhiteNight WhiteNight WhiteNight
1
2
3
4
5
6
7
8
9
<div class="btn-center">
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,outline larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,outline blue larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,outline pink larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,outline red larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,outline purple larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,outline orange larger %}
{%btn 'http://whitenight999.top',WhiteNight,far fa-hand-point-right,outline green larger %}
</div>

标签外挂功能增强

此部分修改主要引用了主题volantis
首先下载该主题目录下/scripts/tags/中需要文件,将其复制至博客主题文件\scripts\tags路径下。

按钮Btns

引入代码:

1
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/whitenight999/hexo@latest/css/btns.css">

写法:

1
2
3
4
{%btns 样式参数 %}
{%cell 标题, 链接, 图片或者图标 %}
{%cell 标题, 链接, 图片或者图标 %}
{%endbtns %}

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
{%btns circle grid5 %}
{%cell WhiteNight, https://whitenight999.top/, https://whitenight999.top/img/head.jpg %}
{%cell WhiteNight, https://whitenight999.top/, https://whitenight999.top/img/head.jpg %}
{%cell WhiteNight, https://whitenight999.top/, https://whitenight999.top/img/head.jpg %}
{%cell WhiteNight, https://whitenight999.top/, https://whitenight999.top/img/head.jpg %}
{%cell WhiteNight, https://whitenight999.top/, https://whitenight999.top/img/head.jpg %}
{%endbtns %}


{%btns rounded grid5 %}
{%cell 下载源码, /, fa fa-download %}
{%cell 查看文档, /, fa fa-download %}
{%endbtns %}

可以在容器内增加 <b>标题</b> <p>描述文字</p>

圆角参数:

1
rounded, circle

布局样式:

写法 说明
参数 含义
wide 宽一点的按钮
fill 填充布局,自动铺满至少一行,多了会换行。
center 居中,按钮之间是固定间距。
around 居中分散
grid2 等宽最多2列,屏幕变窄会适当减少列数。
grid3 等宽最多3列,屏幕变窄会适当减少列数。
grid4 等宽最多4列,屏幕变窄会适当减少列数。
grid5 等宽最多5列,屏幕变窄会适当减少列数。

折叠容器Folding

引入代码:

1
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/whitenight999/hexo@latest/js/folding.js">

写法:

1
2
3
4
5
{%folding 参数(可选), 标题 %}

折叠内容

{%endfolding %}

参数位置可以填写颜色和状态,多个参数用空格隔开。
状态填写 open 代表默认打开
颜色:

1
blue, cyan, green, yellow, red

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
{%folding red open, 折叠测试 %}

这里是测试内容

{%endfolding %}



{%folding blue, 图片测试 %}

![](https://whitenight999.top/img/head.jpg)

{%endfolding %}

时间线Timeline

引入代码:

1
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/whitenight999/hexo@latest/css/timeline.css">

写法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{%timeline 时间线 %}

{%timenode 2020-08-09 [测试](https://whitenight999.top/) %}

今天是2020-08-09

{%endtimenode %}

{%timenode 2020-08-08 [测试](https://whitenight999.top/) %}

今天是2020-08-08

{%endtimenode %}

{%endtimeline %}

页脚修改

添加跳动的心
首先在博客引入这个开源css
\themes\butterfly\layout\includes\footer.pug,找到此段代码:

1
2
3
4
if theme.footer.owner.since && theme.footer.owner.since != nowYear
.copyright!= `&copy;${theme.footer.owner.since} - ${nowYear} By ${config.author}`
else
.copyright!= `&copy;${nowYear} By ${config.author}`

修改为

1
2
3
4
if theme.footer.owner.since && theme.footer.owner.since != nowYear
.copyright!= `&copy;${theme.footer.owner.since} - ${nowYear} <i style="color:#FF6A6A" class="fa fa-heartbeat"></i> ${config.author}`
else
.copyright!= `&copy;${nowYear} <i style="color:#FF6A6A;animation: announ_animation 0.8s linear infinite;" class="fa fa-heartbeat"></i> ${config.author}`

动态图标

On DOM load On hover On parent hover
faa-wrench animated faa-wrench animated-hover faa-wrench
faa-ring animated faa-ring animated-hover faa-ring
faa-horizontal animated faa-horizontal animated-hover faa-horizontal
faa-vertical animated faa-vertical animated-hover faa-vertical
faa-flash animated faa-flash animated-hover faa-flash
faa-bounce animated faa-bounce animated-hover faa-bounce
faa-spin animated faa-spin animated-hover faa-spin
faa-float animated faa-float animated-hover faa-float
faa-pulse animated faa-pulse animated-hover faa-pulse
faa-shake animated faa-shake animated-hover faa-shake
faa-tada animated faa-tada animated-hover faa-tada
faa-passing animated faa-passing animated-hover faa-passing
faa-passing-reverse animated faa-passing-reverse animated-hover faa-passing-reverse
faa-burst animated faa-burst animated-hover faa-burst
faa-falling animated faa-falling animated-hover faa-falling
faa-rising animated faa-rising animated-hover faa-rising

如果使用 On parent hover 需要向父级元素添加 class 名 faa-parent animated-hover。其余两个不需要。另外可以通过添加faa-fast动画加速,faa-slow动画减速

去掉首页banner图

在main.js添加

1
2
3
4
5
//隐藏首页banner图
var full_page = document.getElementsByClassName("full_page");
if (full_page.length != 0) {
full_page[0].style.background = "transparent";
}

移动端优化

新建一个css并引入:

1
2
3
4
5
6
7
8
/*移动端优化:去除归档、标签、最新文章、公告、、只保留网站统计*/

@media screen and (max-width: 800px) {
#aside_content div:not(:last-child) {
display: none;
font-size: 13px;
}
}

随机背景图

\Butterfly\layout\includes\layout.pug

找到代码:

1
2
if theme.background
- var is_photo = theme.background.substring(3,0) === 'url' ? 'photo':'color'

修改:

1
2
if theme.background
- var is_photo = 'photo'

找到代码:

1
2
footer#footer(style=footer_bg data-type=is_bg)
!=partial('includes/footer', {}, {cache:theme.fragment_cache})

在其下方增加代码后:

1
2
3
4
5
footer#footer(style=footer_bg data-type=is_bg)
!=partial('includes/footer', {}, {cache:theme.fragment_cache})
#if !is_post()
script() var bg_index = Math.floor(Math.random() * #{theme.background_num});var res = 'background-image: url("/img/banner/' + bg_index + '.jpg"); background-attachment: fixed;';document.getElementById('web_bg').style = res

if !is_post()表示文章页面不采用随机背景

修改完毕后在配置文件中将background设置为任意颜色,并添加代码:

1
2
3
# 随机背景图banner的数量
background_num: 16

未完待续。。。

本文参考于官方文档,部分功能参考于小康大佬