Hexo + Butterfly 建站指南(三)Butterfly 主题
本篇内容主要源于:
安装
在你的博客根目录下载主题并安装依赖:
1 | git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly |
然后在theme
目录可以找到新的butterfly
主题(默认主题landscape
其实可以删掉了)
在_config.yml
中更改主题为butterfly
1 | theme: butterfly |
测试,可以看见新主题已安装
官方配置
在\themes\butterfly
中找到主题配置文件_config.yml
,复制一个副本出来,重命名为_config.butterfly.yml
在把它剪贴到博客根目录,就跟_config.landscape.yml
的格式一样
Hexo 中,根目录下的_config.butterfly.yml
会比\themes\butterfly\_config.yml的
优先级更高,这样做是为了避免在将来更新主题时,把已经配置好的配置文件一并覆盖了
注意,不要弄混博客配置文件(
_config.yml
)和主题配置文件(_config.butterfly.yml
)
打开_config.butterfly.yml
这个主题很强大,所以配置文件也很长,接近1000行(所以请善用搜索功能)
但不用担心,作者每个部分都用分割线分好了,非常规整,而且很多地方都有中文注释(大佬 Jerry 是香港同胞!)
下面挑重点讲,并附上我自己的配置
Main menu navigation(导航菜单)
如上图所示,首页的导航菜单可以指向各子页面(那个搜索不在这里设置,下面会讲),先讲解子页面如何创建
新建页面
下面的内容简化于 Butterfly 安裝文檔(二) 主題頁面
在soure
中的每一个文件夹,就对应一个页面(当然_posts
和_draft
除外)
使用hexo new page <title>
来新建页面,例:
1 | hexo new page about |
打开source/about/index.md
,就可以像我一样编辑关于
页面了
关于
、留言板
、todo-list
之类的属于普通页面,但归档
、标签
、分类
属于特殊页面
归档页面(archives)是内建的,不需要创建
标签页面(tag)在创建后,需要在表头加上type: "tags"
和layout: "tags"
,而内容留空:
1 | --- |
分类页面(categories)同理:
1 | --- |
至此,几个页面创建完毕,下面需要修改配置文件
修改配置文件
1 | # Main menu navigation (導航目錄) |
格式:
1 | {页面名称}: {路径} || fas fa-{图标名称} |
图标用的是 Font Awesome 的
注意:因为 JsDelivrCND 在国内寄了,故这些图标是在国内是没法正常显示的,需要在主题配置文件的最底下把 CDN 全部改成本地
1 | # CDN |
并且按照提示还要安装 hexo-butterfly-extjs
包
1 | npm install hexo-butterfly-extjs |
提示:如果你没有两个 local ,请升级主题版本
VSearch (搜索)
如果配置完后无法正常使用,请尝试运行
hexo clean
先安装依赖
1 | npm install hexo-generator-search --save |
修改配置文件,启用下面的local_search
就可以了
1 | # search (搜索) |
导航菜单的搜索按钮已可以使用
Image (图片设置)
设置头像和各种背景,注释可以说是非常详尽了
1 | # Image (圖片設置) |
Background effects (背景特效)
这里算是官方美化了,项目有很多,我只设置了几个
静止彩带背景
1 | # canvas_ribbon (靜止彩帶背景) |
默认暗黑模式
1 | # Default display mode (網站默認的顯示模式) |
首页循环打字
这个要往下翻,找到subtitle
1 | subtitle: |
个人美化
本节内容源于 Hexo+Butterfly主题美化 | 唐先森の博客,墙裂建议阅读原文
新建文件
现在需要添加自己的 css 和 js 文件来美化
在themes\butterfly\source\js
中创建my.js
,在themes\butterfly\source\css
中创建my.styl
(styl
编译之后就成了css
)
以后自己的js
和css
就统一加在这里了
引用文件
回到主题配置文件,搜索找到下方的片段,加上自己的文件链接
1 | # Inject |
我的配置
下面是我的配置,上面的原文里可以找到更多美化代码
my.js
1 | // 主页面气泡 |
my.styl
1 | // ----我添加的---- |