【Butterfly】Butterfly自定义1-图片与滚动条
摘要:
本文主要是记录自己对Butterfly
主题进行的自定义魔改,涉及到butterfly
的图片和滚动条,我当时使用的主题是3.7.1
版本,后续升级可能会有所不同,但是大都是大同小异。
1.butterfly
的介绍和安装
butterfly
介绍
butterfly
主题是一个比较好看的主题,具体情况可以点击此处查看官方文档。它内置了许多效果和脚本,如果自己要求不是特别多的话,只在主题配置文件中进行配置,就可以得到一个比较不错的博客站点了,这个主题个人感觉比较适合我这样的小白,哈哈。它内部的框架模板都是用的pug
模板,对于我一个搞硬件的人来说,这个语法我还是不是很熟悉,可以从这里查看它的中文官方文档来学习基础的语法,多看一下总没啥坏处,可以大致了解一下内部的模板文件大概都是用来干嘛的,后边魔改涉及源码的,也能自己解决一部分问题。
butterfly
安装
butterfly
官方文档提供了三种安装方式,可以根据自己的需要下载安装,通过git
下载的时候可以选master
分支或者dev
分支,仅以还是使用master
吧,这个是稳定版发布的分支。
1 | git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly |
1 | git clone -b master https://gitee.com/iamjerryw/hexo-theme-butterfly.git themes/butterfly |
1 | 安装命令 |
Hexo
本身是不带pug
模板渲染器的,安装完主题后一定要安装这两个插件。
1 | npm install hexo-renderer-pug hexo-renderer-stylus --save |
安装完毕之后,在站点配置文件[blogRoot]/_config.yml
中配置theme: butterfly
就可以启用butterfly主题了,启用之后,可以按照官方文档进行配置使用,说明文档是中文的,而且非常的详细。
2.butterfly
一图流实现
按照官方的教程进行配置之后,发现已经可以实现大部分的功能了,但是在按照教程配置的时候我们会遇到图片的配置选项部分,这个时候看个人的喜好了,我自己呢是不太喜欢那么多图片的,背景只有一张图似乎更符合我的希望,而且,那么多涨图片,对于懒惰的我来说,一个一个配置真的太难了,在这个时候,看到了一个大佬的博客的一篇文章,所以就按照这样的方式,实现了整个页面共用一张图的效果。
参考教程
博客名称 | 教程原帖 |
Akilar の糖果屋 | Custom Beautify |
- 新建
mine.css
文件
为了尽量小的修改源码,在[blogRoot]/source/
文件夹下,自己随便新建一个文件夹放css
文件就好啦,注意不要把mine.css
文件放在_data
文件下,不然在引用的时候会有问题,文件新建完毕之后添加以下代码。
- 引用
mine.css
文件
在butterfly
主题配置文件中有以下部分,将相应的链接按照教程中的引用格式进行引用,就可以将自己定义的样式和脚本文件引入到模板文件中。
1 | ## Inject |
添加完引用之后,hexo cl && hexo g && hexo s
就可以看到顶部、页脚等已经变成了透明,若是之前设置了背景图,就会发现此时顶部图、背景图、页脚等都是同一张图片,这就达到了我们的目的,在修改页脚透明的时候记得修改一下字体颜色,要与自己的背景图适配一下,否则可能会出现子不清晰的情况。
3.butterfly
中的fancybox
与NexT
相同,内置了fancybox
的脚本,我们只需要设置[blogRoot]/_config.butterfly.yml
中的fancybox: true
就可以启用了,但是有一个和NexT
相同的问题,就是关闭图片预览的时候滚动条出现的时候有问题,但是与NexT
不同的是,butterfly
的整个页面不会抖动,只有滚动条部分会向左偏移一下,如果有背景图的话,就会有一个背景图缩放的现象出现。
那么可不可以像NexT
中的处理方式那样写一个脚本不修改源码从而解决整个问题呢?答案是不可以,至少我试了没啥用,所以对于小白的我来说,就只有改源码喽。
打开butterfly
的源码,找到配置fancybox
的脚本文件main.js
,找到以下部分代码:
1 | const addFancybox = function (ele) { |
其中$().fancybox()
中的部分配置了fancybox
的默认参数部分,所以在此函数中添加hideScrollbar:false //不隐藏原先自带的滚动条
参数,就可以使滚动条一直显示啦,背景图片就不会有缩放的情况产生了,如果需要解决的话,就稍微修改下源码就可以,觉得无所谓的也可以不管它。
4.滚动条美化
参考教程
博客名称 | 教程原帖 |
Lete乐特 | Butterfly主题美化-无修改源码 |
在mine.css
文件中添加以下代码即可实现滚动条的美化
1 | /* 滚动条 */ |
效果预览: