hexo美化(一)
yml配置文件注意事项
YAML 文件格式对缩进和语法要求比较严格,类似于 Python 的缩进规则。反正最好在**”-“和“:”**之后添加一个空格再输入值
YAML 使用空格进行缩进,不允许使用制表符(tab),通常推荐使用两个空格进行缩进
- 键和值之间需要用冒号和一个空格分隔 –> key: value
- 列表项需要用破折号(-)和一个空格前缀
一图流
效果:取代butterfly的纯色背景,把网站背景换成自己喜欢的图片
- 首先在“G:\Blog\source”下新建一个文件夹“G:\Blog\source\css”,新建一个“custom.css”文件,写入如下css代码:
1 | /* 页脚与头图透明 */ |
- 在“G:\Blog_config.butterfly.yml”配置文件的“inject”配置项的*”head”子项添加如下代码,引入刚刚创建的custom.css文件(采用了相对路径的写法,没用绝对路径),*注意缩进!
1 | inject: |
- 在主题配置文件“G:\Blog_config.butterfly.yml”的“index_img”和“footer_bg”配置项取消头图与页脚图的加载项避免冗余加载
1 | # The banner image of home page |
- 配置网站背景图,在“G:\Blog_config.butterfly.yml”的“background”配置项配置背景图,注意格式为url(https://……),而不是直接输入网站,一定要有url(…),最好注意一下图片格式,图片格式可能影响最终显示质量,尤其是 JPEG 格式在高压缩时可能会失真,最好不用这种格式
background: url(https://......)
星空背景和流星特效
效果:夜间时网站背景会有流星滑过和星光特效,只在夜间模式下有效 白天时不会显现
- 在”G:\Blog\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)}()}; |
- 在”G:\Blog\source\css“目录下新建”universe.css“,输入如下代码:
1 | /* 背景宇宙星光 */ |
- 在主题配置文件“_config.butterfly.yml”的“inject”配置项的”bottom“和”head“中分别填入如下内容,注意缩进,两个空格
1 | inject: |
个人卡片渐变色
效果:改变个人卡片背景色,之前是纯白色的,改成渐变色
- 在”G:\Blog\source\css\custom.css“中添加如下代码
1 | /* 侧边栏个人信息卡片动态渐变色 */ |
- 因为是在已有的*”custom.css”文件中添加代码的,并且这个文件已经在”一图流“中引用过了,所以不需要在”G:\Blog_config.butterfly.yml“*中重新引入
黑夜霓虹灯
效果:给网页中间的标题和菜单栏字体添加霓虹灯效果,只在夜间模式下生效,霓虹灯颜色可以自己看代码修改
- 在自定义的”G:\Blog\source\css\custom.css“中添加如下css代码,实现原理是关键帧线性插值,然后一直循环,这里默认是左上角标题、中间标题和副标题,还有文章页头的标题和信息有循环霓虹灯
1 | /* 日间模式不生效 */ |
菜单栏魔改
效果:菜单栏居中、子菜单横向显示(默认情况下如果菜单栏存在子菜单会以列的方式显示)
纵向显示菜单栏:
- 菜单栏
- 子菜单栏1
- 子菜单栏2
其中子菜单横向显示要根据自己的实际情况来改,例如某个菜单的第2个选项中有子菜单,那就要加一项调节第2个选项中的子菜单,这个具体调节多少要以情况为准,可以自己慢慢调到中间
- 在*”G:\Blog\source\css\custom.css”*中添加如下代码:
1 | /* 一级菜单居中 */ |
此时手机端子菜单默认是展开显示的(如果存在子菜单),如果想要改为点击后才展开,只需要在主题配置文件”_config.butterfly.yml“中列表对应的地方加一个
hide即可,1
2
3
4# "列表"存在子菜单栏-->"音乐"和"电影",改为点击后展开,添加一个hide
列表||fas fa-list || hide:
音乐: /music/ || fas fa-music
电影: /movies/ || fas fa-video
文章标题居中
效果:让文章标题处在最中间的位置
- 打开
G:\hexo\themes\butterfly\source\css\_layout\head.styl,在#post-info项添加一行代码
1 | #post-info |





