butterfly魔改之页面
主页分类
NPM 插件安装的部署方法:
1 | npm i hexo-magnet --save |
注意,一定要加 --save,不然本地预览的时候可能不会显示!!!
新增网站根目录_config 配置项 (不是主题的):
1 | magnet: |
这里仅仅展示 butterfly 配置,更多主题配置请前往:https://github.com/Zfour/hexo-magnet/issues
也欢迎共享自己的配置和进行修改。
接下来来简单说明一下配置项的含义:
enable
参数:true/false
含义:是否开启插件enable_page
参数:/
含义:路由地址,如 / 代表主页。/me/ 代表自我介绍页等等priority
参数:1
含义:插件的叠放顺序,数字越大,叠放约靠前。如果你安装了 hexo-githubcalendar,请将 hexo-githubcalendarnpm 插件更新至 @1.2.3 版本。然后给 hexo-githubcalendar 添加 priority 参数。githubcalendar:
enable: true
priority: 3 # 这里加上参数type
参数:categories/tags
含义:选择筛选分类还是标签devide
参数:2
含义:表示分隔的列数,2 表示分为两列展示display
参数:
- name: 教程 # 这里是tags或者categories的名称
display_name: 小冰の魔改教程 # 这里是替换的名称
icon: 📚 # 这里是展示的图标含义:配置项,可自行设置,按照设置的顺序展示
color_setting
参数:
text_color: black # 文字默认颜色
text_hover_color: white # 文字鼠标悬浮颜色
background_color: “#f2f2f2” # 文字背景默认颜色
background_hover_color: “#b30070” # 文字背景悬浮颜色含义:颜色配置项,可自行设置
layout
参数:type; (class&id)
参数:name;
参数:index;(数字)
含义:如果说 magnet 是一幅画,那么这个 layout 就是指定了哪面墙来挂画
而在 HTML 的是世界里有两种墙分别 type 为 id 和 class。
其中在定义 class 的时候会出现多个 class 的情况,这时就需要使用 index,确定是哪一个。
最后墙的名字即是 name;
1
2
3
4
5
6
7
8 <div name="我是墙" id="recent-posts">
<!-- id=>type recent-posts=>name -->
<div name="我是画框">
<div name="我是纸">
<!--这里通过js挂载magnet,也就是画画-->
</div>
</div>
</div>temple_html
参数:html 模板字段
含义:包含挂载容器
1
2
3
4
5 <div class="recent-post-item" style="width:100%;height: auto"> <!--文章容器-->
<div id="catalog_magnet"> <!--挂载容器-->
${temple_html_item}
</div>
</div>plus_style
参数:“”
含义:提供可自定义的 style,如加入黑夜模式。
hexo 三连
执行 hexo 三连:hexo clean && hexo g && hexo s
主页两栏
1 | # 安装插件 |
在hexo网站的根配置文件下添加以下的代码
1 | #双栏美化 |
由此有一个bug:页码没有居中,在自定义css文件中加入下面的代码——调整页码的位置
1 | /* 翻页按钮居中 */ |
主页三栏
https://www.fomal.cc/posts/d739261b.html
网站背景
页面适配度
在\themes\butterfly\source\css_page\common.styl中,规定了recent post部分宽度的比例,默认是74%,修改页面宽度1920px
1 | #body-wrap |
页脚
1.去掉丑丑的蓝色背景
….themes\butterfly\source\css_layout\footer.styl
打开上述路径的文件,把blue那一行删除
2.更改底层文字
在js文件下新建foot.js文件,复制以下代码
1 | // 动态心跳,更改自己的名称 |
在 主题 根目录下的 _config.yml修改
1 | # Footer Settings |
同时因为这个代码是jquery文件进行解析的,所以我们需要下载jquery.js文件,打开下面的网站,另存为js文件,同样也放在js文件下(这里我将下载的文件更改名字了,大家可以不更改名字,但是引入的时候和名字要相同)
https://code.jquery.com/jquery-3.6.1.min.js
注意jquey文件引入在前
挂绳雪糕
制作一个盛放内容的盒子,在[BlogRoot]/node_modules/hexo-theme-butterfly/layout/includes/head.pug(如果是git clone 安装在[BlogRoot]/themes/butterfly/layout/includes/head.pug)最后一行加入如下代码:
1 | #myscoll |
其实随便放在哪里都行,只要能加载出来就行
在[BlogRoot]/node_modules/hexo-theme-butterfly/source/js文件夹下新建一个cat.js,将以下代码复制到文件中。
1 | if (document.body.clientWidth > 992) { |
在 [BlogRoot]/node_modules/hexo-theme-butterfly/source/css 文件夹下新建一个cat.css,将以下代码复制到文件中。当然你也可以选择不新建 css 文件,复制代码到custom.css也行,总之有地方引入就行。
1 | body::-webkit-scrollbar { |
黑暗模式下星空流星
在[BlogRoot]/source/js目录下新建universe.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)}()}; |
在[BlogRoot]/source/css目录下新建universe.css,输入以下代码:
1 | /* 背景宇宙星光 */ |
在主题配置文件_config.butterfly.yml的inject配置项中bottom下填入:
1 | inject: |
在主题配置文件_config.butterfly.yml的inject配置项中head下填入:
1 | inject: |
重新编译即可看到效果。
顶部加载条
进度条为胶囊💊样式
4.5.0 版本主题已内置 pace.js 无需再次引入,在 hexo-theme-butterfly文件中配置以下内容即可
1 | preloader: |