butterfly折腾(二)基本设置
官方主题基础功能设置与插件安装,不涉及主题源码修改
设置说明
为了减少升级主题后带来的不便,建议把主题目录的themes/butterfly/_config.yml
文件复制一份,重命名为_config.butterfly.yml
放到博客根目录,这样只需修改_config.butterfly.yml
里的配置即可修改主题配置,无需改动主题源码。
主题版本:Hexo_6.2.0
+ Buttrtfly_4.3.1
相关概念:
站点配置文件:_config.yml
站点配置文件内部链接相对路径:source
主题配置文件:themes/butterfly/_config.yml
主题配置文件内部链接相对路径:themes/butterfly/source
主题设置
布局设置
导航栏
修改主题配置文件
格式:页面名字: /路径/ || 图标
默认图标库:Fontawesome 图标库
1 | menu: |
移动端导航栏子目录默认是展开的,如果你想要隐藏,在子目录里添加hide
侧边栏
1 | aside: |
功能设置
站点信息
修改站点配置文件
,Ctrl+F
搜索title:
1 | # Site |
社交图标
社交卡片底部图标
修改主题配置文件
,格式:icon: link || the description
1 | social: |
文章锚点
打开文章锚点后,当你滚动文章页面时,文章链接会根据标题ID进行替换,用于文章的快速定位。
修改主题配置文件
1 | anchor: true |
评论系统
此处使用的是waline,waline搭建教程。
waline搭建完毕后修改主题配置文件
1 | comments: |
waline 官方的 CDN 地址,可用于加速
1 | CDN: |
页脚设置
修改主题配置文件
1 | footer: |
运行时间
修改主题配置文件
1 | runtimeshow: |
广告设置
主题集成谷歌广告(自动广告)
修改主题配置文件
1 | google_adsense: |
主题预留了三个位置可供插入广告,分别为主页文章(每三篇文章出现广告)/aside公告之后/文章页打赏之后。把html代码填写到对应的位置
修改主题配置文件
1 | ad: |
例如:
1 | index: <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="xxxxxxxxxxxx" data-ad-client="ca-pub-xxxxxxxxxx" data-ad-slot="xxxxxxxxxx"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({})</script> |
美化/特效
主题色
修改主题配置文件
1 | theme_color: |
代码容器
修改主题配置文件
1 | highlight_theme: mac # darker / pale night / light / ocean / mac / mac light / false |
图片设置
修改主题配置文件
1 | # 网站图标 |
网页加载动画
修改主题配置文件
1 | enter_transitions: false |
标题图标
修改主题配置文件
1 | beautify: |
首页标题下一行字
修改主题配置文件
1 | subtitle: |
常用插件
永久链接插件
hexo-abbrlink 可使文章拥有唯一永久链接,不会因移动文件位置而改变链接,有利于搜索和分享
- 安装
1
npm install hexo-abbrlink --save
- 打开
站点配置文件
,搜索permalink:
,替换为以下内容1
2
3
4permalink: posts/:abbrlink/ # 替换原来的permalink配置
abbrlink:
alg: crc32 #support crc16(default) and crc32
rep: dec #support dec(default) and hexFront Matter
需要包含
title`字段才会自动添加链接
音乐播放器插件
hexo-tag-aplayer是APlayer播放器的Hexo
标签插件,可以十分方便地在文章内插入音乐播放器。
最新版本支持MeingJS。MetingJS 是基于Meting API 的APlayer
衍生播放器,引入MetingJS
后,播放器将支持局部对 QQ音乐、网易云音乐、虾米、酷狗、百度等平台的音乐播放,而且配置很简单,下面就采用这种办法引入音乐播放器。
- 安装
1
npm install --save hexo-tag-aplayer
- 打开站点配置文件,添加以下内容
1
2aplayer:
meting: true # 启用MetingJS - 接着就可以通过
{% meting ...%}
在文章中使用 MetingJS 播放器了
参数列表:
选项 | 默认值 | 描述 |
---|---|---|
id | 必须值 | 歌曲 id / 播放列表 id / 相册 id / 搜索关键字 |
server | 必须值 | 音乐平台: netease , tencent , kugou , xiami , baidu |
type | 必须值 | song , playlist , album , search , artist |
fixed | false |
开启固定模式 |
mini | false |
开启迷你模式 |
loop | all |
列表循环模式:all , one ,none |
order | list |
列表播放模式: list , random |
volume | 0.7 | 播放器音量 |
lrctype | 0 | 歌词格式类型 |
listfolded | false |
指定音乐播放列表是否折叠 |
storagename | metingjs |
LocalStorage 中存储播放器设定的键名 |
autoplay | true |
自动播放,移动端浏览器暂时不支持此功能 |
mutex | true |
该选项开启时,如果同页面有其他 aplayer 播放,该播放器会暂停 |
listmaxheight | 340px |
播放列表的最大长度 |
preload | auto |
音乐文件预载入模式,可选项: none , metadata , auto |
theme | #ad7a86 |
播放器风格色彩设置 |
示例:
单首歌曲 (id, server, type)
1 | {% meting "1845504308" "netease" "song" %} |
歌曲列表
1 | {% meting "60198" "netease" "playlist" "autoplay" "mutex:false" "listmaxheight:340px" "preload:none" "theme:#ad7a86"%} |
本地搜索插件
- 安装hexo-generator-search
1
npm install hexo-generator-search --save
- 修改
主題配置文件
1
2
3
4local_search:
enable: true
preload: false # 预加载,开启后,进入网页后会自动加载搜索文件。 关闭时,只有点击搜索按钮后,才会加载搜索文件
CDN: # 搜索文件的 CDN 地址(默认使用的本地链接)
js 本地化插件
主题大量引用了jsdelivr
的链接,默认是cdn.jsdelivr.net
,由于jsdelivr
在国内备案被吊销,所以域名经常被墙,直接导致我们的网站访问异常,这个时候就需要修改CDN了,主题默认将自带的 js 资源本地化,对于用户安装的第三方插件里的js,可以通过安装hexo-butterfly-extjs
插件实现js本地化。
- 安装
1
npm i hexo-butterfly-extjs
- 修改主题配置文件
1
2CDN:
third_party_provider: local
如果仍然有链接没有被替换,我们直接手动替换,下面是可替代的 CDN 域名
gcore.jsdelivr.net
fastly.jsdelivr.net
jsdelivr.pai233.top
网友搭建的反向代理服务
文章加密插件
hexo-blog-encrypt 是一个 hexo 博客专用的加密插件,支持多种主题
- 安装
1
npm install --save hexo-blog-encrypt
- 修改
站点配置文件
1
2
3
4
5
6
7
8
9
10# Security
encrypt: # hexo-blog-encrypt
abstract: 有东西被加密了, 请输入密码查看.
message: 您好, 这里需要密码.
tags:
- {name: tagName, password: 密码A}
- {name: tagName, password: 密码B}
theme: xray
wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.
wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容. - 使用
在文章front matter
填上password
字段即可,例1
2
3
4
5
title: Hello World
date: 2016-03-30 21:18:02
password: hello
其它技巧
跳过渲染
Hexo默认会对
/source/
里的所有页面应用主题模板渲染,但有一些前端作品或demo页我们不希望经过渲染,而是能保持完全自定义的样子
方法一:在 Front Matter 里加入以下代码
1 |
|
方法二:修改站点配置文件_config.yml
找到skip_render
字段,配置需要跳过渲染的文件或者目录,注意文件或者目录要放在source
目录下
示例:
1 | # 不渲染 source/test.html |
修改了配置但生成出来的内容不一定及时应用了新配置,最好在生成之前执行一下hexo clean
命令,清除掉旧的生成文件和缓存。
设置完成后通过https://pblood.com/test/
就能访问了
注意:通过https://pblood.com/test/
访问,index.html
引用资源的相对路径是相对于/test
目录的;
而通过https://pblood.com/test
访问,index.html
引用资源的相对路径是相对于/source
目录的。
想要两种方式都能访问只能以链接的方式引用资源文件