更换Butterfly主题及其美化记录
前言:
本文记录我从matery主题转butterfly主题的记录(matery还是很优秀的,感谢它能成为我的入门主题)
其实换主题已经有一段时间了,由于期末一下没太多时间整理,一耽搁,有些修改可能忘了,我就把能想起来的先记录下来,以备不时之需(所以,后续不定时更新)
由于想要增添一些新东西,原来使用的matery主题现有的布局,我认为再增添上东西后会影响布局的美观。在寻找解决方案的过程中,我发现了butterfly这个主题。该主题不但内容丰富、布局美观,并且自带了昼夜切换以及其侧边栏有较高的可拓展性。经过深思熟虑后,觉得将主题更换为butterfly主题。
建议自己新建一个CSS文件,然后在主题配置文件的
head
中引入、
【转载说明】本文优先发布于我的个人博客www.226yzy.com ,转载请注明出处并注明作者:星空下的YZY。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0许可协议。
更好的阅读体验欢迎访问原文更换Butterfly主题记录 | 星空下的YZY (226yzy.com)
butterfly主题基础
该主题的样板网站上有主题作者的详细的基础教程
传送门🚪 Butterfly - A Simple and Card UI Design theme for Hexo
不得不说作者大大非常用心,这几篇教程不止基础修改配置,还有一些进阶魔改的内容,跟着做下来可DIY的地方非常多
添加访客地图
这里不推荐使用主题作者提到的那个地图,至少可以很明显看出来藏南地区有问题
这里推荐使用https://www.revolvermaps.com/?target=gallery
这里需要注意使用无国旗标注的版本,不然台湾省那还是会有问题。维护国家主权和领土完整、坚持一个中国的原则是每个公民应尽的责任和义务。
将评论更换为waline
更详细的操作请阅览官方文档Waline | Waline
需要用到这个网站https://vercel.com/
将评论更换为Twikoo
完整教程参考Twikoo 中文文档
同样需要用到这个网站https://vercel.com/
Aplayer 音乐播放器
在主题配置文件的bottom
中添加如下(当然把相关信息填成你自己的),如果添加后没效果,可能是插件没安装,其他相关的可以查看其中文文档首页 - APlayer
1 | - <div class="aplayer no-destroy" data-id="6804316983" data-server="netease" data-type="playlist" data-fixed="true" data-mini="true" data-listFolded="true" data-order="random" data-preload="auto" data-autoplay="false" muted></div> |
- 对于想将Aplayer音乐播放器缩的更小,可以在主题目录下在自己建的CSS中添加如下代码
1 | .aplayer.aplayer-fixed.aplayer-narrow .aplayer-body { |
对于Aplayer音乐默认不显示歌词设置后,无法再切换成显示歌词的问题(我貌似记得有这样的问题),可以在主题目录下在自己建的CSS中添加如下代码尝试
1 | .aplayer-lrc{ |
看板娘
这个我在matery主题的时候就弄过了,你直接将这三行添加至主题配置文件的bottom
中
1 | - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css" /> |
滚动条
美化滚动条嘛,我比较喜欢蓝白相间的。将下面的代码加入到你自己的CSS中即可
1 | /* 滚动条 */ |
修改字体
在你的CSS文件中按这个格式添加你的字体,然后在主题配置文件的相关配置中引用
1 | @font-face{ |
如果你的字体文件过大又舍不得不用,可以参考我另一篇文章,将字体进行精简字体精简及其相关资源 | 星空下的YZY (226yzy.com)
自动提交网站至百度
具体参考自自动提交网址给百度 | 小康博客 (antmoe.com)
不过小康大佬给的代码库地址似乎没法用了
如果不嫌弃可以用我这个代码库地址
1 | https://github.com/226yzy/Hexo-BaiduPush.git |
为底部栏添加跳动的鱼背景
底部栏些许单调,有一次看到了底部跳动的鱼的效果还不错(效果可参考本站底部栏)
在主题文件下的js文件中新建一个fishes.js
的js文件,然后在其中添加
1 | fish(); |
主题配置文件的bottom
中引入
如果没有引入过
jquery
的话也需要引入一下
其他参考:flying fishes (codepen.io)
鼠标光标
美化鼠标光标,这个我在matery主题时简单弄过,后来看到Akilar大佬整理过,我用的如下
1 | /*光标*/ |
文章加密
matery主题中自带了文章加密功能
这个虽然一般情况用不到,但有些供自己参考的试验性内容,还是有可能使用的
注该文章加密后,代码块一键复制的效果将会没有
- 安装文章加密插件
1 | npm install --save hexo-blog-encrypt |
然后文章头部信息中加入password
属性
如果对原版配置内容不满意,可以在主题配置文件中自定义
1 | encrypt: |
如果想特定的文章做特殊处理,可在文章头部信息中添加
abstract
来写提示内容
页面加载
matery主题时参考过Matery 添加加载动画 | 斯莫笔记 (zhangxiaocai.cn)
现在Butterfly主题参考的是Akilarの糖果屋 - Akilar.top
浮动动画
这个还是参考Akilar大佬的Akilarの糖果屋 - Akilar.top
大佬还是强啊,懂的多
小冰插件包
大佬的插件包:小冰插件包 butterfly-orchid 1.0 | 小冰博客 (zfe.space)
有六个插件,可按需使用
友链朋友圈
你还在为看这么多大佬的博客烦恼吗,那友链朋友圈就非常适合你了
该项目文档及GitHub上的源码
页面效果参考https://226yzy.com/fcircle/index.html
不过这个流程较长,建议参考制作这个项目的大佬们的教程
比如小冰大佬的
基于hexo的友链朋友圈 Beta1.5 | 小冰博客 (zfe.space)
【2022-02-12记】最近大佬们的友链朋友圈项目有大版本更新,冰老师的方案似乎有受到影响,没法继续更新最新内容,前端方案目前推荐林木木大佬的f方案
或者贰猹大佬的
友链朋友圈食用说明书 | 贰猹の小窝 (noionion.top)
上面两篇参考的部署的API不同,前端页面效果也不同,按自己喜好取用
另外matery主题的朋友也可以参考另一位大佬的教程
hexo-matery添加友链朋友圈 | FanHeart (hesifan.top)
随机文章
参考自标签: Butterfly美化 | Guo Le’s Blog
在博客根目录/scripts
(没有请自行创建) 下新建 random.js
文件,通过路径/random/
就会随机跳转一篇文章。
random.js
内容如下
1 | hexo.extend.generator.register('random', function (locals) { |
可以在博客配置文件_config.yml
添加以下配置:
1 | random: |
如果不想随机跳转到某篇文章,可以在这篇文章 md 文件头部,添加:
1 | random: false |
星空和流星背景特效
暗夜模式下星空和流星背景特效
插入Canvas标签
首先打开Butterfly主题配置文件_config.yml
文件或者使用HTML直接插入,找到配置文件对应的inject部分,插入<canvas id="universe"></canvas>
创建JS文件
在butterfly/source/js/创建一个universe.js文件,或者添加到自己的js文件中
1 | function dark() {window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame;var n,e,i,h,t=.05,s=document.getElementById("universe"),o=!0,a="180,184,240",r="226,225,142",d="226,225,224",c=[];function f(){n=window.innerWidth,e=window.innerHeight,i=.216*n,s.setAttribute("width",n),s.setAttribute("height",e)}function u(){h.clearRect(0,0,n,e);for(var t=c.length,i=0;i<t;i++){var s=c[i];s.move(),s.fadeIn(),s.fadeOut(),s.draw()}}function y(){this.reset=function(){this.giant=m(3),this.comet=!this.giant&&!o&&m(10),this.x=l(0,n-10),this.y=l(0,e),this.r=l(1.1,2.6),this.dx=l(t,6*t)+(this.comet+1-1)*t*l(50,120)+2*t,this.dy=-l(t,6*t)-(this.comet+1-1)*t*l(50,120),this.fadingOut=null,this.fadingIn=!0,this.opacity=0,this.opacityTresh=l(.2,1-.4*(this.comet+1-1)),this.do=l(5e-4,.002)+.001*(this.comet+1-1)},this.fadeIn=function(){this.fadingIn&&(this.fadingIn=!(this.opacity>this.opacityTresh),this.opacity+=this.do)},this.fadeOut=function(){this.fadingOut&&(this.fadingOut=!(this.opacity<0),this.opacity-=this.do/2,(this.x>n||this.y<0)&&(this.fadingOut=!1,this.reset()))},this.draw=function(){if(h.beginPath(),this.giant)h.fillStyle="rgba("+a+","+this.opacity+")",h.arc(this.x,this.y,2,0,2*Math.PI,!1);else if(this.comet){h.fillStyle="rgba("+d+","+this.opacity+")",h.arc(this.x,this.y,1.5,0,2*Math.PI,!1);for(var t=0;t<30;t++)h.fillStyle="rgba("+d+","+(this.opacity-this.opacity/20*t)+")",h.rect(this.x-this.dx/4*t,this.y-this.dy/4*t-2,2,2),h.fill()}else h.fillStyle="rgba("+r+","+this.opacity+")",h.rect(this.x,this.y,this.r,this.r);h.closePath(),h.fill()},this.move=function(){this.x+=this.dx,this.y+=this.dy,!1===this.fadingOut&&this.reset(),(this.x>n-n/4||this.y<0)&&(this.fadingOut=!0)},setTimeout(function(){o=!1},50)}function m(t){return Math.floor(1e3*Math.random())+1<10*t}function l(t,i){return Math.random()*(i-t)+t}f(),window.addEventListener("resize",f,!1),function(){h=s.getContext("2d");for(var t=0;t<i;t++)c[t]=new y,c[t].reset();u()}(),function t(){document.getElementsByTagName('html')[0].getAttribute('data-theme')=='dark'&&u(),window.requestAnimationFrame(t)}()}; |
- CSS样式
1 | /* 背景宇宙星光 */ |
引入阿里图标库的彩色图标
首先要注意的是彩色图标一个项目最多40个,同时要在对应的项目设置中的字体格式勾选彩色
(如果在使用过程中发现图标加载不出,只有一个/
样的东西,那有可能是对应的位置的CSS设置了字体加粗)
封面节日挂件效果
归档页面时间轴添加十二生肖图标
参考自Archive Beautify | Akilarの糖果屋
主页的分类磁贴
侧栏悬浮卡片控制按钮
参考自Butterfly主题美化日记 | Akilarの糖果屋
思维导图插件
该插件的GitHub链接HunterXuan/hexo-simple-mindmap: Hexo Plugin: Display mindmap in post (github.com)
1 | npm install hexo-simple-mindmap |
mindmap
是思维导图渲染的标志,画板尺寸有三种规格:
mindmap-sm
小号尺寸的画板mindmap-md
中号尺寸的画板mindmap-lg
大号尺寸的画板
思维导图的内容和层级关系通过无序列表表示,支持基本的文字和超链接。
示例代码如下
1 | {% pullquote mindmap mindmap-md %} |
效果如下
- 在 Hexo 中使用思维导图
- 前言
- 操作指南
- 准备需要的文件
- 为主题添加 CSS/JS 文件
- 使用方法