普通视图

发现新文章,点击刷新页面。
昨天以前汐塔魔法屋
  • ✇汐塔魔法屋
  • 2024-11小记王九弦SZ·Ninty
    没错,博客又又换主题了(我算是第一个在半年内换三个主题了吧)算了直接正片开始吧Butterfly,真香!随着我那Volantis的魔改,问题也逐渐凸显首先就是sw的问题,某次我打开我那站点,f12进入应用程序–>存储一看:当时这占用差点没给我看傻眼并且Volantis貌似还是强制更新的,虽然我可以关闭强制更新,但是之前的那些插件,包括我魔改的东西都得重写可谓是特别麻烦思来想去,最终我换回了Butetrfly而这次Butterfly我魔改了什么呢?1.熟悉的IndieWeb(只不过改成在yml那边引入IndieWeb需要的link,而microformats因为添加指定的css类名,所以这个只能魔改pug)2.模仿Fomalhaut🥝的样式,甚至为了仿的像一点连后台都抄下来了3.搜索换成docsearch4.添加全局音乐播放器(点击鼠标右键,然后点击“主题设置”就能看见音乐播放器的开关了)5.熟悉的OhMyLive2D6.sw换成CyanFalse的ClientWorker,并且与空梦swpp的进行整合形成新方案就只有这些,其它的还没搞完。。。。。。2024.11.19更新:经清羽
     

2024-11小记

2024年11月24日 18:48

没错,博客又又换主题了
(我算是第一个在半年内换三个主题了吧)
算了直接正片开始吧

Butterfly,真香!

随着我那Volantis的魔改,问题也逐渐凸显
首先就是sw的问题,某次我打开我那站点,f12进入应用程序–>存储一看:
好好好,4000多MB
当时这占用差点没给我看傻眼
并且Volantis貌似还是强制更新的,虽然我可以关闭强制更新,但是之前的那些插件,包括我魔改的东西都得重写
可谓是特别麻烦
思来想去,最终我换回了Butetrfly

而这次Butterfly我魔改了什么呢?
1.熟悉的IndieWeb(只不过改成在yml那边引入IndieWeb需要的link,而microformats因为添加指定的css类名,所以这个只能魔改pug)
2.模仿Fomalhaut🥝的样式,甚至为了仿的像一点连后台都抄下来了
3.搜索换成docsearch
4.添加全局音乐播放器(点击鼠标右键,然后点击“主题设置”就能看见音乐播放器的开关了)
5.熟悉的OhMyLive2D
6.sw换成CyanFalse的ClientWorker,并且与空梦swpp的进行整合形成新方案
就只有这些,其它的还没搞完。。。。。。

2024.11.19更新:经清羽飞扬小伙伴的建议,将域名托管到dnspod上,并且博客通过dnspod自带分流实现国内外分流
其中国外是cloudflare pages提供的站点托管服务,而国内则是由LEDCDN提供站点加速

《关于我凭一己之力就帮空梦的swpp找到好几个bug的这件事》

今天就在我给clientworker和swpp整合的时候,swpp死活都构建不了
于是我就去问swpp群作者(我有加入swpp的群),然后就出现了这么个事件:

12:44

构建swpp的时候出现了这个问题:
278f203ca3e3ab838e0d4a640e061411
当时我还以为是我那图片没push上去的问题,就给图片push上去了
结果问题依然出现
而空梦的回答是:
QQ_yYIFfisqaM
就这样,修完了第一个bug

18:20

空梦修完bug之后叫我给swpp更新下版本
我更新完成之后,第一次没出bug
正当我认为一切顺利的时候,我突然收到个邮件:
网易灵犀办公_VWE8Ukxn3s
然后我就去Github Action看了一下,结果:
469dfb4c5f09e5f5a1e5e0fd3530ce3c
而且本地能复现这个错误

19:32

然后我就去跟空梦反映了一下,顺带给我Hexo博客的Github源码发过去了
他的回复是:
QQ_J4LzRsN8mo
我看见他的回复然后就更新了一下

大约在19:45

Github Action出现这个错误:
4aa4cf5410846e7263a99971bda7f2fe
因为我的博客源码连Action的构建记录是公开的,所以空梦能看见我那Action的情况
然后他的回复是:
QQ_9paFuizRWv

20:47

空梦给swpp发布到610版本,我更新了之后bug也没了
据此,《关于我凭一己之力就帮空梦的swpp找到好几个bug的这件事》就结束了(貌似有亿点简短了)

KFC,真的很让我失望

上周的周五下午,因为我家长没有煮饭
正好肯德基那边也装修了,所以去那边吃饭了

然后为啥说这是让我失望的呢?
第一就是,港式烧味脆皮大鸡腿饭下架了
(这个饭还是我们一家在肯德基经常点的,老好吃了)
其次,熟悉的味道和口感也在那边消失了

我理解肯德基是为了发展自己的咖啡业务(肯悦咖啡)而消掉一些东西
但是削的太狠反而不是一件好事
连熟悉的并且比较受欢迎的港式烧味脆皮大鸡腿饭都下架了
我只能说我对KFC没有啥留恋了

然后周五我家长又没有煮饭(别问为啥不是我去做饭,我放学的时候已经是5-6点多了,而我们一般习惯6点半吃饭,这时候做可能来不及)
就不去肯德基,去德保(TURBO德保餐厅,也是我家长习惯去的一间餐厅)那边吃了

点石深海舱钢笔到货了

我严重怀疑我最近这两个月迷上点石了
疯狂购买点石的笔

其中最多的还得是时空舱
可谓是非常多
就除了别的配色、一些限定和原版硬核时空舱没有之外几乎都齐了

而我也没满足,于是就看上了深海舱并且入手了一款深海舱钢笔(不是打广告)
让我们看看效果:
外壳1
外壳2
笔身1
笔身2
笔盖(升)
笔盖(降)
st笔头
虽然st笔头我写不习惯,但这支笔写起来真的很舒服
并且这笔壳设计成一个潜水艇,后面的螺旋桨能玩一整天(bushi

就这样吧

  • ✇汐塔魔法屋
  • 2024-10小记王九弦SZ·Ninty
    没错,博客又换主题了算了直接正片开始吧又一次更换主题之前的async主题虽然不错,很好看并且有pjax但是这个主题的pjax却是用的swup,导致了live2d和伪春菜出现了问题并且开往的链接会跳转到“blog.sinzmise.top/go.html”,可谓是适配不算太行因此不得不换主题想了许久,我决定使用Volantis主题魔改方案参考(抄)的枋柚梓的猫会发光并且在此基础上适配了IndieWeb(要加入indieweb webring有个条件就是站点适配IndieWeb)目前添加的功能:IndieWeb(我上面说了)OhMyLive2D(网页版Live2D的新方案,后面我打算给这个live2d添加点击按钮播放音乐的功能)搜索引擎更换为MeiliSearch全站npm化换成Volantis那个方案友链朋友圈的方案更换为清羽飞扬的Friend-Circle-Lite积薪,再也不见这玩意是8月下架的,距离这篇文章开始编写的时间已经两个月之久了我也是写这篇文章的时候访问了一下才知道下架了然而这个的作者给“原中文独立博客导航项目积薪正式下线”夹带了私货其中就包括对我们的刻板印象(也怪不得原作
     

2024-10小记

2024年10月27日 19:26

没错,博客又换主题了
算了直接正片开始吧

又一次更换主题

之前的async主题虽然不错,很好看并且有pjax
但是这个主题的pjax却是用的swup,导致了live2d和伪春菜出现了问题
并且开往的链接会跳转到“blog.sinzmise.top/go.html”,可谓是适配不算太行
因此不得不换主题

想了许久,我决定使用Volantis主题
魔改方案参考(抄)枋柚梓的猫会发光
并且在此基础上适配了IndieWeb(要加入indieweb webring有个条件就是站点适配IndieWeb)
目前添加的功能:

  • IndieWeb(我上面说了)
  • OhMyLive2D(网页版Live2D的新方案,后面我打算给这个live2d添加点击按钮播放音乐的功能)
  • 搜索引擎更换为MeiliSearch
  • 全站npm化换成Volantis那个方案
  • 友链朋友圈的方案更换为清羽飞扬Friend-Circle-Lite

积薪,再也不见

这玩意是8月下架的,距离这篇文章开始编写的时间已经两个月之久了
我也是写这篇文章的时候访问了一下才知道下架了
然而这个的作者给“原中文独立博客导航项目积薪正式下线”夹带了私货
其中就包括对我们的刻板印象
(也怪不得原作者的博客会被墙了)

对于这种我的评价是:积薪,你很好。但是你个作者是个**

站点聚合平台疑似打赢复活赛

这消息也是在我写这篇文章的时候搜了一下才发现打赢复活赛了
只不过换域名了,新域名:sites.applinzi.com
(也算是做了一种宣传了。。。。。。)

以上

  • ✇汐塔魔法屋
  • 站点装修与国庆小记王九弦SZ·Ninty
    国庆假期已经快要收尾了不知道大家过得怎么样呢?不废话,正片开始!站点又重新装修之前我魔改的那Butterfly主题被人诟病加载慢等等问题,并且在经过我的“努力”之下成功变成了史山代码因此被迫重新装修站点更新如下:更换主题为Hexo-Theme-Async,并且为这个主题适配了IndieWeb,同时也做了一些魔改将原先的swpp换成async主题自带sw,并且在此基础上进行适配全站npm化添加DocSearch很多功能我还没添加,敬请期待!第一次去漫展之前在微信的朋友圈里面看到了我的一位朋友他要几个人跟他去漫展而且那漫展还是在汕头(离我家很近)于是我想去逛漫展了虽然那位朋友在去漫展的路上出事(腰出问题)导致迟到了差不多一个小时不过没关系,我能自己逛逛逛逛的过程中顺带买了hina的立牌和大米的谷子别问为啥没买麻酱和独角兽的谷子,貌似卖完了或者根本没卖(悲)而且还去看了那边的演出(那边的演出是会整活的,给背景音乐混入了几个奇奇怪怪的东西)我那朋友一来我就带他们去卖立牌的地方然后我就看见了这地方还有本子。。。。。。。他们买了几个谷子,我也跟着买了几个谷子和钥匙扣收获:
     

站点装修与国庆小记

2024年10月7日 02:58

国庆假期已经快要收尾了
不知道大家过得怎么样呢?
不废话,正片开始!

站点又重新装修

之前我魔改的那Butterfly主题被人诟病加载慢等等问题,并且在经过我的“努力”之下成功变成了史山代码
因此被迫重新装修

站点更新如下:

  • 更换主题为Hexo-Theme-Async,并且为这个主题适配了IndieWeb,同时也做了一些魔改
  • 将原先的swpp换成async主题自带sw,并且在此基础上进行适配全站npm化
  • 添加DocSearch

很多功能我还没添加,敬请期待!

第一次去漫展

之前在微信的朋友圈里面看到了我的一位朋友
他要几个人跟他去漫展
而且那漫展还是在汕头(离我家很近)
于是我想去逛漫展了

虽然那位朋友在去漫展的路上出事(腰出问题)导致迟到了差不多一个小时
不过没关系,我能自己逛逛

逛逛的过程中顺带买了hina的立牌和大米的谷子别问为啥没买麻酱和独角兽的谷子,貌似卖完了或者根本没卖(悲)
而且还去看了那边的演出(那边的演出是会整活的,给背景音乐混入了几个奇奇怪怪的东西)
我那朋友一来我就带他们去卖立牌的地方

然后我就看见了这地方还有本子。。。。。。。

他们买了几个谷子,我也跟着买了几个谷子和钥匙扣

收获:
四个谷子,一个立牌和两个钥匙扣

  • ✇汐塔魔法屋
  • 2024-09小记王九弦SZ·Ninty
    首先提前祝大家国庆节快乐!然后就是,正片开始!(别问为啥没有收藏手机的环节了,因为开学了所以我就不打算收藏老手机了,要不然我早就收台i819来玩玩了QWQ)突如其来的好消息很好,月考数学发挥超常满分120我考了90分(别问为啥我这么骄傲,我之前的数学成绩保底是60分)然后就没然后了回归邦邦(BanG Dream)和pjsk(世界计划 缤纷舞台)之前因为某些原因,我把BanG Dream!和pjsk卸了后面因为了解到MyGO!!!(还在go,还在go)也是属于邦的,因此我回归了邦同时也了解到了pjsk台服换新ui了,所以我顺便回归pjsk了然而现在,Craft Egg已经离开邦邦了(听人说似了,但又没似,因为Craft Egg的原社长创立了FromTokyo,并且加入参与制作BanG Dream!,本质上没变只是Craft Egg换了层皮)而pjsk新UI的也到来了(之前台服pjsk还是老ui的时候有幸入坑了日服,对我来说没有影响到我的手感就行了。。。。。。)回归Memos之前从7iNet那边买了台机子我想要部署点啥,就给Memos搞了(毕竟我之前加入过木木大佬的哔哔广场啦,这个是重新回
     

2024-09小记

2024年10月1日 04:29

首先提前祝大家国庆节快乐!
然后就是,正片开始!
(别问为啥没有收藏手机的环节了,因为开学了所以我就不打算收藏老手机了,要不然我早就收台i819来玩玩了QWQ)

突如其来的好消息

很好,月考数学发挥超常
满分120我考了90分
(别问为啥我这么骄傲,我之前的数学成绩保底是60分)
然后就没然后了

回归邦邦(BanG Dream)和pjsk(世界计划 缤纷舞台)

之前因为某些原因,我把BanG Dream!和pjsk卸了
后面因为了解到MyGO!!!(还在go,还在go)也是属于邦的,因此我回归了邦
同时也了解到了pjsk台服换新ui了,所以我顺便回归pjsk了

然而现在,Craft Egg已经离开邦邦了(听人说似了,但又没似,因为Craft Egg的原社长创立了FromTokyo,并且加入参与制作BanG Dream!,本质上没变只是Craft Egg换了层皮
而pjsk新UI的也到来了(之前台服pjsk还是老ui的时候有幸入坑了日服,对我来说没有影响到我的手感就行了。。。。。。)

回归Memos

之前从7iNet那边买了台机子
我想要部署点啥,就给Memos搞了
(毕竟我之前加入过木木大佬的哔哔广场啦,这个是重新回归)

7iNat那边因为HK-NAT区域稳定性改造,我的Memos目前没法访问
因此没法把链接放上去了。。。。。
等什么时候好了我就放链接吧。。。。。。。

  • ✇汐塔魔法屋
  • 2024-08小记王九弦SZ·Ninty
    时间过得真快,转眼间暑假就快结束了还是这样,一个月一次的小记,安排!久违的旅游8月28日,也算是这个暑假的唯一一次旅游虽然只有半天,但是也足够了那次旅游的目的地是揭阳惠来,一共有三站:第一站:客鸟尾石笋区初来乍到,要爬上石笋很不容易但爬上去之后看到的风景尽收眼底,我就知道这一爬也值得了上照片:第二站:网红彩虹桥实际上就是揭阳那边的码头,没啥好看的整体感觉还不如第一站和第三站因此照片我不打算展示出来直接第三站走起~~第三站:滨河湾旅游景区时间最长,也是我逛得最满意的景点~~而且这个景点有天空之镜(虽然之前被群友吐槽过,并且有报道也吐槽了这玩意。。。。)和望远镜(虽然是要收费的。。。。。)观赏完风景我们就开始吃烧烤可惜没有KTV,不过就半天的活动要啥ktv呢。。。。不多说了,照片走起~~(虽然没有烧烤的。。。。。)在望远镜那边拍的:回家之前顺带拍了这张照片:试玩《黑神话·悟空》8月20日,黑神话·悟空上线了试玩了一下,不愧是最强3A大作里面的boss和打斗都特别爽,当然难度也特别高就是啦~~可惜我没截图,要不然早就放上去了而且因为要开学,我不怎么玩这个游戏了。。。。。。回归卡丘世界没错,我
     

2024-08小记

2024年8月31日 19:33

时间过得真快,转眼间暑假就快结束了
还是这样,一个月一次的小记,安排!

久违的旅游

8月28日,也算是这个暑假的唯一一次旅游
虽然只有半天,但是也足够了

那次旅游的目的地是揭阳惠来,一共有三站:

第一站:客鸟尾石笋区

初来乍到,要爬上石笋很不容易
但爬上去之后看到的风景尽收眼底,我就知道这一爬也值得了
上照片:
6d151d58a8d72c9aa628a25899ba0bd
31a2efc188ed78b139427b8cbc0ac64
7994801d0f2edbfff94f00118c87433
874d49afb470b6728ba43a69e1c0945
0d561f893d8c63f3a16057373f4fe14

第二站:网红彩虹桥

实际上就是揭阳那边的码头,没啥好看的
整体感觉还不如第一站和第三站
因此照片我不打算展示出来
直接第三站走起~~

第三站:滨河湾旅游景区

时间最长,也是我逛得最满意的景点~~
而且这个景点有天空之镜(虽然之前被群友吐槽过,并且有报道也吐槽了这玩意。。。。)和望远镜(虽然是要收费的。。。。。)
观赏完风景我们就开始吃烧烤
可惜没有KTV,不过就半天的活动要啥ktv呢。。。。
不多说了,照片走起~~(虽然没有烧烤的。。。。。)
4d86b6602efda6086807b108e86f12c
ac7321a92e148651db9da6144271ab8
d9854d1e396ac8134a4b9e7a77500e8
81c936cb167b8361693d3d65d49b526
4d1fbe0f19bf6b80f0939405e9b23ff
2618e9e67b53d868eead5a2d370199d
在望远镜那边拍的:
aaabe2c0194f1f62495c47167185d8a
41f870985b36dcf039f445fdb6b11a7
a5abb6942b0a25d05f89571d580bf38
4c7592b019561d39ca9ea4089424517
d540e08539fda0ad40036505af75da7
回家之前顺带拍了这张照片:
e1ebadf380d2a24d768e71530dbfbd5

试玩《黑神话·悟空》

8月20日,黑神话·悟空上线了
试玩了一下,不愧是最强3A大作
里面的boss和打斗都特别爽,当然难度也特别高就是啦~~
可惜我没截图,要不然早就放上去了

而且因为要开学,我不怎么玩这个游戏了。。。。。。

回归卡丘世界

没错,我也玩卡拉彼丘
其实在6-7月的时候我就开始玩了
后面7月下旬我没怎么玩(原因是匹配率过低),所以没把这件事写在我的文章里面

直到8月的时候有个电话,是心夏打来的(上次我见到这种打电话的活动还是原的某个活动,当然这个其实是没有打电话给我的啦,我也是通过b站才知道原神很久之前有这个活动)
然后才开始回归
到现在为止已经半个月过去了,心夏没选过,奥黛丽和反而经常选
而且7月那时候经常匹配不到人,这半个月的匹配率反而高得离谱,基本都是秒进

不说了,还是来看看我这个月收藏的机子吧~~

收藏的机子

第一台真正收藏的塞班S60V3的机子 —— 诺基亚5320

收到这机子之后我就给这台机子的证书给破解了
并且整了个花海咲季(学园偶像大师)的主题和换成Fighting My Way铃声,顺带给字体也换了
我原本有在里面装了个Bounce Tales和哆啦A梦·海盗岛大冒险的,但是因为内存卡我误删东西导致这两个的数据丢失了。。。。。。。
而且这台机子玩bounce tales跳进水坑(尤其是bumpy那关)会特别卡,估计是因为配置的原因
算了先这样吧,上图片~~(成色不好请见谅)
bcdaa1067b22ec5261ad87374105b31
c2a64212ce7294844551e1a84f809ba
0d3697725b8467faab3c008be630d82
31566ce0f1217dae45abd985c1a3198

说了那么多,那有没有一台能流畅玩java游戏的S60V3的机子呢?
诶~~我还真有
那就…

真神降临 —— 诺基亚5730xm

跟那5320一样,也是先给系统破解证书然后换主题和铃声,并且给字体换了
不过这次我给这台的主题换的是蔚蓝档案里面的桐生桔梗,这机子的配色刚好也适合桔梗的头发配色
(别问为啥没有和纱,肥猫的话得等我有收藏5630再来搞)
然而铃声不是桐生桔梗ai翻唱的歌曲,反而换成了灰澈和另外一位大佬创作的歌曲 —— 《桔梗》
这机子的配色搭配这个铃声简直绝了
上图片~~
b97b2a1f31b3bbec55478dba3d50386
1bcb6e6af2ed9ce3fae9830325c52b0
42bf9b13dfee4be45e2c203864991e9
cd72da20a87ac2c74312dc48be6013c
854d8b51690c52a08e64dc962079b65

白银级稀有机子 —— 三星L228

这机子算是奥运稀有机子里面的白银款
别问为啥,黄鱼上有成色比这台机子更精美的外观
算了不多说。放图~~~
4f7b343bc99855058778c3aeecd7448
5001dec598a5c09e28e5c5e01e711f3
bbf0958f0282da6b7d93ec387504a10

钻石级稀有Linux机子 —— 三星i839/三星i859

据说是稀有的搭载Mizi Linux的机子
而三星搭载Mizi Linux的机子只发布了四款(都是针对国内的):
i858、i819、i839和i859
而黄鱼上最后的i839和i859被我拿下了,就剩下不知道能不能开机的i819和特别贵的i858
算了不多说,放图:

首先是i839(懒得设置时间了,这样看吧。。。。)
3d0cf11588986baf02e690194fa8da5
2eaf3edb9cbd91e166e0d67c04ac4ef
a88d14a1ce98ad250a4cae1a2f596aa
59d6d48903b35a0eeec05c2d7246e1a
fb088100a0c7e6232cdf6194e370404

然后就是i859
be7ffc552658474863392b12fd26da0
796e29b843af4ea7050621e70139e21
299da0a2df6c8b7621904e60c42f9b2
89f89fd776f9d6e6e5ec92b3dbcbd99

然而这些为啥才算钻石级别呢,因为还有高手!

皇冠级稀有机子 —— 诺基亚X3-01

别问这台为啥称之为皇冠级别呢?因为这台根本就没有真正意义上的发售过!
而且虽然只是brew的机子,但是因为是稀有机子,就算是brew也值了!
不多说,放图!
a10094e6a06250f3d92c36da4486e65
78d009edcf8931da871fa1b92371acb
1a3db58061f3e020d1ff94a81a65242
ec6b46a5bd1d8a91cdefd99482223a2
e92bf7b365ca318da8a8efb0e860f21

以上(我得去睡觉了,要不然明天开学要迟到了。。。。。)

  • ✇汐塔魔法屋
  • 真·彩虹猫加载动画王九弦SZ·Ninty
    前言之前有人反映我的站点特别卡也不是没有去优化。。。。。但是依然有人说很卡我感觉是加载动画的问题,刚好我之前找到html+css实现彩虹猫于是我给这个抄下来了不废话,正片开始!教程开始!新建js首先,新建[Blogroot]\themes\butterfly\source\js\nyan.js,内容如下:123456789101112131415161718192021222324252627function cycleFrames (_nyanCat, _currentFrame) {_nyanCat.classList = []_nyanCat.classList.add(`frame${_currentFrame}`)}function replicateSparks (_sparksRow) {const numberOfRowsToCoverEntireScreen = Math.ceil(document.getElementById("loading-box").offsetHeight / _sparksRow.offsetHeight)const newSparksR
     

真·彩虹猫加载动画

2024年8月3日 01:12

前言

之前有人反映我的站点特别卡
也不是没有去优化。。。。。但是依然有人说很卡
我感觉是加载动画的问题,刚好我之前找到html+css实现彩虹猫
于是我给这个抄下来了
不废话,正片开始!

教程开始!

新建js

首先,新建[Blogroot]\themes\butterfly\source\js\nyan.js,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function cycleFrames (_nyanCat, _currentFrame) {
_nyanCat.classList = []
_nyanCat.classList.add(`frame${_currentFrame}`)
}

function replicateSparks (_sparksRow) {
const numberOfRowsToCoverEntireScreen = Math.ceil(document.getElementById("loading-box").offsetHeight / _sparksRow.offsetHeight)
const newSparksRows = document.createElement('div')

for (let a = 0; a < numberOfRowsToCoverEntireScreen-1; a++) {
newSparksRows.append(_sparksRow.cloneNode(true))
}

document.getElementById("loading-box").prepend(newSparksRows)
}

(function () {
let nyanCat = document.getElementById('nyan-cat')
let currentFrame = 1

replicateSparks(document.getElementsByClassName('sparks-combo')[0])

setInterval(function () {
currentFrame = (currentFrame % 6) + 1
cycleFrames(nyanCat, currentFrame)
}, 70)
})()

这个是用来自动生成div,使得星星可以铺满屏幕

选择方案

以下三种方案任意选择一种:

店长魔改方案

如果你博客有参考店长的这个教程:Loading Animation
那就按照这个教程魔改就行

  1. 修改[Blogroot]\themes\butterfly\layout\includes\loading\loading.pug
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if theme.preloader.enable
case theme.preloader.load_style
when 'gear'
include ./load_style/gear.pug
when 'ironheart'
include ./load_style/ironheart.pug
when 'scarecrow'
include ./load_style/scarecrow.pug
when 'triangles'
include ./load_style/triangles.pug
when 'wizard'
include ./load_style/wizard.pug
when 'image'
include ./load_style/image.pug
+ when 'nyancat'
+ include ./load_style/nyancat.pug
default
include ./load_style/default.pug
  1. 新建[Blogroot]\themes\butterfly\layout\includes\loading\load_style\nyancat.pug,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#loading-box(onclick='document.getElementById("loading-box").classList.add("loaded")')
.sparks-combo
.spark
.spark
.spark
.spark
.rainbow
span
.nyan-cat
.feet
.tail
span
.body
.head
script(src="/js/nyan.js")

script.
const preloader = {
endLoading: () => {
document.body.style.overflow = 'auto';
document.getElementById('loading-box').classList.add("loaded")
},
initLoading: () => {
document.body.style.overflow = '';
document.getElementById('loading-box').classList.remove("loaded")

}
}
window.addEventListener('load',()=> { preloader.endLoading() })

if (!{theme.pjax && theme.pjax.enable}) {
document.addEventListener('pjax:send', () => { preloader.initLoading() })
document.addEventListener('pjax:complete', () => { preloader.endLoading() })
}
  1. 修改[Blogroot]\themes\butterfly\source\css\_layout\loading.styl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

if hexo-config('preloader.enable')
if hexo-config('preloader.load_style') == 'gear'
@import './_load_style/gear'
else if hexo-config('preloader.load_style') == 'ironheart'
@import './_load_style/ironheart'
else if hexo-config('preloader.load_style') == 'scarecrow'
@import './_load_style/scarecrow'
else if hexo-config('preloader.load_style') == 'triangles'
@import './_load_style/triangles'
else if hexo-config('preloader.load_style') == 'wizard'
@import './_load_style/wizard'
else if hexo-config('preloader.load_style') == 'image'
@import './_load_style/image'
+ else if hexo-config('preloader.load_style') == 'nyancat'
+ @import './_load_style/nyancat'
else
@import './_load_style/default'
  1. 新建[Blogroot]\themes\butterfly\source\css\_load_style\nyancat.styl,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
#loading-box
width: 100%;
height: 100%;
margin: 0;
padding: 0;
background: #036;
overflow: hidden;
position : fixed;
font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
z-index: 9999;
opacity: 1;

&.loaded
opacity: 0;
z-index: -1000;

.sprite, .body, .head, .rainbow span, .feet, .tail span, .stars .star
position: absolute;
background-position: 0 0px,0 5px,0 10px,0 15px,0 20px,0 25px,0 30px,0 35px,0 40px,0 45px,0 50px,0 55px,0 60px,0 65px,0 70px,0 75px,0 80px,0 85px,0 90px,0 95px,0 100px,0 105px,0 110px,0 115px,0 120px,0 125px;
background-size: 100% 5px;
background-repeat: no-repeat;


.nyan-cat
position: fixed;
left: 50%;
top: 50%;
width: 165px;
height: 100px;
margin-top: -50px;
margin-left: -82px;
-webkit-animation: nyan 400ms step-start infinite;
animation: nyan 400ms step-start infinite;
z-index: 19999;

.body
left: 35px;
top: 0;
width: 105px;
height: 90px;

.head
left: 85px;
top: 25px;
width: 80px;
height: 65px;
-webkit-animation: head 400ms linear infinite;
animation: head 400ms linear infinite;

.rainbow
position: fixed;
left: 0;
top: 50%;
margin-top: -35px;
width: 50%;
height: 65px;
overflow: hidden;
z-index: 18888;

span
display: block;
position: relative;
top: 0;
width: 100%;
height: 130px;
background-size: 80px 5px;
background-repeat: repeat-x;
-webkit-animation: rainbow 400ms step-start infinite;
animation: rainbow 400ms step-start infinite;

.feet
left: 20px;
top: 75px;
width: 120px;
height: 25px;
-webkit-animation: feet 400ms infinite;
animation: feet 400ms infinite;

.tail
position: relative;
width: 25px;
height: 30px;
overflow: hidden;
top: 30px;
left: 10px;

span
width: 25px;
height: 120px;
-webkit-animation: tail 200ms step-start infinite alternate;
animation: tail 200ms step-start infinite alternate;

.sparks-combo
height: 300px;
width: 200%;
position: relative;
animation: woosh 700ms 0ms linear infinite both;

.spark
z-index: 1;
position: absolute;
width: 100%;
height: 100%;
background-color: transparent;
background: linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x;

&:before
background: linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x;

&:after
background: linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 11px, transparent 11px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 11px, transparent 11px, transparent 400px) repeat-x;

&:before,&:after
content: '';
position: absolute;
width: 100%;
height: 100%;
background-color: transparent;



&:nth-child(1)
z-index: 3;
top: 0;
left: 20px;
animation: sparkly 700ms 0ms steps(1) infinite both;

&:nth-child(1):before
animation: sparkly-before 700ms 0ms steps(1) infinite both;

&:nth-child(1):after
animation: sparkly-after 700ms 0ms steps(1) infinite both;

&:nth-child(2)
top: 40px;
left: 170px;
animation: sparkly 700ms 200ms steps(1) infinite both;

&:nth-child(2):before
animation: sparkly-before 700ms 200ms steps(1) infinite both;

&:nth-child(2):after
animation: sparkly-after 700ms 200ms steps(1) infinite both;

&:nth-child(3)
top: 100px;
left: 320px;
animation: sparkly 700ms 400ms steps(1) infinite both;

&:nth-child(3):before
animation: sparkly-before 700ms 400ms steps(1) infinite both;

&:nth-child(3):after
animation: sparkly-after 700ms 400ms steps(1) infinite both;

&:nth-child(4)
top: 150px;
left: 200px;
animation: sparkly 700ms 600ms steps(1) infinite both;

&:nth-child(4):before
animation: sparkly-before 700ms 600ms steps(1) infinite both;

&:nth-child(4):after
animation: sparkly-after 700ms 600ms steps(1) infinite both;


.body
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #f9d28f 10px, #f9d28f 95px, #000000 95px, #000000 100px, rgba(0, 0, 0, 0) 100px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 20px, #fe91fe 20px, #fe91fe 85px, #f9d28f 85px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 15px, #fe91fe 15px, #fe91fe 45px, #f90297 45px, #f90297 50px, #fe91fe 50px, #fe91fe 60px, #f90297 60px, #f90297 65px, #fe91fe 65px, #fe91fe 90px, #f9d28f 90px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 20px, #f90297 20px, #f90297 25px, #fe91fe 25px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 80px, #f90297 80px, #f90297 85px, #fe91fe 85px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 40px, #f90297 40px, #f90297 45px, #fe91fe 45px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 25px, #f90297 25px, #f90297 30px, #fe91fe 30px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 45px, #f90297 45px, #f90297 50px, #fe91fe 50px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 15px, #f90297 15px, #f90297 20px, #fe91fe 20px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 35px, #f90297 35px, #f90297 40px, #fe91fe 40px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 15px, #fe91fe 15px, #fe91fe 20px, #f90297 20px, #f90297 25px, #fe91fe 25px, #fe91fe 90px, #f9d28f 90px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 20px, #fe91fe 20px, #fe91fe 85px, #f9d28f 85px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #f9d28f 10px, #f9d28f 95px, #000000 95px, #000000 100px, rgba(0, 0, 0, 0) 100px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 105px);

.head
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 20px, rgba(0, 0, 0, 0) 20px, rgba(0, 0, 0, 0) 60px, #000000 60px, #000000 70px, rgba(0, 0, 0, 0) 70px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 20px, #000000 20px, #000000 25px, rgba(0, 0, 0, 0) 25px, rgba(0, 0, 0, 0) 55px, #000000 55px, #000000 60px, #9d9d9d 60px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 25px, #000000 25px, #000000 30px, rgba(0, 0, 0, 0) 30px, rgba(0, 0, 0, 0) 50px, #000000 50px, #000000 55px, #9d9d9d 55px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 30px, #000000 30px, #000000 35px, #000000 35px, #000000 50px, #9d9d9d 50px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #ffffff 20px, #ffffff 25px, #000000 25px, #000000 30px, #9d9d9d 30px, #9d9d9d 55px, #ffffff 55px, #ffffff 60px, #000000 60px, #000000 65px, #9d9d9d 65px, #9d9d9d 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #000000 20px, #000000 30px, #9d9d9d 30px, #9d9d9d 45px, #000000 45px, #000000 50px, #9d9d9d 50px, #9d9d9d 55px, #000000 55px, #000000 65px, #9d9d9d 65px, #9d9d9d 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 10px, #ff9593 10px, #ff9593 20px, #9d9d9d 20px, #9d9d9d 65px, #ff9593 65px, #ff9593 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 10px, #ff9593 10px, #ff9593 20px, #9d9d9d 20px, #9d9d9d 25px, #000000 25px, #000000 30px, #9d9d9d 30px, #9d9d9d 40px, #000000 40px, #000000 45px, #9d9d9d 45px, #9d9d9d 55px, #000000 55px, #000000 60px, #9d9d9d 60px, #9d9d9d 65px, #ff9593 65px, #ff9593 75px, #000000 75px, #000000 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 25px, #000000 25px, #000000 60px, #9d9d9d 60px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 15px, #9d9d9d 15px, #9d9d9d 65px, #000000 65px, #000000 70px, rgba(0, 0, 0, 0) 70px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 15px, #000000 15px, #000000 65px, rgba(0, 0, 0, 0) 65px, rgba(0, 0, 0, 0) 80px);

.rainbow > span
background-image: linear-gradient(to right, #fe0000 0%, #fe0000 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, #fe0000 0%, #fe0000 100%), linear-gradient(to right, #ffa500 0%, #ffa500 50%, #fe0000 50%, #fe0000 100%), linear-gradient(to right, #ffa500 0%, #ffa500 100%), linear-gradient(to right, #ffff00 0%, #ffff00 50%, #ffa500 50%, #ffa500 100%), linear-gradient(to right, #ffff00 0%, #ffff00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 50%, #ffff00 50%, #ffff00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 100%), linear-gradient(to right, #009eff 0%, #009eff 50%, #00fb00 50%, #00fb00 100%), linear-gradient(to right, #009eff 0%, #009eff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 50%, #009eff 50%, #009eff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%, #6531ff 50%, #6531ff 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%, #fe0000 50%, #fe0000 100%), linear-gradient(to right, #fe0000 0%, #fe0000 100%), linear-gradient(to right, #fe0000 0%, #fe0000 50%, #ffa500 50%, #ffa500 100%), linear-gradient(to right, #ffa500 0%, #ffa500 100%), linear-gradient(to right, #ffa500 0%, #ffa500 50%, #ffff00 50%, #ffff00 100%), linear-gradient(to right, #ffff00 0%, #ffff00 100%), linear-gradient(to right, #ffff00 0%, #ffff00 50%, #00fb00 50%, #00fb00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 50%, #009eff 50%, #009eff 100%), linear-gradient(to right, #009eff 0%, #009eff 100%), linear-gradient(to right, #009eff 0%, #009eff 50%, #6531ff 50%, #6531ff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%);


.feet
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 25px, rgba(0, 0, 0, 0) 25px, rgba(0, 0, 0, 0) 120px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 110px, rgba(0, 0, 0, 0) 110px, rgba(0, 0, 0, 0) 120px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #000000 20px, #000000 35px, #9d9d9d 35px, #9d9d9d 40px, #000000 40px, #000000 80px, #9d9d9d 80px, #9d9d9d 110px, #000000 110px, #000000 115px, rgba(0, 0, 0, 0) 115px, rgba(0, 0, 0, 0) 120px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px, #000000 20px, rgba(0, 0, 0, 0) 20px, rgba(0, 0, 0, 0) 25px, #000000 25px, #000000 30px, #9d9d9d 30px, #9d9d9d 40px, #000000 40px, #000000 45px, rgba(0, 0, 0, 0) 45px, rgba(0, 0, 0, 0) 75px, #000000 75px, #000000 80px, #9d9d9d 80px, #9d9d9d 90px, #000000 90px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 100px, #000000 100px, #000000 105px, #9d9d9d 105px, #9d9d9d 115px, #000000 115px, #000000 120px), linear-gradient(to right, #000000 0%, #000000 15px, rgba(0, 0, 0, 0) 15px, rgba(0, 0, 0, 0) 30px, #000000 30px, #000000 45px, rgba(0, 0, 0, 0) 45px, rgba(0, 0, 0, 0) 80px, #000000 80px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 105px, #000000 105px, #000000 120px);


.tail > span
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 15px, rgba(0, 0, 0, 0) 15px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px, #000000 20px, rgba(0, 0, 0, 0) 20px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 20px, #9d9d9d 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 15px, #000000 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 20px, rgba(0, 0, 0, 0) 20px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px), linear-gradient(to right, #000000 0%, #000000 10px, #9d9d9d 10px, #9d9d9d 25px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 20px, #9d9d9d 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 15px, #000000 15px, #000000 20px, #9d9d9d 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 15px, #9d9d9d 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 20px, #000000 20px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 15px, rgba(0, 0, 0, 0) 15px);

@-webkit-keyframes rainbow {
0% {
top: 0;
}
50% {
top: 0;
}
100% {
top: -65px;
}
}

@keyframes rainbow {
0% {
top: 0;
}
50% {
top: 0;
}
100% {
top: -65px;
}
}
@-webkit-keyframes nyan {
0% {
margin-top: -50px;
}
10% {
margin-top: -50px;
}
80% {
margin-top: -53px;
}
100% {
margin-top: -50px;
}
}
@keyframes nyan {
0% {
margin-top: -50px;
}
10% {
margin-top: -50px;
}
80% {
margin-top: -53px;
}
100% {
margin-top: -50px;
}
}
@-webkit-keyframes feet {
0% {
left: 20px;
}
100% {
left: 30px;
}
}
@keyframes feet {
0% {
left: 20px;
}
100% {
left: 30px;
}
}
@-webkit-keyframes head {
0% {
top: 25px;
left: 85px;
}
24.99% {
top: 25px;
left: 85px;
}
25% {
top: 22px;
left: 88px;
}
49.99% {
top: 22px;
left: 88px;
}
50% {
top: 22px;
left: 85px;
}
74.99% {
top: 22px;
left: 85px;
}
75% {
top: 22px;
left: 82px;
}
99.99% {
top: 22px;
left: 82px;
}
100% {
top: 25px;
left: 85px;
}
}
@keyframes head {
0% {
top: 25px;
left: 85px;
}
24.99% {
top: 25px;
left: 85px;
}
25% {
top: 22px;
left: 88px;
}
49.99% {
top: 22px;
left: 88px;
}
50% {
top: 22px;
left: 85px;
}
74.99% {
top: 22px;
left: 85px;
}
75% {
top: 22px;
left: 82px;
}
99.99% {
top: 22px;
left: 82px;
}
100% {
top: 25px;
left: 85px;
}
}
@-webkit-keyframes tail {
0% {
top: 0;
}
25% {
top: 0;
}
49.99% {
top: 0;
}
50% {
top: -30px;
}
74.99% {
top: -30px;
}
75% {
top: -60px;
}
99.99% {
top: -60px;
}
100% {
top: -90px;
}
}
@keyframes tail {
0% {
top: 0;
}
25% {
top: 0;
}
49.99% {
top: 0;
}
50% {
top: -30px;
}
74.99% {
top: -30px;
}
75% {
top: -60px;
}
99.99% {
top: -60px;
}
100% {
top: -90px;
}
}
@keyframes woosh {
0% {
left: 0px;
}
100% {
left: -400px;
}
}
@keyframes sparkly {
0% {
background-size: 400px 6px, 0 0, 0 0, 0 0;
background-position: 17px 17px, 0 0, 0 0, 0 0;
}
16% {
background-size: 400px 6px, 400px 6px, 400px 6px, 400px 6px;
background-position: 17px 0, 34px 17px, 17px 34px, 0 17px;
}
33% {
background-size: 400px 6px, 400px 6px, 400px 6px, 400px 6px;
background-position: 17px 0, 34px 17px, 17px 34px, 0 17px;
}
50% {
background-size: 400px 6px, 0 0, 0 0, 0 0;
background-position: 17px 17px, 0 0, 0 0, 0 0;
}
66% {
background-size: 400px 11px, 400px 11px, 0 0, 0 0;
background-position: 17px 6px, 17px 23px, 0 0, 0 0;
}
83% {
background-size: 0 0, 0 0, 400px 5px, 400px 5px;
background-position: 0 0, 0 0, 11px 17px, 22px 17px;
}
100% {
background-size: 400px 6px, 0 0, 0 0, 0 0;
background-position: 17px 17px, 0 0, 0 0, 0 0;
}
}
@keyframes sparkly-before {
0% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
16% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
33% {
background-size: 400px 5px, 400px 5px, 400px 5px, 400px 5px;
background-position: 6px 6px, 29px 6px, 29px 29px, 6px 29px;
}
50% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
66% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
83% {
background-size: 0 0, 0 0, 400px 5px, 400px 5px;
background-position: 0 0, 0 0, 17px 12px, 17px 22px;
}
100% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
}
@keyframes sparkly-after {
0% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
16% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
33% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
50% {
background-size: 400px 11px, 400px 11px, 400px 6px, 400px 6px;
background-position: 17px 0, 17px 29px, 0 17px, 29px 17px;
}
66% {
background-size: 0 0, 0 0, 400px 6px, 400px 6px;
background-position: 0 0, 0 0, 6px 17px, 23px 17px;
}
83% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
100% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
}
  1. 修改[Blogroot]\_config.butterfly.ymlpreloader.load_style配置项
1
2
3
4
preloader:
enable: true
load_color: '#000000' # '#37474f'
load_style: nyancat # 这边改成nyancat

butterfly 4.5 以上方案

  1. 修改[Blogroot]\themes\butterfly\layout\includes\loading\fullpage-loading.pug,复制以下代码替换全部内容。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#loading-box(onclick='document.getElementById("loading-box").classList.add("loaded")')
.sparks-combo
.spark
.spark
.spark
.spark
.rainbow
span
.nyan-cat
.feet
.tail
span
.body
.head
script(src="/js/nyan.js")

script.
const preloader = {
endLoading: () => {
document.body.style.overflow = 'auto';
document.getElementById('loading-box').classList.add("loaded")
},
initLoading: () => {
document.body.style.overflow = '';
document.getElementById('loading-box').classList.remove("loaded")

}
}
window.addEventListener('load',()=> { preloader.endLoading() })

if (!{theme.pjax && theme.pjax.enable}) {
document.addEventListener('pjax:send', () => { preloader.initLoading() })
document.addEventListener('pjax:complete', () => { preloader.endLoading() })
}
  1. 修改[Blogroot]\themes\butterfly\layout\includes\loading\index.pug,复制以下代码替换全部内容。
1
2
3
4
5
6
7
if theme.preloader.source === 1
include ./fullpage-loading.pug
else if theme.preloader.source === 2
include ./pace.pug
else
include ./fullpage-loading.pug
include ./pace.pug
  1. 修改[Blogroot]\themes\butterfly\source\css\_layout\loading.styl,复制以下代码替换全部内容。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
#loading-box
width: 100%;
height: 100%;
margin: 0;
padding: 0;
background: #036;
overflow: hidden;
position : fixed;
font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
z-index: 9999;
opacity: 1;

&.loaded
opacity: 0;
z-index: -1000;

.sprite, .body, .head, .rainbow span, .feet, .tail span, .stars .star
position: absolute;
background-position: 0 0px,0 5px,0 10px,0 15px,0 20px,0 25px,0 30px,0 35px,0 40px,0 45px,0 50px,0 55px,0 60px,0 65px,0 70px,0 75px,0 80px,0 85px,0 90px,0 95px,0 100px,0 105px,0 110px,0 115px,0 120px,0 125px;
background-size: 100% 5px;
background-repeat: no-repeat;


.nyan-cat
position: fixed;
left: 50%;
top: 50%;
width: 165px;
height: 100px;
margin-top: -50px;
margin-left: -82px;
-webkit-animation: nyan 400ms step-start infinite;
animation: nyan 400ms step-start infinite;
z-index: 19999;

.body
left: 35px;
top: 0;
width: 105px;
height: 90px;

.head
left: 85px;
top: 25px;
width: 80px;
height: 65px;
-webkit-animation: head 400ms linear infinite;
animation: head 400ms linear infinite;

.rainbow
position: fixed;
left: 0;
top: 50%;
margin-top: -35px;
width: 50%;
height: 65px;
overflow: hidden;
z-index: 18888;

span
display: block;
position: relative;
top: 0;
width: 100%;
height: 130px;
background-size: 80px 5px;
background-repeat: repeat-x;
-webkit-animation: rainbow 400ms step-start infinite;
animation: rainbow 400ms step-start infinite;

.feet
left: 20px;
top: 75px;
width: 120px;
height: 25px;
-webkit-animation: feet 400ms infinite;
animation: feet 400ms infinite;

.tail
position: relative;
width: 25px;
height: 30px;
overflow: hidden;
top: 30px;
left: 10px;

span
width: 25px;
height: 120px;
-webkit-animation: tail 200ms step-start infinite alternate;
animation: tail 200ms step-start infinite alternate;

.sparks-combo
height: 300px;
width: 200%;
position: relative;
animation: woosh 700ms 0ms linear infinite both;

.spark
z-index: 1;
position: absolute;
width: 100%;
height: 100%;
background-color: transparent;
background: linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x;

&:before
background: linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x;

&:after
background: linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 11px, transparent 11px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 11px, transparent 11px, transparent 400px) repeat-x;

&:before,&:after
content: '';
position: absolute;
width: 100%;
height: 100%;
background-color: transparent;



&:nth-child(1)
z-index: 3;
top: 0;
left: 20px;
animation: sparkly 700ms 0ms steps(1) infinite both;

&:nth-child(1):before
animation: sparkly-before 700ms 0ms steps(1) infinite both;

&:nth-child(1):after
animation: sparkly-after 700ms 0ms steps(1) infinite both;

&:nth-child(2)
top: 40px;
left: 170px;
animation: sparkly 700ms 200ms steps(1) infinite both;

&:nth-child(2):before
animation: sparkly-before 700ms 200ms steps(1) infinite both;

&:nth-child(2):after
animation: sparkly-after 700ms 200ms steps(1) infinite both;

&:nth-child(3)
top: 100px;
left: 320px;
animation: sparkly 700ms 400ms steps(1) infinite both;

&:nth-child(3):before
animation: sparkly-before 700ms 400ms steps(1) infinite both;

&:nth-child(3):after
animation: sparkly-after 700ms 400ms steps(1) infinite both;

&:nth-child(4)
top: 150px;
left: 200px;
animation: sparkly 700ms 600ms steps(1) infinite both;

&:nth-child(4):before
animation: sparkly-before 700ms 600ms steps(1) infinite both;

&:nth-child(4):after
animation: sparkly-after 700ms 600ms steps(1) infinite both;


.body
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #f9d28f 10px, #f9d28f 95px, #000000 95px, #000000 100px, rgba(0, 0, 0, 0) 100px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 20px, #fe91fe 20px, #fe91fe 85px, #f9d28f 85px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 15px, #fe91fe 15px, #fe91fe 45px, #f90297 45px, #f90297 50px, #fe91fe 50px, #fe91fe 60px, #f90297 60px, #f90297 65px, #fe91fe 65px, #fe91fe 90px, #f9d28f 90px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 20px, #f90297 20px, #f90297 25px, #fe91fe 25px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 80px, #f90297 80px, #f90297 85px, #fe91fe 85px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 40px, #f90297 40px, #f90297 45px, #fe91fe 45px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 25px, #f90297 25px, #f90297 30px, #fe91fe 30px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 45px, #f90297 45px, #f90297 50px, #fe91fe 50px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 15px, #f90297 15px, #f90297 20px, #fe91fe 20px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 35px, #f90297 35px, #f90297 40px, #fe91fe 40px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 15px, #fe91fe 15px, #fe91fe 20px, #f90297 20px, #f90297 25px, #fe91fe 25px, #fe91fe 90px, #f9d28f 90px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 20px, #fe91fe 20px, #fe91fe 85px, #f9d28f 85px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #f9d28f 10px, #f9d28f 95px, #000000 95px, #000000 100px, rgba(0, 0, 0, 0) 100px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 105px);

.head
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 20px, rgba(0, 0, 0, 0) 20px, rgba(0, 0, 0, 0) 60px, #000000 60px, #000000 70px, rgba(0, 0, 0, 0) 70px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 20px, #000000 20px, #000000 25px, rgba(0, 0, 0, 0) 25px, rgba(0, 0, 0, 0) 55px, #000000 55px, #000000 60px, #9d9d9d 60px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 25px, #000000 25px, #000000 30px, rgba(0, 0, 0, 0) 30px, rgba(0, 0, 0, 0) 50px, #000000 50px, #000000 55px, #9d9d9d 55px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 30px, #000000 30px, #000000 35px, #000000 35px, #000000 50px, #9d9d9d 50px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #ffffff 20px, #ffffff 25px, #000000 25px, #000000 30px, #9d9d9d 30px, #9d9d9d 55px, #ffffff 55px, #ffffff 60px, #000000 60px, #000000 65px, #9d9d9d 65px, #9d9d9d 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #000000 20px, #000000 30px, #9d9d9d 30px, #9d9d9d 45px, #000000 45px, #000000 50px, #9d9d9d 50px, #9d9d9d 55px, #000000 55px, #000000 65px, #9d9d9d 65px, #9d9d9d 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 10px, #ff9593 10px, #ff9593 20px, #9d9d9d 20px, #9d9d9d 65px, #ff9593 65px, #ff9593 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 10px, #ff9593 10px, #ff9593 20px, #9d9d9d 20px, #9d9d9d 25px, #000000 25px, #000000 30px, #9d9d9d 30px, #9d9d9d 40px, #000000 40px, #000000 45px, #9d9d9d 45px, #9d9d9d 55px, #000000 55px, #000000 60px, #9d9d9d 60px, #9d9d9d 65px, #ff9593 65px, #ff9593 75px, #000000 75px, #000000 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 25px, #000000 25px, #000000 60px, #9d9d9d 60px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 15px, #9d9d9d 15px, #9d9d9d 65px, #000000 65px, #000000 70px, rgba(0, 0, 0, 0) 70px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 15px, #000000 15px, #000000 65px, rgba(0, 0, 0, 0) 65px, rgba(0, 0, 0, 0) 80px);

.rainbow > span
background-image: linear-gradient(to right, #fe0000 0%, #fe0000 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, #fe0000 0%, #fe0000 100%), linear-gradient(to right, #ffa500 0%, #ffa500 50%, #fe0000 50%, #fe0000 100%), linear-gradient(to right, #ffa500 0%, #ffa500 100%), linear-gradient(to right, #ffff00 0%, #ffff00 50%, #ffa500 50%, #ffa500 100%), linear-gradient(to right, #ffff00 0%, #ffff00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 50%, #ffff00 50%, #ffff00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 100%), linear-gradient(to right, #009eff 0%, #009eff 50%, #00fb00 50%, #00fb00 100%), linear-gradient(to right, #009eff 0%, #009eff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 50%, #009eff 50%, #009eff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%, #6531ff 50%, #6531ff 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%, #fe0000 50%, #fe0000 100%), linear-gradient(to right, #fe0000 0%, #fe0000 100%), linear-gradient(to right, #fe0000 0%, #fe0000 50%, #ffa500 50%, #ffa500 100%), linear-gradient(to right, #ffa500 0%, #ffa500 100%), linear-gradient(to right, #ffa500 0%, #ffa500 50%, #ffff00 50%, #ffff00 100%), linear-gradient(to right, #ffff00 0%, #ffff00 100%), linear-gradient(to right, #ffff00 0%, #ffff00 50%, #00fb00 50%, #00fb00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 50%, #009eff 50%, #009eff 100%), linear-gradient(to right, #009eff 0%, #009eff 100%), linear-gradient(to right, #009eff 0%, #009eff 50%, #6531ff 50%, #6531ff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%);


.feet
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 25px, rgba(0, 0, 0, 0) 25px, rgba(0, 0, 0, 0) 120px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 110px, rgba(0, 0, 0, 0) 110px, rgba(0, 0, 0, 0) 120px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #000000 20px, #000000 35px, #9d9d9d 35px, #9d9d9d 40px, #000000 40px, #000000 80px, #9d9d9d 80px, #9d9d9d 110px, #000000 110px, #000000 115px, rgba(0, 0, 0, 0) 115px, rgba(0, 0, 0, 0) 120px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px, #000000 20px, rgba(0, 0, 0, 0) 20px, rgba(0, 0, 0, 0) 25px, #000000 25px, #000000 30px, #9d9d9d 30px, #9d9d9d 40px, #000000 40px, #000000 45px, rgba(0, 0, 0, 0) 45px, rgba(0, 0, 0, 0) 75px, #000000 75px, #000000 80px, #9d9d9d 80px, #9d9d9d 90px, #000000 90px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 100px, #000000 100px, #000000 105px, #9d9d9d 105px, #9d9d9d 115px, #000000 115px, #000000 120px), linear-gradient(to right, #000000 0%, #000000 15px, rgba(0, 0, 0, 0) 15px, rgba(0, 0, 0, 0) 30px, #000000 30px, #000000 45px, rgba(0, 0, 0, 0) 45px, rgba(0, 0, 0, 0) 80px, #000000 80px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 105px, #000000 105px, #000000 120px);


.tail > span
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 15px, rgba(0, 0, 0, 0) 15px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px, #000000 20px, rgba(0, 0, 0, 0) 20px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 20px, #9d9d9d 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 15px, #000000 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 20px, rgba(0, 0, 0, 0) 20px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px), linear-gradient(to right, #000000 0%, #000000 10px, #9d9d9d 10px, #9d9d9d 25px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 20px, #9d9d9d 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 15px, #000000 15px, #000000 20px, #9d9d9d 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 15px, #9d9d9d 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 20px, #000000 20px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 15px, rgba(0, 0, 0, 0) 15px);

@-webkit-keyframes rainbow {
0% {
top: 0;
}
50% {
top: 0;
}
100% {
top: -65px;
}
}

@keyframes rainbow {
0% {
top: 0;
}
50% {
top: 0;
}
100% {
top: -65px;
}
}
@-webkit-keyframes nyan {
0% {
margin-top: -50px;
}
10% {
margin-top: -50px;
}
80% {
margin-top: -53px;
}
100% {
margin-top: -50px;
}
}
@keyframes nyan {
0% {
margin-top: -50px;
}
10% {
margin-top: -50px;
}
80% {
margin-top: -53px;
}
100% {
margin-top: -50px;
}
}
@-webkit-keyframes feet {
0% {
left: 20px;
}
100% {
left: 30px;
}
}
@keyframes feet {
0% {
left: 20px;
}
100% {
left: 30px;
}
}
@-webkit-keyframes head {
0% {
top: 25px;
left: 85px;
}
24.99% {
top: 25px;
left: 85px;
}
25% {
top: 22px;
left: 88px;
}
49.99% {
top: 22px;
left: 88px;
}
50% {
top: 22px;
left: 85px;
}
74.99% {
top: 22px;
left: 85px;
}
75% {
top: 22px;
left: 82px;
}
99.99% {
top: 22px;
left: 82px;
}
100% {
top: 25px;
left: 85px;
}
}
@keyframes head {
0% {
top: 25px;
left: 85px;
}
24.99% {
top: 25px;
left: 85px;
}
25% {
top: 22px;
left: 88px;
}
49.99% {
top: 22px;
left: 88px;
}
50% {
top: 22px;
left: 85px;
}
74.99% {
top: 22px;
left: 85px;
}
75% {
top: 22px;
left: 82px;
}
99.99% {
top: 22px;
left: 82px;
}
100% {
top: 25px;
left: 85px;
}
}
@-webkit-keyframes tail {
0% {
top: 0;
}
25% {
top: 0;
}
49.99% {
top: 0;
}
50% {
top: -30px;
}
74.99% {
top: -30px;
}
75% {
top: -60px;
}
99.99% {
top: -60px;
}
100% {
top: -90px;
}
}
@keyframes tail {
0% {
top: 0;
}
25% {
top: 0;
}
49.99% {
top: 0;
}
50% {
top: -30px;
}
74.99% {
top: -30px;
}
75% {
top: -60px;
}
99.99% {
top: -60px;
}
100% {
top: -90px;
}
}
@keyframes woosh {
0% {
left: 0px;
}
100% {
left: -400px;
}
}
@keyframes sparkly {
0% {
background-size: 400px 6px, 0 0, 0 0, 0 0;
background-position: 17px 17px, 0 0, 0 0, 0 0;
}
16% {
background-size: 400px 6px, 400px 6px, 400px 6px, 400px 6px;
background-position: 17px 0, 34px 17px, 17px 34px, 0 17px;
}
33% {
background-size: 400px 6px, 400px 6px, 400px 6px, 400px 6px;
background-position: 17px 0, 34px 17px, 17px 34px, 0 17px;
}
50% {
background-size: 400px 6px, 0 0, 0 0, 0 0;
background-position: 17px 17px, 0 0, 0 0, 0 0;
}
66% {
background-size: 400px 11px, 400px 11px, 0 0, 0 0;
background-position: 17px 6px, 17px 23px, 0 0, 0 0;
}
83% {
background-size: 0 0, 0 0, 400px 5px, 400px 5px;
background-position: 0 0, 0 0, 11px 17px, 22px 17px;
}
100% {
background-size: 400px 6px, 0 0, 0 0, 0 0;
background-position: 17px 17px, 0 0, 0 0, 0 0;
}
}
@keyframes sparkly-before {
0% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
16% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
33% {
background-size: 400px 5px, 400px 5px, 400px 5px, 400px 5px;
background-position: 6px 6px, 29px 6px, 29px 29px, 6px 29px;
}
50% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
66% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
83% {
background-size: 0 0, 0 0, 400px 5px, 400px 5px;
background-position: 0 0, 0 0, 17px 12px, 17px 22px;
}
100% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
}
@keyframes sparkly-after {
0% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
16% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
33% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
50% {
background-size: 400px 11px, 400px 11px, 400px 6px, 400px 6px;
background-position: 17px 0, 17px 29px, 0 17px, 29px 17px;
}
66% {
background-size: 0 0, 0 0, 400px 6px, 400px 6px;
background-position: 0 0, 0 0, 6px 17px, 23px 17px;
}
83% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
100% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
}

最后修改_config.butterfly.ymlpreloader选项, 改完以后source: 1为满屏加载无pace胶囊,source: 2为pace胶囊无满屏动画, source: 3是两者都启用。(这边懒得说就搬运的鱼佬那加载动画的教程了。。。。。反正都一样。。。。。)

1
2
3
4
5
6
7
8
9
10
11
# Loading Animation (加载动画)
preloader:
enable: true
# source
# 1. fullpage-loading
# 2. pace (progress bar)
# else all
source: 3
# pace theme (see https://codebyzach.github.io/pace/)
pace_css_url: /css/progress_bar.css
avatar: # 自定义头像

butterfly 4.4.2 以下版本方案

  1. 修改[Blogroot]\themes\butterfly\source\css\_layout\loading.styl,复制以下代码替换全部内容。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
#loading-box
width: 100%;
height: 100%;
margin: 0;
padding: 0;
background: #036;
overflow: hidden;
position : fixed;
font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
z-index: 9999;
opacity: 1;

&.loaded
opacity: 0;
z-index: -1000;

.sprite, .body, .head, .rainbow span, .feet, .tail span, .stars .star
position: absolute;
background-position: 0 0px,0 5px,0 10px,0 15px,0 20px,0 25px,0 30px,0 35px,0 40px,0 45px,0 50px,0 55px,0 60px,0 65px,0 70px,0 75px,0 80px,0 85px,0 90px,0 95px,0 100px,0 105px,0 110px,0 115px,0 120px,0 125px;
background-size: 100% 5px;
background-repeat: no-repeat;


.nyan-cat
position: fixed;
left: 50%;
top: 50%;
width: 165px;
height: 100px;
margin-top: -50px;
margin-left: -82px;
-webkit-animation: nyan 400ms step-start infinite;
animation: nyan 400ms step-start infinite;
z-index: 19999;

.body
left: 35px;
top: 0;
width: 105px;
height: 90px;

.head
left: 85px;
top: 25px;
width: 80px;
height: 65px;
-webkit-animation: head 400ms linear infinite;
animation: head 400ms linear infinite;

.rainbow
position: fixed;
left: 0;
top: 50%;
margin-top: -35px;
width: 50%;
height: 65px;
overflow: hidden;
z-index: 18888;

span
display: block;
position: relative;
top: 0;
width: 100%;
height: 130px;
background-size: 80px 5px;
background-repeat: repeat-x;
-webkit-animation: rainbow 400ms step-start infinite;
animation: rainbow 400ms step-start infinite;

.feet
left: 20px;
top: 75px;
width: 120px;
height: 25px;
-webkit-animation: feet 400ms infinite;
animation: feet 400ms infinite;

.tail
position: relative;
width: 25px;
height: 30px;
overflow: hidden;
top: 30px;
left: 10px;

span
width: 25px;
height: 120px;
-webkit-animation: tail 200ms step-start infinite alternate;
animation: tail 200ms step-start infinite alternate;

.sparks-combo
height: 300px;
width: 200%;
position: relative;
animation: woosh 700ms 0ms linear infinite both;

.spark
z-index: 1;
position: absolute;
width: 100%;
height: 100%;
background-color: transparent;
background: linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x;

&:before
background: linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 5px, transparent 5px, transparent 400px) repeat-x;

&:after
background: linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 6px, transparent 6px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 11px, transparent 11px, transparent 400px) repeat-x, linear-gradient(to right, white 0px, white 11px, transparent 11px, transparent 400px) repeat-x;

&:before,&:after
content: '';
position: absolute;
width: 100%;
height: 100%;
background-color: transparent;



&:nth-child(1)
z-index: 3;
top: 0;
left: 20px;
animation: sparkly 700ms 0ms steps(1) infinite both;

&:nth-child(1):before
animation: sparkly-before 700ms 0ms steps(1) infinite both;

&:nth-child(1):after
animation: sparkly-after 700ms 0ms steps(1) infinite both;

&:nth-child(2)
top: 40px;
left: 170px;
animation: sparkly 700ms 200ms steps(1) infinite both;

&:nth-child(2):before
animation: sparkly-before 700ms 200ms steps(1) infinite both;

&:nth-child(2):after
animation: sparkly-after 700ms 200ms steps(1) infinite both;

&:nth-child(3)
top: 100px;
left: 320px;
animation: sparkly 700ms 400ms steps(1) infinite both;

&:nth-child(3):before
animation: sparkly-before 700ms 400ms steps(1) infinite both;

&:nth-child(3):after
animation: sparkly-after 700ms 400ms steps(1) infinite both;

&:nth-child(4)
top: 150px;
left: 200px;
animation: sparkly 700ms 600ms steps(1) infinite both;

&:nth-child(4):before
animation: sparkly-before 700ms 600ms steps(1) infinite both;

&:nth-child(4):after
animation: sparkly-after 700ms 600ms steps(1) infinite both;


.body
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #f9d28f 10px, #f9d28f 95px, #000000 95px, #000000 100px, rgba(0, 0, 0, 0) 100px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 20px, #fe91fe 20px, #fe91fe 85px, #f9d28f 85px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 15px, #fe91fe 15px, #fe91fe 45px, #f90297 45px, #f90297 50px, #fe91fe 50px, #fe91fe 60px, #f90297 60px, #f90297 65px, #fe91fe 65px, #fe91fe 90px, #f9d28f 90px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 20px, #f90297 20px, #f90297 25px, #fe91fe 25px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 80px, #f90297 80px, #f90297 85px, #fe91fe 85px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 40px, #f90297 40px, #f90297 45px, #fe91fe 45px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 25px, #f90297 25px, #f90297 30px, #fe91fe 30px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 45px, #f90297 45px, #f90297 50px, #fe91fe 50px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 15px, #f90297 15px, #f90297 20px, #fe91fe 20px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 10px, #fe91fe 10px, #fe91fe 35px, #f90297 35px, #f90297 40px, #fe91fe 40px, #fe91fe 95px, #f9d28f 95px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 15px, #fe91fe 15px, #fe91fe 20px, #f90297 20px, #f90297 25px, #fe91fe 25px, #fe91fe 90px, #f9d28f 90px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, #000000 0%, #000000 5px, #f9d28f 5px, #f9d28f 20px, #fe91fe 20px, #fe91fe 85px, #f9d28f 85px, #f9d28f 100px, #000000 100px, #000000 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #f9d28f 10px, #f9d28f 95px, #000000 95px, #000000 100px, rgba(0, 0, 0, 0) 100px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 105px);

.head
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 20px, rgba(0, 0, 0, 0) 20px, rgba(0, 0, 0, 0) 60px, #000000 60px, #000000 70px, rgba(0, 0, 0, 0) 70px, rgba(0, 0, 0, 0) 105px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 20px, #000000 20px, #000000 25px, rgba(0, 0, 0, 0) 25px, rgba(0, 0, 0, 0) 55px, #000000 55px, #000000 60px, #9d9d9d 60px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 25px, #000000 25px, #000000 30px, rgba(0, 0, 0, 0) 30px, rgba(0, 0, 0, 0) 50px, #000000 50px, #000000 55px, #9d9d9d 55px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 30px, #000000 30px, #000000 35px, #000000 35px, #000000 50px, #9d9d9d 50px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #ffffff 20px, #ffffff 25px, #000000 25px, #000000 30px, #9d9d9d 30px, #9d9d9d 55px, #ffffff 55px, #ffffff 60px, #000000 60px, #000000 65px, #9d9d9d 65px, #9d9d9d 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #000000 20px, #000000 30px, #9d9d9d 30px, #9d9d9d 45px, #000000 45px, #000000 50px, #9d9d9d 50px, #9d9d9d 55px, #000000 55px, #000000 65px, #9d9d9d 65px, #9d9d9d 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 10px, #ff9593 10px, #ff9593 20px, #9d9d9d 20px, #9d9d9d 65px, #ff9593 65px, #ff9593 75px, #000000 75px, #000000 80px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 10px, #ff9593 10px, #ff9593 20px, #9d9d9d 20px, #9d9d9d 25px, #000000 25px, #000000 30px, #9d9d9d 30px, #9d9d9d 40px, #000000 40px, #000000 45px, #9d9d9d 45px, #9d9d9d 55px, #000000 55px, #000000 60px, #9d9d9d 60px, #9d9d9d 65px, #ff9593 65px, #ff9593 75px, #000000 75px, #000000 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 25px, #000000 25px, #000000 60px, #9d9d9d 60px, #9d9d9d 70px, #000000 70px, #000000 75px, rgba(0, 0, 0, 0) 75px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 15px, #9d9d9d 15px, #9d9d9d 65px, #000000 65px, #000000 70px, rgba(0, 0, 0, 0) 70px, rgba(0, 0, 0, 0) 80px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 15px, #000000 15px, #000000 65px, rgba(0, 0, 0, 0) 65px, rgba(0, 0, 0, 0) 80px);

.rainbow > span
background-image: linear-gradient(to right, #fe0000 0%, #fe0000 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, #fe0000 0%, #fe0000 100%), linear-gradient(to right, #ffa500 0%, #ffa500 50%, #fe0000 50%, #fe0000 100%), linear-gradient(to right, #ffa500 0%, #ffa500 100%), linear-gradient(to right, #ffff00 0%, #ffff00 50%, #ffa500 50%, #ffa500 100%), linear-gradient(to right, #ffff00 0%, #ffff00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 50%, #ffff00 50%, #ffff00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 100%), linear-gradient(to right, #009eff 0%, #009eff 50%, #00fb00 50%, #00fb00 100%), linear-gradient(to right, #009eff 0%, #009eff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 50%, #009eff 50%, #009eff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%, #6531ff 50%, #6531ff 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%, #fe0000 50%, #fe0000 100%), linear-gradient(to right, #fe0000 0%, #fe0000 100%), linear-gradient(to right, #fe0000 0%, #fe0000 50%, #ffa500 50%, #ffa500 100%), linear-gradient(to right, #ffa500 0%, #ffa500 100%), linear-gradient(to right, #ffa500 0%, #ffa500 50%, #ffff00 50%, #ffff00 100%), linear-gradient(to right, #ffff00 0%, #ffff00 100%), linear-gradient(to right, #ffff00 0%, #ffff00 50%, #00fb00 50%, #00fb00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 100%), linear-gradient(to right, #00fb00 0%, #00fb00 50%, #009eff 50%, #009eff 100%), linear-gradient(to right, #009eff 0%, #009eff 100%), linear-gradient(to right, #009eff 0%, #009eff 50%, #6531ff 50%, #6531ff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 100%), linear-gradient(to right, #6531ff 0%, #6531ff 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%);


.feet
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 25px, rgba(0, 0, 0, 0) 25px, rgba(0, 0, 0, 0) 120px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 110px, rgba(0, 0, 0, 0) 110px, rgba(0, 0, 0, 0) 120px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #000000 20px, #000000 35px, #9d9d9d 35px, #9d9d9d 40px, #000000 40px, #000000 80px, #9d9d9d 80px, #9d9d9d 110px, #000000 110px, #000000 115px, rgba(0, 0, 0, 0) 115px, rgba(0, 0, 0, 0) 120px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px, #000000 20px, rgba(0, 0, 0, 0) 20px, rgba(0, 0, 0, 0) 25px, #000000 25px, #000000 30px, #9d9d9d 30px, #9d9d9d 40px, #000000 40px, #000000 45px, rgba(0, 0, 0, 0) 45px, rgba(0, 0, 0, 0) 75px, #000000 75px, #000000 80px, #9d9d9d 80px, #9d9d9d 90px, #000000 90px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 100px, #000000 100px, #000000 105px, #9d9d9d 105px, #9d9d9d 115px, #000000 115px, #000000 120px), linear-gradient(to right, #000000 0%, #000000 15px, rgba(0, 0, 0, 0) 15px, rgba(0, 0, 0, 0) 30px, #000000 30px, #000000 45px, rgba(0, 0, 0, 0) 45px, rgba(0, 0, 0, 0) 80px, #000000 80px, #000000 95px, rgba(0, 0, 0, 0) 95px, rgba(0, 0, 0, 0) 105px, #000000 105px, #000000 120px);


.tail > span
background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 15px, rgba(0, 0, 0, 0) 15px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px, #000000 20px, rgba(0, 0, 0, 0) 20px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 20px, #9d9d9d 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 15px, #000000 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 20px, rgba(0, 0, 0, 0) 20px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px), linear-gradient(to right, #000000 0%, #000000 10px, #9d9d9d 10px, #9d9d9d 25px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 20px, #9d9d9d 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20px, #000000 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 15px, #000000 15px, #000000 20px, #9d9d9d 20px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10px, #000000 10px, #000000 15px, #9d9d9d 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 10px, #9d9d9d 10px, #9d9d9d 20px, #000000 20px), linear-gradient(to right, #000000 0%, #000000 5px, #9d9d9d 5px, #9d9d9d 15px, #000000 15px), linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 5px, #000000 5px, #000000 15px, rgba(0, 0, 0, 0) 15px);

@-webkit-keyframes rainbow {
0% {
top: 0;
}
50% {
top: 0;
}
100% {
top: -65px;
}
}

@keyframes rainbow {
0% {
top: 0;
}
50% {
top: 0;
}
100% {
top: -65px;
}
}
@-webkit-keyframes nyan {
0% {
margin-top: -50px;
}
10% {
margin-top: -50px;
}
80% {
margin-top: -53px;
}
100% {
margin-top: -50px;
}
}
@keyframes nyan {
0% {
margin-top: -50px;
}
10% {
margin-top: -50px;
}
80% {
margin-top: -53px;
}
100% {
margin-top: -50px;
}
}
@-webkit-keyframes feet {
0% {
left: 20px;
}
100% {
left: 30px;
}
}
@keyframes feet {
0% {
left: 20px;
}
100% {
left: 30px;
}
}
@-webkit-keyframes head {
0% {
top: 25px;
left: 85px;
}
24.99% {
top: 25px;
left: 85px;
}
25% {
top: 22px;
left: 88px;
}
49.99% {
top: 22px;
left: 88px;
}
50% {
top: 22px;
left: 85px;
}
74.99% {
top: 22px;
left: 85px;
}
75% {
top: 22px;
left: 82px;
}
99.99% {
top: 22px;
left: 82px;
}
100% {
top: 25px;
left: 85px;
}
}
@keyframes head {
0% {
top: 25px;
left: 85px;
}
24.99% {
top: 25px;
left: 85px;
}
25% {
top: 22px;
left: 88px;
}
49.99% {
top: 22px;
left: 88px;
}
50% {
top: 22px;
left: 85px;
}
74.99% {
top: 22px;
left: 85px;
}
75% {
top: 22px;
left: 82px;
}
99.99% {
top: 22px;
left: 82px;
}
100% {
top: 25px;
left: 85px;
}
}
@-webkit-keyframes tail {
0% {
top: 0;
}
25% {
top: 0;
}
49.99% {
top: 0;
}
50% {
top: -30px;
}
74.99% {
top: -30px;
}
75% {
top: -60px;
}
99.99% {
top: -60px;
}
100% {
top: -90px;
}
}
@keyframes tail {
0% {
top: 0;
}
25% {
top: 0;
}
49.99% {
top: 0;
}
50% {
top: -30px;
}
74.99% {
top: -30px;
}
75% {
top: -60px;
}
99.99% {
top: -60px;
}
100% {
top: -90px;
}
}
@keyframes woosh {
0% {
left: 0px;
}
100% {
left: -400px;
}
}
@keyframes sparkly {
0% {
background-size: 400px 6px, 0 0, 0 0, 0 0;
background-position: 17px 17px, 0 0, 0 0, 0 0;
}
16% {
background-size: 400px 6px, 400px 6px, 400px 6px, 400px 6px;
background-position: 17px 0, 34px 17px, 17px 34px, 0 17px;
}
33% {
background-size: 400px 6px, 400px 6px, 400px 6px, 400px 6px;
background-position: 17px 0, 34px 17px, 17px 34px, 0 17px;
}
50% {
background-size: 400px 6px, 0 0, 0 0, 0 0;
background-position: 17px 17px, 0 0, 0 0, 0 0;
}
66% {
background-size: 400px 11px, 400px 11px, 0 0, 0 0;
background-position: 17px 6px, 17px 23px, 0 0, 0 0;
}
83% {
background-size: 0 0, 0 0, 400px 5px, 400px 5px;
background-position: 0 0, 0 0, 11px 17px, 22px 17px;
}
100% {
background-size: 400px 6px, 0 0, 0 0, 0 0;
background-position: 17px 17px, 0 0, 0 0, 0 0;
}
}
@keyframes sparkly-before {
0% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
16% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
33% {
background-size: 400px 5px, 400px 5px, 400px 5px, 400px 5px;
background-position: 6px 6px, 29px 6px, 29px 29px, 6px 29px;
}
50% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
66% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
83% {
background-size: 0 0, 0 0, 400px 5px, 400px 5px;
background-position: 0 0, 0 0, 17px 12px, 17px 22px;
}
100% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
}
@keyframes sparkly-after {
0% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
16% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
33% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
50% {
background-size: 400px 11px, 400px 11px, 400px 6px, 400px 6px;
background-position: 17px 0, 17px 29px, 0 17px, 29px 17px;
}
66% {
background-size: 0 0, 0 0, 400px 6px, 400px 6px;
background-position: 0 0, 0 0, 6px 17px, 23px 17px;
}
83% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
100% {
background-size: 0 0, 0 0, 0 0, 0 0;
background-position: 0 0, 0 0, 0 0, 0 0;
}
}
  1. 修改[Blogroot]\themes\butterfly\layout\includes\loading\fullpage-loading.pug,复制以下代码替换全部内容。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#loading-box(onclick='document.getElementById("loading-box").classList.add("loaded")')
.sparks-combo
.spark
.spark
.spark
.spark
.rainbow
span
.nyan-cat
.feet
.tail
span
.body
.head
script(src="/js/nyan.js")
  • ✇汐塔魔法屋
  • 2024-07小记王九弦SZ·Ninty
    依然还是每个月的个人小记啦虽然这个月出了一点事故,但也是有一点惊喜的啦 ~~~话不多说,正片开始初入罗德岛看到罗德岛,你们知道我干啥了吧没错,我入坑《明日方舟》了我原本是想说小何让我入坑《绝区零》的事情的,结果那次我祖奶奶过世再加上我弟生病,导致我这几天根本没心情玩也因此对绝区零也没什么太大印象,只能说说方舟的事情入坑的是国际服(国服的话。。。。。懂得都懂)但是这暑假的一堆事情和小何给我的一大堆事情,再加上补习,让我没怎么玩过游戏(甚至连ba,赛马娘和大碧蓝都没玩了,)后面也懒得给这游戏做评价了,反正游戏嘛,能放轻松就行成为小众网vip我上篇小记不是收藏了一些机子吗?我之前想给这些机子安装几款游戏玩玩,但是无奈我想找的只有去小众网才有于是我花9.9买下小众网一年会员虽然我不怎么下载这里面的软件了。。。。。就当是支持小众网吧~~(反正这个月入手了几台新机子,后面想给这些机子下载软件也很方便)淘到的新机子还是老样子,来看看我这个月收藏了什么老机子吧:三星M128这台原计划是两天到达的,但是因为台风导致拖了一天有人甚至还说被风吹飞了,这要是被风吹飞了我可能会当场裂开,毕竟这可是稀有机子,还是
     

2024-07小记

2024年7月31日 06:42

依然还是每个月的个人小记啦
虽然这个月出了一点事故,但也是有一点惊喜的啦 ~~~
话不多说,正片开始

初入罗德岛

看到罗德岛,你们知道我干啥了吧
没错,我入坑《明日方舟》了
我原本是想说小何让我入坑《绝区零》的事情的,结果那次我祖奶奶过世再加上我弟生病,导致我这几天根本没心情玩
也因此对绝区零也没什么太大印象,只能说说方舟的事情

入坑的是国际服(国服的话。。。。。懂得都懂)
但是这暑假的一堆事情和小何给我的一大堆事情,再加上补习,让我没怎么玩过游戏(甚至连ba,赛马娘和大碧蓝都没玩了,)

后面也懒得给这游戏做评价了,反正游戏嘛,能放轻松就行

成为小众网vip

我上篇小记不是收藏了一些机子吗?
我之前想给这些机子安装几款游戏玩玩,但是无奈我想找的只有去小众网才有

于是我花9.9买下小众网一年会员
虽然我不怎么下载这里面的软件了。。。。。就当是支持小众网吧~~
(反正这个月入手了几台新机子,后面想给这些机子下载软件也很方便)

淘到的新机子

还是老样子,来看看我这个月收藏了什么老机子吧:

三星M128

这台原计划是两天到达的,但是因为台风导致拖了一天

有人甚至还说被风吹飞了,这要是被风吹飞了我可能会当场裂开,毕竟这可是稀有机子,还是奥运会特别纪念手机。。。。。

1
2

这台的右键貌似有问题,每次都得用力按一下才能点到右边
算了,反正是稀有机子嘛,就别要求这么多啦。。。。

PPC 三 兄 贵 —— 三星Omnia I900V/I908/I908L

其实那I900V就是我上个小记说的那PPC,这次确实搞到了三台,只不过是两台I908L和一台I908
其中一台I908L屏幕是坏的,刚好我有一台I900V那外壳是坏的,索性就把外壳拆下来装到那I900V上来了

1

第二台摩托罗拉 —— 摩托罗拉 明A1200

那次看完《保持通话》这个电影之后就一直想搞台这个了
(其实我原本想要的是A1600,然后找不到便宜的,只能a1200)

1
2

可惜的是这个貌似听筒是坏掉的,后面等我搞到个好的听筒再来发照片吧

第三台摩托罗拉 —— 摩托罗拉 刀锋V3

(别问第一台是什么,第一台是C289,黑白屏的,很久之前从我外婆那边收到的)
这台我其实是买了两台
有一台被当作另一台的配件机了
1
2
不愧是刀锋,这手感放在2024都不过时
可惜的是在此之后摩托罗拉据说是错过了安卓,导致移动业务被收购了。。。。。

其它的先不展示。。。。。这个月淘到的机子有一点多了。。。。

以上

  • ✇汐塔魔法屋
  • 2024-06小记王九弦SZ·Ninty
    很好,马上就快到暑假了,但我得7月11日才开始正式放暑假。。。。。。(bobo和小何、安小歪都已经开始放暑假了。。。。。。)算了,正片开始吧全站npm化成功经历了多次翻车之后,本站的全站npm化终于成功了我那全站npm化的方案与byer那篇文章不同,我的方案是将hexo-swpp和cyanfalse大佬的教程结合起来实现了npm版本自定义更新、采用CacheStorage存储来实现ServiceWorker的全局变量持久化(结果因为英文站那边出现问题,导致我不得不再次放弃全站npm化)(修好了)成功搞indleweb之前我说过,要把indleweb搞好的现在终于好了并且已经加入了indleweb webring英文站的话。。。。。还在测试,因为并不是完全是英文的,还在修改收藏了几台手机这些都是之前在闲鱼上看见的其中有一台说是配件机,说是不能开机结果被我搞开机了然后这三台我都给它们换了主题换完主题的效果:以上(虽然还有一场考试。。。。。但是是在下周四)
     

2024-06小记

2024年6月29日 06:31

很好,马上就快到暑假了,但我得7月11日才开始正式放暑假。。。。。。
(bobo和小何、安小歪都已经开始放暑假了。。。。。。)
算了,正片开始吧

全站npm化成功

经历了多次翻车之后,本站的全站npm化终于成功了
我那全站npm化的方案与byer那篇文章不同,我的方案是将hexo-swpp和cyanfalse大佬的教程结合起来
实现了npm版本自定义更新、采用CacheStorage存储来实现ServiceWorker的全局变量持久化

(结果因为英文站那边出现问题,导致我不得不再次放弃全站npm化)(修好了)

成功搞indleweb

之前我说过,要把indleweb搞好的
现在终于好了
并且已经加入了indleweb webring
英文站的话。。。。。还在测试,因为并不是完全是英文的,还在修改

收藏了几台手机

这些都是之前在闲鱼上看见的
其中有一台说是配件机,说是不能开机
结果被我搞开机了

然后这三台我都给它们换了主题
换完主题的效果:
d76602a274135b80c62d56bd26c758a
0dbf4a6d201aa874c099abce975c7cb

以上(虽然还有一场考试。。。。。但是是在下周四)

  • ✇汐塔魔法屋
  • 2024-05小记王九弦SZ·Ninty
    本文章已经同步到xLog:https://xlog.sinzmise.top/write-2024-05久违的在n+1月前写n月小记。。。。。。废话不多说,正片开始!突如其来的通知说实在的,看到这个通知,我既感到意外,又觉得很不意外因为之前我那文章封面都是loliapi生成的,而loliapi里面又诞生出了不少擦边图目前已经将一批头图更换,并且准备半年后重新申请如果申请还是不通过的话,那么就特别遗憾了原本是想让博友圈的管理来改我那站点信息的,现在搞成那样,只能说下次注意了。。。。。。2024-06-05更新:一周了都没给我回复,估计已经给我拉入黑名单了那算了,既然这样的话,那这个链接就不打算留了反正也是我自己一时的疏忽搞成的这样。。。。。。全站npm化大翻车在我逛逛友链朋友圈的时候发现了这么一篇文章:hexo全站NPM化之·通过npmmirror加速你的博客访问估计是由CyanFalse大佬的文章发现的灵感。。。。。之前CyanFalse大佬那个我看不懂,而且懂了也不知道怎么写QWQ于是我开始安装这个教程来搞全站npm化结果这么一搞,反而拖慢了站点加载速度,而且:我原本以为是npmmi
     

2024-05小记

2024年5月27日 05:18

本文章已经同步到xLog:https://xlog.sinzmise.top/write-2024-05

久违的在n+1月前写n月小记。。。。。。
废话不多说,正片开始!

突如其来的通知

来自博友圈的通知
说实在的,看到这个通知,我既感到意外,又觉得很不意外
因为之前我那文章封面都是loliapi生成的,而loliapi里面又诞生出了不少擦边图
目前已经将一批头图更换,并且准备半年后重新申请
如果申请还是不通过的话,那么就特别遗憾了
原本是想让博友圈的管理来改我那站点信息的,现在搞成那样,只能说下次注意了。。。。。。

2024-06-05更新:
一周了都没给我回复,估计已经给我拉入黑名单了
那算了,既然这样的话,那这个链接就不打算留了
反正也是我自己一时的疏忽搞成的这样。。。。。。

全站npm化大翻车

在我逛逛友链朋友圈的时候发现了这么一篇文章:

之前CyanFalse大佬那个我看不懂,而且懂了也不知道怎么写QWQ
于是我开始安装这个教程来搞全站npm化
结果这么一搞,反而拖慢了站点加载速度,而且:
f12发现的错误
我原本以为是npmmirror的问题,毕竟大佬说了NPM已经开启了白名单模式
但尽管我换成jsd和unpkg也依然是这个情况
只能取消全站npm化
后面我去问下大佬是怎么回事吧。。。。。。

站点添加Ruffle

没错,我又给站点添加回Ruffle了
话说回来,估计我认识的这些搞博客的站长中,只有我对swf依然是最感兴趣了吧。。。。。。
如果你还不知道Ruffle是什么的话,可以去看看我这篇文章:

Hello,xLog

在别的地方了解到了 xLog 这个使用区块链技术存储数据的博客平台
而且看见有一堆大佬也从 Hexo 迁移到 xLog
在好奇之下我便搞了这玩意

怎么说呢,虽然这玩意有着高度可定制的需求,并且能保证数据是安全的
而且因为用的区块链,使得数据在得到安全的情况下,可以通过区块链可以赚取代币

但也是因为用的区块链,而链上操作是透明且不可撤销的,其他人可以通过区块链历史查看文章的修改历史
也因此导致它虽然能删除文章,但不算真正无法真正删除一篇文章(简称:如删)
但这还不是重点,重点是:不能引入 JS(重点, 因为这样的话我没法引入 Ruffle 了。。。。。。 ),并且没有主题

并且也可能是因为我 Hexo 用习惯了,面对这种博客后台,我居然有点不太习惯
但还好,xLog 能导入 MarkDown 文件,并且支持 Front Matter

也因此,后面我打算让 Hexo 和 xLog 同步更新
(虽然这得耗费不少时间,但是我喜欢折腾的乐趣,然而我没想到的是这玩意居然能添加开往的链接,这也是我没想到的,但这里文章太少,后面我打算文章多一点之后再去试试看能不能申请加入开往吧。。。。。。。。。。)

至于我那 xLog 站点的名字,既然我给 Hexo 的主题 UI 是 CetaStories(名字修改于希腊字母 Theta)

那名字决定了!那个xLog博客名字就叫星空魔法书・Delta 吧!
我的xLog链接:https://xlog.sinzmise.top/

以上

  • ✇汐塔魔法屋
  • Ruffle测试王九弦SZ·Ninty
    这玩意也是很久之前就认识到了我甚至记得我还给这玩意写过Hexo插件但后来我给这个插件删了,因为这玩意的配置真的简单介绍随着网页的安全性升级,带有安全漏洞的Flash也逐渐被淘汰,现在的主流浏览器几乎都不支持Flash也因此,很多的站点都已经废弃掉他们的flash了但后面我找到了一款叫Ruffle的工具,这玩意是个全新的开源Flash项目,旨在从本地到网页完全替代老旧的Flash而且不同于带有安全漏洞的Flash,Ruffle采用了高效安全的Rust语言编写,同时完全开源保证了及时修补漏洞搞这玩意的很多教程都是得在浏览器安装插件,让用户通过这个插件来实现播放flash但我在Ruffle的官网找到个这玩意:这玩意能通过引入在站点js的方式来让自己的站点再次适配swf那就废话不多说,赶紧开始吧!(话说好像在2024好像只有我对flash依然这么感兴趣。。。。。。。)配置Ruffle教程基础只需要在站点下面引入这行代码就可以了1<script src="https://jsd.onmicrosoft.cn/npm/@ruffle-rs/ruffle"></script>
     

Ruffle测试

2024年5月26日 05:12

这玩意也是很久之前就认识到了
我甚至记得我还给这玩意写过Hexo插件
但后来我给这个插件删了,因为这玩意的配置真的简单

介绍

随着网页的安全性升级,带有安全漏洞的Flash也逐渐被淘汰,现在的主流浏览器几乎都不支持Flash
也因此,很多的站点都已经废弃掉他们的flash了
但后面我找到了一款叫Ruffle的工具,这玩意是个全新的开源Flash项目,旨在从本地到网页完全替代老旧的Flash
而且不同于带有安全漏洞的Flash,Ruffle采用了高效安全的Rust语言编写,同时完全开源保证了及时修补漏洞

搞这玩意的很多教程都是得在浏览器安装插件,让用户通过这个插件来实现播放flash
但我在Ruffle的官网找到个这玩意:
官网截图
这玩意能通过引入在站点js的方式来让自己的站点再次适配swf

那就废话不多说,赶紧开始吧!
(话说好像在2024好像只有我对flash依然这么感兴趣。。。。。。。)

配置Ruffle教程

基础

只需要在站点下面引入这行代码就可以了

1
<script src="https://jsd.onmicrosoft.cn/npm/@ruffle-rs/ruffle"></script>

如果你想用swfobject来引入swf的话,还得另外引入这个代码:

1
<script src="https://jsd.onmicrosoft.cn/gh/swfobject/swfobject@master/swfobject/swfobject.js"></script>

之后就可以在站点放置flash动画了!
不过估计也有人不知道flash动画怎么放,我这里就写个Demo吧!

Demo

1.Flash音乐播放器(没有SWFObject的)

测试音乐:Rain And Tears (纯音乐) - Pop Mania
(这首歌是一个虎牙中的一位MC实况主经常用的背景音乐,这位实况主还是我第一位关注的玩MC的实况主,然后我就对这个bgm印象很深)

新浪的

1
<embed width="238" height="24" name="FlashVars" wmode="opaque" play="true" loop="true" scale="showall" src="https://files.blog.sinzmise.top/swf/sina_music_player.swf" FlashVars="url=https%3A%2F%2Ffiles.blog.sinzmise.top%2Fmp3%2FRainAndTears.mp3" type="application/x-shockwave-flash"></embed>

人人网的

1
<embed width="360" height="30" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowfullscreen="false" allowscriptaccess="sameDomain" bgcolor="#ffffff" scale="noscale" quality="high" menu="false" loop="false" wmode="transparent" src="https://files.blog.sinzmise.top/swf/renren_music_player.swf?url=https%3A%2F%2Ffiles.blog.sinzmise.top%2Fmp3%2FRainAndTears.mp3&Autoplay=0" />

开心网的

1
<embed width="365" height="50" align="middle" flashvars="url=https%3A%2F%2Ffiles.blog.sinzmise.top%2Fmp3%2FRainAndTears.mp3&autoplay=0" src="https://files.blog.sinzmise.top/swf/kaixin_music_player.swf" wmode="transparent" loop="false" menu="false" quality="high" scale="noscale" salign="lt" bgcolor="#ffffff" allowscriptaccess="sameDomain" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"/>

还没写完,后续再写更多Demo

  • ✇汐塔魔法屋
  • 2024-04小记王九弦SZ·Ninty
    本文章已经同步到xLog:https://xlog.sinzmise.top/write-2024-04先祝大家劳动节快乐(虽然已经过了一天),也提前祝大家五四青年节快乐!然后,正片开始!Akilar群寄了这件事还是小何告诉我的(小何没告诉我之前我还不知道)看店长的文章我才知道大概是有群友转发了含R18内容的聊天记录,然后Akliar才把群给解散的Akilar的通知:关于群聊更换的紧急通知真不知道哪个人这么无聊,好好的群都给人整废Akilar新群:Akilarの糖果屋-新群洪槽纪年结束,现在是洪mac纪年然后洪mac一年一月八日~~(bushi)~~(也就是2024年五月三日),我加入了Akilar的新群加入笔墨迹Blogs·CN(笔墨迹)是一个位于中国境内的平台,致力于发掘和分享"优秀个人独立博客"。我老早之前就想加入了,但是那天由于博客要重新装修,所以我没加入现在装修好了,可以加入了目前已经通过博客更新请看这个:更新记录
     

2024-04小记

2024年5月3日 02:31

本文章已经同步到xLog:https://xlog.sinzmise.top/write-2024-04

先祝大家劳动节快乐(虽然已经过了一天),也提前祝大家五四青年节快乐!
然后,正片开始!

Akilar群寄了

这件事还是小何告诉我的(小何没告诉我之前我还不知道)
看店长的文章我才知道大概是有群友转发了含R18内容的聊天记录,然后Akliar才把群给解散的
Akilar的通知:

Akilar新群:

然后洪mac一年一月八日~~(bushi)~~(也就是2024年五月三日),我加入了Akilar的新群

加入笔墨迹

Blogs·CN(笔墨迹)是一个位于中国境内的平台,致力于发掘和分享"优秀个人独立博客"。

我老早之前就想加入了,但是那天由于博客要重新装修,所以我没加入
现在装修好了,可以加入了
目前已经通过

博客更新

请看这个:

  • ✇汐塔魔法屋
  • 马里奥制造1打百人团教程王九弦SZ·Ninty
    不知道什么时候,我开始玩马里奥制造(以下简称“马造”)了但是我没有Switch,模拟器配置较为麻烦,所以我没法玩马造2,只能玩玩马造1然而在2024年4月9日,任天堂 3DS / WiiU 在线功能停服在停服之前,我就一直知道马造1有私服,但是这玩意之前不知道为啥总配置失败现在倒是配置好了,话不多说,游玩教程开始!下载懒人包这玩意我已经打包成为一个懒人包了大伙想要的可以下载: 懒人包链接 下载完成之后先点击Start启动服务端正常情况下的这四个的提示是这样的:NEX(SMM) 占用端口59900和59921NEX(Friends)占用端口60000和60021Pretando++ 占用端口8383Caddy 占用端口80和443请注意:如果出现异常的话十有八九可能是端口被占用了请先用netstat -ano|findstr 程序对应的端口号查看端口有没有被占用如果端口被侵占了,输入taskkill /t /f /im 进程号关闭占用端口的进程如果还是不行的话。。。。加Q群问(在最下方)一切正常的话,点击“Start Cemu”打开模拟器注意:必须
     

马里奥制造1打百人团教程

2024年4月28日 03:43

不知道什么时候,我开始玩马里奥制造(以下简称“马造”)了
但是我没有Switch,模拟器配置较为麻烦,所以我没法玩马造2,只能玩玩马造1
然而在2024年4月9日,任天堂 3DS / WiiU 在线功能停服

在停服之前,我就一直知道马造1有私服,但是这玩意之前不知道为啥总配置失败
现在倒是配置好了,话不多说,游玩教程开始!

下载懒人包

这玩意我已经打包成为一个懒人包了
大伙想要的可以下载:

下载完成之后先点击Start启动服务端
SmmServer_5kCtRQwhp0

正常情况下的这四个的提示是这样的:

  • NEX(SMM) 占用端口59900和59921
    SmmServer_ONoCeAxy5j
  • NEX(Friends)占用端口60000和60021
    SmmServer_H0VbUAIUgS
  • Pretando++ 占用端口8383
    SmmServer_NY1UtocxVh
  • Caddy 占用端口80和443
    SmmServer_Hngcypv9AG

请注意:
如果出现异常的话
十有八九可能是端口被占用了
请先用netstat -ano|findstr 程序对应的端口号查看端口有没有被占用
如果端口被侵占了,输入taskkill /t /f /im 进程号关闭占用端口的进程
如果还是不行的话。。。。加Q群问(在最下方)

一切正常的话,点击“Start Cemu”打开模拟器注意:必须用自带的模拟器!要不然打开马造世界关卡会提示106-0502错误
SmmServer_zKuO6e7rGt
然后双击Super Mario Maker,等待加载完成便可以游玩了!

这可能是我写博客以来第一次写这么简短的教程
  • ✇汐塔魔法屋
  • Serv00搭建Artalk王九弦SZ·Ninty
    之前在安小歪的推荐下,找到了一个叫serv00的东西但是因为这玩意我不会用,所以我把Serv00一直当成不能部署thinkphp的虚拟主机使用然而我之前看见了这个教程:Serv00搭建各种服务于是我决定在Serv00搭建一些项目但里面没有Artalk的教程,我准备所以按照部署Alist的方法给Serv00部署Artalk那么好,教程开始!教程准备工作Serv00搭建各种服务·部署应用前的一些准备工作准备工作正式开始首先在 Panel 中放行一个端口,接着按照下表 Add a New Website :KeyValueDomainxxx.USERNAME.serv00.net(也可以把原有的 USERNAME.serv00.net 删掉后重新添加)Website TypeproxyProxy TargetlocalhostProxy URL留空Proxy port你准备用来部署 Alist 的端口Use HTPPSFalseDNS supportTrue添加完新站点后,继续点击上方的 Manage SSL certificates ,接着在出口 IP 的右侧点击 Manage ,再点击
     

Serv00搭建Artalk

2024年4月13日 06:46

之前在安小歪的推荐下,找到了一个叫serv00的东西
但是因为这玩意我不会用,所以我把Serv00一直当成不能部署thinkphp的虚拟主机使用
然而我之前看见了这个教程:

于是我决定在Serv00搭建一些项目
但里面没有Artalk的教程,我准备所以按照部署Alist的方法给Serv00部署Artalk
那么好,教程开始!

教程

准备工作

正式开始

首先在 Panel 中放行一个端口,接着按照下表 Add a New Website :

KeyValue
Domainxxx.USERNAME.serv00.net(也可以把原有的 USERNAME.serv00.net 删掉后重新添加)
Website Typeproxy
Proxy Targetlocalhost
Proxy URL留空
Proxy port你准备用来部署 Alist 的端口
Use HTPPSFalse
DNS supportTrue
添加完新站点后,继续点击上方的 Manage SSL certificates ,接着在出口 IP 的右侧点击 Manage ,再点击 Add certificate :
TypeDomain
Generate Let’s Encrypted certificate与刚刚添加的站点域名保持一致(如果是原有的 USERNAME.serv00.net ,可以省略此步)
接着SSH登入,并进入刚刚你新建的域名目录下的public_html路径下:
1
2
# 使用一键命令安装 Artalk
wget -O artalk-freebsd.sh https://github.com/SinzMise/artalk-deploy/raw/serv00/artalk-freebsd.sh && sh artalk-freebsd.sh

在 Panel 中进入 MySQL 选项卡,使用 Add database 功能新建一个数据库。(当然Postgresql也可以,如果不要数据库就只要sqlite可以不用新建)

密码要求含有大写字母、小写字母和数字三种字符,且长度必须超过6个字符。

接下来进入 File manager 选项卡,进入~/domains/xxx.USERNAME.serv00.net/public_html路径,可以看到一个名为 artalk.yml 的文件,右键点击,选择 View/Edit > Source Editor ,进行编辑
这里面就只要改port和db就行,其它的能在后台设置
其中port改成你放行的端口
db是数据库设置
参考如下:
msedge_1Z2sZqAP2k
改完之后,点击 save 保存,接着回到 SSH 窗口中进行操作:

测试启动 Artalk:

1
./artalk server

确定运行没有问题后,按Ctrl+c即可停止运行。

由于artalk需要创建管理员账号,因此需要输入以下命令:

1
./artalk admin

最后使用pm2启动并且管理artalk:

1
pm2 start "./artalk server" --name "Artalk"

同样的,你还可以使用 Cloudflared 隧道添加域名,而不选择使用 Proxy 。

收尾工作

参考教程:

  • ✇汐塔魔法屋
  • 博客装修+3月小记王九弦SZ·Ninty
    本文章已经同步到xLog:https://xlog.sinzmise.top/write-2024-03这篇小记原本是预计清明前发布的,但奈何出了点问题到现在才发算了,话不多说,正文开始!博客又双叒叕更新了目前你们看见的是一个新的页面对吧没错,从现在开始博客将启用新名字:星空故事·魔法小屋这个名字来源于我之前做的梦,梦中的画面:我站在星空下,望着那美丽的星星突然,一颗星星向我奔来这颗星星化成了光,在光中出现一座小屋这座小屋的门突然打开,探出头来的正是我之前所说的那只猫娘——夏玖铃她说:“哎,好吧,被你发现了啊。。。。。其实我的猫耳,是魔法变出来的”随后她便向我展示了魔法我在她的屋子里一直探索知道我梦醒来也因此,我的Q群正式改名为“中弦局·星空计划闲聊群”(但目前这个计划是不会做什么项目啦。。。。硬要说的话我那博客就算是。。。。吧?)回归荒野行动为什么叫“回归”呢?因为我18年入坑的荒野行动然后由于我那台米4手机摔坏了,再加上某些原因,退网了半个月19年的时候我再次接触电脑的时候,但由于那时候电脑配置低,玩了不一会就退游了六年之后,小何的推荐让我重新回归了这款游戏别说,重新回归后的感觉还
     

博客装修+3月小记

2024年4月7日 03:40

本文章已经同步到xLog:https://xlog.sinzmise.top/write-2024-03

这篇小记原本是预计清明前发布的,但奈何出了点问题到现在才发
算了,话不多说,正文开始!

博客又双叒叕更新了

目前你们看见的是一个新的页面对吧
没错,从现在开始博客将启用新名字:星空故事·魔法小屋

这个名字来源于我之前做的梦,梦中的画面:

  • 我站在星空下,望着那美丽的星星
  • 突然,一颗星星向我奔来
  • 这颗星星化成了光,在光中出现一座小屋
  • 这座小屋的门突然打开,探出头来的正是我之前所说的那只猫娘——夏玖铃
  • 她说:“哎,好吧,被你发现了啊。。。。。其实我的猫耳,是魔法变出来的”
  • 随后她便向我展示了魔法
  • 我在她的屋子里一直探索知道我梦醒来

也因此,我的Q群正式改名为“中弦局·星空计划闲聊群”
(但目前这个计划是不会做什么项目啦。。。。硬要说的话我那博客就算是。。。。吧?)

回归荒野行动

为什么叫“回归”呢?因为我18年入坑的荒野行动
然后由于我那台米4手机摔坏了,再加上某些原因,退网了半个月
19年的时候我再次接触电脑的时候,但由于那时候电脑配置低,玩了不一会就退游了

六年之后,小何的推荐让我重新回归了这款游戏
别说,重新回归后的感觉还真不一样,把把都能2杀以上 (虽然我玩和平的时候最高10-15杀,况且这周下来只吃了一把鸡)

怎么说也得把这款游戏放在游戏页面啦。。。。。但由于博客重新装修,游戏页面还没搞。。。。。。

新键盘

今年的3月29(农历2月20,顺带一提我们这边一般过的是农历生日)是我生日
我弟给我买了款键盘(在拼夕夕上购买的)
88f110a7d672f4ca446855557a53979
这玩意好看而且打起来手感不错,唯一的缺点就是没有截图键
(不得不设置Ctrl+Win+S截图)

入坑pjsk日服 + 成功体会到了某个谱的“含金量”

之前据说pjsk日服更新了新UI,打起来手感跟旧UI不同,我好奇于是就下了日服
在下载日服数据包的同时我把这件事告诉了我那之前玩过pjsk的哥们,结果:
tP7lPD46o9

好好好,小丑竟是我自己()

然后他给我推荐了两个谱:
e8M87BtNg3
试了一下这玩意的Hard模式
好好好,我算是体会到这谱的“含金量”了

然后他给我意味深长的一句话:
Nq1pxtAkKm
确实《简单》,我逝了一下,差点眼花

然后就没有然后了

入坑SMMWE(Super Mario Maker:World Engine)

这玩意我还是之前意外刷到的,因为我平时喜欢玩马造1(用的模拟器)和看马造2的视频(因为我没有Switch)
然后我刷马造2刷着刷着意外刷到SMMWE的视频
我心想:马造有手机版了?虽然是非官方但还是玩一玩吧

然后体验了一下
这么说吧,虽然这玩意是“同人”创,但也是成功模仿了马造2的画面展示着马造1(bushi)
但是是手机端的,而且还是“同人”,能理解。。。。。。

  • ✇汐塔魔法屋
  • 2024-02小记王九弦SZ·Ninty
    本文章已经同步到xLog:https://xlog.sinzmise.top/write-2024-02时间真快,转眼间,新年、2月过去了就让这里写下我2月做了什么吧伺か(伪春菜),我并未忘记从之前我就想将明猪大佬的网页版伪春菜看板娘搞到Hexo里去,因为时间等原因我并未实施现在我把它搞上去了,效果如下:目前所使用的人格是落鸟,后面如果有时间的话我写个Hexo插件,然后在插件里切换人格还有有关聊天功能嘛。。。。。我是打算用AI来实现啦。。。。。。。(2024-05 因为新博客部署伪春菜的时候出现了一些问题,导致春菜没到新家,很抱歉!目前正在修复)现在因为开学了,所以不能经常打开ssp看橘花和绿坝娘(没错,也有人做绿坝娘的ssp人格,甚至还是有配音的)但是我依然没有忘掉他们。。。。。。就像我之前的文章里说的,希望伪春菜这个圈子能跟以前一样在国内重新爆发活力(虽然代价是圈子变臭,还不如让很少人了解这个圈子。。。。。)Memos又寄了。。。。。。我是没想到Koyeb会暂停部署,Kuma来了也没管用算了,后面我找个免费方法再搞Memos吧反正现在还能访问,{ psw 这个干脆就做简短点啦。。。
     

2024-02小记

2024年3月4日 02:10

本文章已经同步到xLog:https://xlog.sinzmise.top/write-2024-02

时间真快,转眼间,新年、2月过去了
就让这里写下我2月做了什么吧

伺か(伪春菜),我并未忘记

从之前我就想将明猪大佬的网页版伪春菜看板娘搞到Hexo里去,因为时间等原因我并未实施
现在我把它搞上去了,效果如下:
msedge_KiupgoTMYf
目前所使用的人格是落鸟,后面如果有时间的话我写个Hexo插件,然后在插件里切换人格
还有有关聊天功能嘛。。。。。我是打算用AI来实现啦。。。。。。。

(2024-05 因为新博客部署伪春菜的时候出现了一些问题,导致春菜没到新家,很抱歉!目前正在修复)

现在因为开学了,所以不能经常打开ssp看橘花和绿坝娘(没错,也有人做绿坝娘的ssp人格,甚至还是有配音的)
但是我依然没有忘掉他们。。。。。。
就像我之前的文章里说的,希望伪春菜这个圈子能跟以前一样在国内重新爆发活力
(虽然代价是圈子变臭,还不如让很少人了解这个圈子。。。。。)

Memos又寄了。。。。。。

我是没想到Koyeb会暂停部署,Kuma来了也没管用
算了,后面我找个免费方法再搞Memos吧
反正现在还能访问,{ psw 这个干脆就做简短点啦。。。。。(bushi) }

GTA V,启动!

别问为啥要把这个放在二月小记,我只能在周末才能碰到电脑,也因此只能在假期写文章
{ psw 也别问我为啥不在手机上写,我Qexo都没搞。。。。。。 }
经过小何的邀请下,我决定入坑GTA5,并且在小何的帮助下成功用15块钱搞到了GTA5白号
他带我打了个差事,然后抢抢便利店,最后还打了死亡对战(虽然平局了)
怎么说呢。。。。。。。虽然我玩的游戏很多,但因为我很少玩游戏,所以不知道怎么评价
但怎么说呢,总归也入坑了一款我没玩过的游戏呢

  • ✇汐塔魔法屋
  • 给你的站点添加个可可爱爱的看板娘——伪春菜王九弦SZ·Ninty
    前言什么是伪春菜?请看这里作为一个早在xp时代就出现的桌面精灵,伪春菜有了爆火的人气后来不知道什么时候开始在国内由盛转衰,直到现在我对这个圈子少之又少我自己也下载了ssp并且应用了后来某位大佬复活的Taromati2人格某次我逛逛某个博客站点时发现有个站点将伪春菜当成了看板娘就去去搜了一下,得到的结果是:http://www.lmyoaoa.com/inn/archives/4504/又因为这玩意已经很久没更新,所以我将这个的js、css和图片提取出来,然后魔改了一下,方便放在hexo里面废话不多说,开始吧!引入js和css{blogroot}/source/weichuncai/css/style.css12345678910111213141516171819202122232425#smchuncai {opacity:0.85;width:160px;height:160px;position:fixed;top:400px;left:800px;font-size:12px;}* html #smchuncai {position:absolute;}#chuncaiface
     

给你的站点添加个可可爱爱的看板娘——伪春菜

2024年2月17日 01:17

前言

什么是伪春菜?请看这里
作为一个早在xp时代就出现的桌面精灵,伪春菜有了爆火的人气
后来不知道什么时候开始在国内由盛转衰,直到现在我对这个圈子少之又少
我自己也下载了ssp并且应用了后来某位大佬复活的Taromati2人格

某次我逛逛某个博客站点时发现有个站点将伪春菜当成了看板娘
就去去搜了一下,得到的结果是:http://www.lmyoaoa.com/inn/archives/4504/
又因为这玩意已经很久没更新,所以我将这个的js、css和图片提取出来,然后魔改了一下,方便放在hexo里面
废话不多说,开始吧!

引入js和css

{blogroot}/source/weichuncai/css/style.css

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#smchuncai {opacity:0.85;width:160px;height:160px;position:fixed;top:400px;left:800px;font-size:12px;}
* html #smchuncai {position:absolute;}
#chuncaiface {width:160px;height:160px;background-repeat:no-repeat;position:absolute;top:0px;left:0px;}
/*#chuncaimenu {width:46px;line-height:16px;float:left;font-size:12px;cursor:pointer;background-color:#666;color:#FFF;text-align:center;}*/
#showchuncaimenu {float:left;text-align:left;width:100%;overflow:hidden;display:none;}
/*#showchuncaimenu ul, */#tempsaying ul {margin:1px 0px 0px 0px;padding:0px 0px 0px 5px;float:left;width:100%;line-height:16px;cursor:pointer;overflow:hidden;}
.wcc_mlist {text-align:center;width:47%;float:left;line-height:16px;margin:0;padding:0px 0px 4px 0px;cursor:pointer;overflow:hidden;}
#tempsaying ul {width:96%;}
#callchuncai {position:fixed;width:60px;line-height:16px;cursor:pointer;display:none;font-size:12px;border:1px solid #e87a73;background-color:#FFF;}
* html #callchuncai {position:absolute;}
#dialog_chat {position:absolute;top:0px;left:-205px;width:200px;line-height:23px;text-align:left;}
#dialog_chat_loading {width:200px;height:30px;background:url("../imgs/loading.gif") no-repeat center center;display:none;}
#chat_top {float:left;width:200px;height:5px;overflow:hidden;background:url("../imgs/chat_top.gif") no-repeat;}
#dialog_chat_contents, #chuncaisaying, #getmenu, #tempsaying {float:left;margin:0;padding-left:0px;width:198px;line-height:23px;background-color:#ffffee;}
#getmenu, #tempsaying,#chuncaisaying {padding:0px 0px 0px 2px; width:196px;}
#dialog_chat_contents {width:198px;border-left:1px solid #e87a73;border-right:1px solid #e87a73;}
#chat_bottom {width:200px;height:10px;float:left;background:url("../imgs/chat_bottom.gif") no-repeat;}
#chat_top, #chat_bottom {}
#tempsaying, #hiddenfaces {display:none;}
#getmenu {width:95%;height:16px;margin:0;padding:0;cursor:pointer;background:url("../imgs/menu.jpg") no-repeat top right;}
#addinput {width:240px;height:20px;position:absolute;top:150px;left:-260px;border:1px solid #888;background-color:#FFF;padding-top:2px;overflow:hidden;display:none;}
#inp_l {float:left;width:220px;height:20px;}
#inp_r {float:right;width:20px;height:20px;font-size:12px;text-align:center;cursor:pointer;}
#talk {border:none;float:left;width:180px;height:16px;}
#talkto {float:left;border:none;width:30px;height:16px;background:url("../imgs/ok.jpg");cursor:pointer;}

{blogroot}/source/weichuncai/js/common.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
var smjq = jQuery;
var _typei = 0;
var weichuncai_text = '';
smjq(document).ready(function(){
var getwidth = getCookie("historywidth");
var getheight = getCookie("historyheight");
if(getwidth != null && getheight != null){
var width = getwidth;
var height = getheight;
}else{
var width = document.documentElement.clientWidth- 200 - imagewidth;
var height = document.documentElement.clientHeight- 180 - imageheight;
}

var cwidth = document.documentElement.clientWidth-100;
var cheight = document.documentElement.clientHeight-20;
//var height = document.body.clientHeight-200;
var moveX = 0;
var moveY = 0;
var moveTop = 0;
var moveLeft = 0;
var moveable = false;
var docMouseMoveEvent = document.onmousemove;
var docMouseUpEvent = document.onmouseup;

smjq("body").append('<div id="smchuncai" onfocus="this.blur();" style="color:#626262;z-index:999;"><div id="chuncaiface"></div><div id="dialog_chat"><div id="chat_top"></div><div id="dialog_chat_contents"><div id="dialog_chat_loading"></div><div id="tempsaying"></div><div id="showchuncaimenu"><ul class="wcc_mlist" id="shownotice">显示公告</ul><ul class="wcc_mlist" id="chatTochuncai">聊&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;天</ul><ul class="wcc_mlist" id="foods">吃 零 食</ul><ul class="wcc_mlist" id="aboutmanage">关&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;于</ul><ul class="wcc_mlist" id="lifetimechuncai">生存时间</ul><ul class="wcc_mlist" id="closechuncai">关闭春菜</ul></div><div><ul id="chuncaisaying"></ul></div><div id="getmenu"> </div></div><div id="chat_bottom"></div></div></div>');
smjq("#smchuncai").append('<div id="addinput"><div id="inp_l"><input id="talk" type="text" name="mastersay" value="" /> <input id="talkto" type="button" value=" " /></div><div id="inp_r"> X </div></div>');
smjq("body").append('<div id="callchuncai">召唤春菜</div>');
//判断春菜是否处于隐藏状态
var is_closechuncai = getCookie("is_closechuncai");
if(is_closechuncai == 'close'){
closechuncai_init();
}
//设置初始状态
getdata("getnotice");
setFace(1);

smjq("#smchuncai").css('left', width+'px');
smjq("#smchuncai").css('top', height+'px');
smjq("#smchuncai").css('width', imagewidth+'px');
smjq("#smchuncai").css('height', imageheight+'px');
smjq("#callchuncai").attr("style", "top:"+cheight+"px; left:"+cwidth+"px; text-align:center;");

smcc = document.getElementById("smchuncai");
smcc.onmousedown = function(){
var ent = getEvent();
moveable = true;
moveX = ent.clientX;
moveY = ent.clientY;
var obj = document.getElementById("smchuncai");
moveTop = parseInt(obj.style.top);
moveLeft = parseInt(obj.style.left);
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
window.getSelection().removeAllRanges();
}
document.onmousemove = function(){
if(moveable){
var ent = getEvent();
var x = moveLeft + ent.clientX - moveX;
var y = moveTop + ent.clientY - moveY;
var w = 200;
var h = 200;//w,h为浮层宽高
obj.style.left = x + "px";
obj.style.top = y + "px";
}
};
document.onmouseup = function(){
if(moveable){
var historywidth = obj.style.left;
var historyheight = obj.style.top;
historywidth = historywidth.replace('px', '');
historyheight = historyheight.replace('px', '');
setCookie("historywidth", historywidth, 60*60*24*30*1000);
setCookie("historyheight", historyheight, 60*60*24*30*1000);
document.onmousemove = docMouseMoveEvent;
document.onmouseup = docMouseUpEvent;
moveable = false;
moveX = 0;
moveY = 0;
moveTop = 0;
moveLeft = 0;
}
}
};
smjq("#getmenu").click(function(){
chuncaiMenu();
setFace(1);
});
smjq("#shownotice").click(function(){
getdata("getnotice");
setFace(1);
});
smjq("#closechuncai").click(function(){
setFace(3);
closechuncai();
});
smjq("#callchuncai").click(function(){
setFace(2);
callchuncai();
setCookie("is_closechuncai", '', 60*60*24*30*1000);
});
smjq("#shownotice").click(function(){
setFace(1);
closeChuncaiMenu();
});
smjq("#lifetimechuncai").click(function(){
closeChuncaiMenu();
closeNotice();
setFace(2);
getdata('showlifetime');
});
smjq("#chatTochuncai").click(function(){
showInput();
});
smjq("#inp_r").click(function(){
closeInput();
chuncaiSay('不聊天了吗?(→_→)');
setFace(3);
});
smjq("#talkto").click(function(){
getdata("talking");
});
smjq("#aboutmanage").click(function(){
closeChuncaiMenu();
closeNotice();
smjq("#getmenu").css("display", "none");
chuncaiSay("你想了解我主人?跟我来吧~~~");
setFace(2);
setTimeout(function(){
window.location.href = _about_path ;
}, 2000);
});
smjq("#foods").click(function(){
closeChuncaiMenu();
closeNotice();
getdata("foods");
});
/*smjq("#showchuncaimenu").hover(function(){
},function(){
smjq("#showchuncaimenu").slideUp('slow').show();
});*/
document.onmousemove = function(){
stoptime();
tol = 0;
setTime();
//chuncaiSay("啊,野生的主人出现了! ~~~O口O");
}
talkSelf(talktime);
document.getElementById("smchuncai").onmouseover = function(){
if(talkobj){
clearTimeout(talkobj);
}
talktime = 0;
talkSelf(talktime);
}
});

function getEvent() {
return window.event || arguments.callee.caller.arguments[0];
}

var eattimes = 0;
function eatfood(obj){
var gettimes = getCookie("eattimes");
if(parseInt(gettimes) > parseInt(9)){
chuncaiSay("主人是个大混蛋!!");
setFace(3);
closechuncai_evil();
}else if(parseInt(gettimes) > parseInt(7)){
chuncaiSay(".....................肚子要炸了,死也不要再吃了~~!!!TAT");
setFace(3);
}else if(parseInt(gettimes) == parseInt(5)){
chuncaiSay("我已经吃饱了,不要再吃啦......");
setFace(3);
}else if(parseInt(gettimes) == parseInt(3)){
chuncaiSay("多谢款待,我吃饱啦~~~ ╰( ̄▽ ̄)╭");
setFace(2);
}else{
var id = obj.replace("f",'');
getdata('eatsay', id);
}
eattimes++;
setCookie("eattimes", eattimes, 60*10*1000);
}
function chuncaiMenu(){
//smjq("#showchuncaimenu").slideDown('fast').show();
clearChuncaiSay();
closeInput();
chuncaiSay("准备做什么呢?");
smjq("#showchuncaimenu").css("display", "block");
smjq("#getmenu").css("display", "none");
smjq("#chuncaisaying").css("display", "none");
}
function closeChuncaiMenu(){
clearChuncaiSay();
smjq("#showchuncaimenu").css("display", "none");
//smjq("#chuncaisaying").css("display", "block");
showNotice();
smjq("#getmenu").css("display", "block");
}
function showNotice(){
smjq("#chuncaisaying").css("display", "block");
}
function closechuncai(){
stopTalkSelf();
chuncaiSay("记得再叫我出来哦...");
smjq("#showchuncaimenu").css("display", "none");
setTimeout(function(){
smjq("#smchuncai").fadeOut(1200);
smjq("#callchuncai").css("display", "block");}, 2000);
//保存关闭状态的春菜
setCookie("is_closechuncai", 'close', 60*60*24*30*1000);
}
function closechuncai_evil(){
stopTalkSelf();
smjq("#showchuncaimenu").css("display", "none");
setTimeout(function(){
smjq("#smchuncai").fadeOut(1200);
smjq("#callchuncai").css("display", "block");}, 2000);
}
function closechuncai_init(){
stopTalkSelf();
smjq("#showchuncaimenu").css("display", "none");
setTimeout(function(){
smjq("#smchuncai").css("display", "none");
smjq("#callchuncai").css("display", "block");}, 30);
}
function callchuncai(){
talkSelf(talktime);
smjq("#smchuncai").fadeIn('normal');
smjq("#callchuncai").css("display", "none");
closeChuncaiMenu();
closeNotice();
chuncaiSay("我回来啦~");
setCookie("is_closechuncai", '', 60*60*24*30*1000);
}

function chuncaiSay(s){
clearChuncaiSay();
smjq("#tempsaying").append(s);
smjq("#tempsaying").css("display", "block");
weichuncai_text = s;
typeWords();
}
function clearChuncaiSay(){
document.getElementById("tempsaying").innerHTML = '';
}
function closeNotice(){
smjq("#chuncaisaying").css("display", "none");
}
function showInput(){
closeChuncaiMenu();
closeNotice();
chuncaiSay("............?");
//setFace(1);
smjq("#addinput").css("display", "block");
}
function closeInput(){
setFace(3);
smjq("#addinput").css("display", "none");
}
function clearInput(){
document.getElementById("talk").value = '';
}
function createFace(a, b, c){
smjq("head").append('<div id="hiddenfaces"><img id="hf1" src="'+a+'" /><img id="hf2" src="'+b+'" /><img id="hf3" src="'+c+'" /></div>');
setFace(1);
}
function setFace(num){
obj = document.getElementById("hf"+num).src;
smjq("#chuncaiface").attr("style", "background:url("+obj+") no-repeat scroll 50% 0% transparent; width:"+imagewidth+"px;height:"+imageheight+"px;");
}
function getdata(el, id){
smjq.ajax({
type:'GET',
url:_weichuncai_jsonpath,
cache:'false',
dataType: 'html',
contentType: 'application/json; charset=utf8',
beforeSend: function(){
//smjq("#dialog_chat").fadeOut("normal");
smjq("#tempsaying").css('display', "none");
smjq("#dialog_chat_loading").fadeIn("normal");
},
success: function(data){
smjq("#dialog_chat_loading").css('display', "none");
//smjq("#dialog_chat").fadeIn("normal");
smjq("#tempsaying").css('display', "");
var dat = eval("("+data+")");
if(el == 'getnotice'){
chuncaiSay(dat.notice);
setFace(1);
}else if(el == 'showlifetime'){
BirthDay=new Date(dat.showlifetime);//建站日期
today=new Date();
timeold=(today.getTime()-BirthDay.getTime());
sectimeold=timeold/1000
secondsold=Math.floor(sectimeold);
msPerDay=24*60*60*1000
e_daysold=timeold/msPerDay
daysold=Math.floor(e_daysold);
e_hrsold=(daysold-e_daysold)*-24;
hrsold=Math.floor(e_hrsold);
e_minsold=(hrsold-e_hrsold)*-60;
minsold=Math.floor((hrsold-e_hrsold)*-60);
seconds=Math.floor((minsold-e_minsold)*-60);
chuncaiSay("我已经与主人 一起生存了 "+daysold+" 天 "+hrsold+" 小时 "+minsold+" 分钟 "+seconds+" 秒的快乐时光啦~*^_^*");
}else if(el == 'talking'){
var talkcon = smjq("#talk").val();
var i = in_array(talkcon, dat.ques);
var types = typeof(i);
if(types != 'boolean'){
chuncaiSay(dat.ans[i]);
setFace(2);
}else{
chuncaiSay('.......................嗯?');
setFace(3);
}
clearInput();
}else if(el == 'foods'){
var str='';
var arr = dat.foods;
var preg = /function/;
for(var i in arr){
if(arr[i] != '' && !preg.test(arr[i]) ){
str +='<ul id="f'+i+'" class="eatfood" onclick="eatfood(this.id)">'+arr[i]+'</ul>';
}
}
chuncaiSay(str);
}else if(el = "eatsay"){
var str = dat.eatsay[id];
chuncaiSay(str);
setFace(2);
}else if(el = "talkself"){
var arr = dat.talkself;
return arr;
}
},
error: function(){
chuncaiSay('好像出错了,是什么错误呢...请联系管理猿');
}
});
}

function in_array(str, arr){
for(var i in arr){
if(arr[i] == str){
return i;
}
}
return false;
}

var timenum;
var tol=0;
//10分钟后页面没有响应就停止活动
var goal = 10*60;
function setTime(){
tol++;
//document.body.innerHTML(tol);
timenum = window.setTimeout("setTime('"+tol+"')", 1000);
if(parseInt(tol) == parseInt(goal)){
stopTalkSelf();
closeChuncaiMenu();
closeNotice();
closeInput();
chuncaiSay("主人跑到哪里去了呢....");
setFace(3);
stoptime();
}
}
function stoptime(){
if(timenum){
clearTimeout(timenum);
}
}
var talktime = 0;
//设置自言自语频率(单位:秒)
var talkself = 60;
var talkobj;
var tsi = 0;
var talkself_arr = [
["白日依山尽,黄河入海流,欲穷千里目,更上.....一层楼?", "1"],
["我看见主人熊猫眼又加重了!", "3"],
["我是不是很厉害呀~~?", "2"],
["5555...昨天有个小孩子跟我抢棒棒糖吃.....", "3"],
["昨天我好像看见主人又在众人之前卖萌了哦~", "2"]
];

function talkSelf(talktime){
talktime++;
var yushu = talktime%talkself;
if(parseInt(yushu) == parseInt(9)){
closeChuncaiMenu();
closeNotice();
closeInput();
tsi = Math.floor(Math.random() * talkself_arr.length + 1)-1;
chuncaiSay(talkself_arr[tsi][0]);
setFace(talkself_arr[tsi][1]);
}
talkobj = window.setTimeout("talkSelf("+talktime+")", 1000);
}
function stopTalkSelf(){
if(talkobj){
clearTimeout(talkobj);
}
}
function arrayShuffle(arr){
var result = [],
len = arr.length;
while(len--){
result[result.length] = arr.splice(Math.floor(Math.random()*(len+1)),1);
}
return result;
}


function typeWords() {
var p = 1;
var str = weichuncai_text.substr(0,_typei);
var w = weichuncai_text.substr(_typei,1);
if(w=="<"){
str += weichuncai_text.substr(_typei,weichuncai_text.substr(_typei).indexOf(">")+1);
p= weichuncai_text.substr(_typei).indexOf(">")+1;
}
_typei+=p;
document.getElementById("tempsaying").innerHTML = str;
txtst = setTimeout("typeWords()",20);
if (_typei> weichuncai_text.length){
clearTimeout(txtst);
_typei = 0;
}
}

function setCookie(name, val, ex){
var times = new Date();
times.setTime(times.getTime() + ex);
if(ex == 0){
document.cookie = name+"="+val+";";
}else{
document.cookie = name+"="+val+"; expires="+times.toGMTString();
}
}

function getCookie(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}

{blogroot}/source/weichuncai/js/chuncai.json(这个地方可以自行配置)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
"notice": "欢迎来到我的新家,没想到在2024我会被人注意到,真幸福~~",
"ques": [
"早上好",
"中午好",
"下午好",
"晚上好",
"晚安"
],
"ans": [
"早上好~",
"中午好~",
"下午好~",
"晚上好~",
"晚安~"
],
"foods": [
"金坷垃",
"咸梅干"
],
"eatsay": [
"吃了金坷垃,一刀能秒一万八~!",
"吃咸梅干,变超人!哦耶~~~"
],
"showlifetime":"02-16-2024 15:30:00"
}

{blogroot}/source/weichuncai/js/chuncai.json(这个地方可以自行配置)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var _about_path = "https://blog.sinzmise.top/about"; //你的关于页面地址
var _weichuncai_jsonpath = "/weichuncai/chuncai.json"; //chuncai.json的位置
var imagewidth = '85'; //人格长度
var imageheight = '152'; //人格高度
//设置人格的自言自语,前面的双引号是内容后面的双引号是人格表情,后面的1、2、3对应createFace设置的第几个表情
var talkself_arr = [
["白日依山尽,黄河入海流,欲穷千里目,更上.....一层楼?", "1"],
["我看见主人熊猫眼又加重了!", "3"],
["我是不是很厉害呀~~?", "2"],
["5555...昨天有个小孩子跟我抢棒棒糖吃.....", "3"]
];
//设置表情
createFace(
"https://dqapi.sininno.eu.org/weichuncai/skin/rakutori/face1.gif",
"https://dqapi.sininno.eu.org/weichuncai/skin/rakutori/face2.gif",
"https://dqapi.sininno.eu.org/weichuncai/skin/rakutori/face3.gif"
);

butterfly、anzhiyu主题引入:

1
2
3
4
5
6
7
8
9
10
11
12
# Inject
# Insert the code to head (before '</head>' tag) and the bottom (before '</body>' tag)
# 插入代码到头部 </head> 之前 和 底部 </body> 之前
inject:
head:
# jQuery(必须在之前引入)
- <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
bottom:
# 主体
- <link rel="stylesheet" type="text/css" href="/weichuncai/css/style.css">
- <script src="/weichuncai/js/common.js"></script>
- <script src="/weichuncai/wcc-config.js"></script>

后记

我为什么会将伪春菜定义为桌面精灵而不是桌宠?
是因为相比于桌宠来说,伪春菜比桌宠的功能还多得多
因此我即使开着虚拟桌宠模拟器,我有时也会开着伪春菜
ssp_OgKZgUjISo
(甚至我电脑卡的时候也会提醒我,虽然我电脑没有卡死QWQ)

还有,我之前看关于Kikka这篇文章,有一句话很吸引我:
msedge_h7th45Tk9U
也据此可以看出,在2020年,伪春菜这个圈子越来越难活下去
更何况现在是2024。。。。。。

但不管怎么说,还是有人在用这个桌面精灵的,至少有我一个。。。。。。
后面我打算写个有关伪春菜的配置教程吧。。。。。。

  • ✇汐塔魔法屋
  • 2024.01小记王九弦SZ·Ninty
    2024年1月31日,距离春节还剩10天也是1月的最后一天时间过得真快呢,转眼间就快要过年了就以这篇文章,作为1月的收尾吧个人主页翻修我承认我之前将个人主页更换成i.sinzmise.top,然后把www.sinzmise.top搞成九弦之都官网是个很愚蠢的事情因为踏入高一后,学习任务愈加繁重,导致了每次更新博客就得放弃那边,更新那边又得放弃博客,我一个人做不了这么多的事情思来想去,我最终将www.sinzmise.top改成自己的个人主页,然后将之前的i.sinzmise.top记录删掉新版的个人主页是从我之前在网上找到的“Bs缘空个人主页”魔改而来的,修改了如下内容:删掉“我的"寄"能”将原本的“关于我”内容最下方的“Certificates”改成51la统计将原本的“Portfolio”改成“个人项目”,里面的东西改成自己搞的项目将原本的“Blog”改成“站长记事”,里面的内容我换成了木木大佬的哔哔点啥2.0将原本的“Contact”标题改成“给我留言”,里面的内容则被我换成了Disqus评论系统和Twikoo评论系统(其中Disqus的评论基础模式用的是fooleap大佬的di
     

2024.01小记

2024年2月1日 01:06

2024年1月31日,距离春节还剩10天
也是1月的最后一天
时间过得真快呢,转眼间就快要过年了
就以这篇文章,作为1月的收尾吧

个人主页翻修

我承认我之前将个人主页更换成i.sinzmise.top,然后把www.sinzmise.top搞成九弦之都官网是个很愚蠢的事情
因为踏入高一后,学习任务愈加繁重,导致了每次更新博客就得放弃那边,更新那边又得放弃博客,我一个人做不了这么多的事情
思来想去,我最终将www.sinzmise.top改成自己的个人主页,然后将之前的i.sinzmise.top记录删掉

新版的个人主页是从我之前在网上找到的“Bs缘空个人主页”魔改而来的,修改了如下内容:

  • 删掉“我的"寄"能”
  • 将原本的“关于我”内容最下方的“Certificates”改成51la统计
  • 将原本的“Portfolio”改成“个人项目”,里面的东西改成自己搞的项目
  • 将原本的“Blog”改成“站长记事”,里面的内容我换成了木木大佬的哔哔点啥2.0
  • 将原本的“Contact”标题改成“给我留言”,里面的内容则被我换成了Disqus评论系统和Twikoo评论系统(其中Disqus的评论基础模式用的是fooleap大佬的disqus-php-api
  • 添加Aplayer音乐播放器

展示图:
www

预览:中弦局·九弦之都

入坑pjsk

这个没啥好说的,毕竟我有入坑过邦(BanG Dream!少女乐团派对)、Phigros或者Arcaea等音游

(虽然我没咋玩音游。。。。。。)

至于为啥我玩完pjsk自制谱Sonolus之后要玩官方版本pjsk。。。。。。
主要是我朋友也在玩pjsk官方版(虽然他经常玩Arcaea),思来想去还是觉得下个官方版本pjsk

自建API

其实这API原本是想给我的个人主页使用的。。。。。。但搭建完个人主页才知道我是个大聪明,直接使用哪个壁纸不行吗。。。。。。
算了,搭都搭建了,就别浪费,直接展示吧:https://api.sininno.eu.org/
(顺便归纳到我之前打算新建的计划里面,这样也算杜绝浪费了。。。。。。吧?)

  • ✇汐塔魔法屋
  • 为博客添加一个游戏收藏页(npm插件版)王九弦SZ·Ninty
    前言之前看到Kouseki大佬的这篇文章:为博客添加一个游戏收藏页我原本是想要给我博客搞这个的,但由于我一般会给博客的主题更新,导致魔改的内容消失思来想去,我还是决定做npm版本的游戏收藏页效果效果预览 安装安装插件,在博客根目录[Blogroot]下打开终端,运行以下指令: 1npm install hexo-butterfly-games --save添加配置信息,以下为写法示例在站点配置文件_config.yml或者主题配置文件_config.butterfly.yml中添加 123456789101112131415161718192021222324252627282930313233343536# Game Page# see https://akilar.top/posts/e2d3c450/games: enable: true name: 游戏世界 description: 我的游戏世界 tip: 跟 小屋屋主 一起探索世界 top_background: https://th.bing.com/th/id/R.13a97ef4830efa5
     

为博客添加一个游戏收藏页(npm插件版)

2024年1月19日 05:39

前言

之前看到Kouseki大佬的这篇文章:

我原本是想要给我博客搞这个的,但由于我一般会给博客的主题更新,导致魔改的内容消失
思来想去,我还是决定做npm版本的游戏收藏页

效果

安装

  1. 安装插件,在博客根目录[Blogroot]下打开终端,运行以下指令:
1
npm install hexo-butterfly-games --save
  1. 添加配置信息,以下为写法示例
    在站点配置文件_config.yml或者主题配置文件_config.butterfly.yml中添加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Game Page
# see https://akilar.top/posts/e2d3c450/
games:
enable: true
name: 游戏世界
description: 我的游戏世界
tip: 小屋屋主 一起探索世界
top_background: https://th.bing.com/th/id/R.13a97ef4830efa5e0b87134d622719f3?rik=G7RaJFpxg5PtkA&riu=http%3a%2f%2fupload.techweb.com.cn%2fs%2f640%2f2019%2f0530%2f1559208230699.jpg&ehk=j1G8rMX98TRX52EkLgI5jW1p7lIQp4I8Si1nqEggFRs%3d&risl=&pid=ImgRaw&r=0&sres=1&sresct=1
buttonText: Steam
buttonLink: https://steamcommunity.com/
css: https://jsd.cdn.storisinz.site/npm/hexo-butterfly-games/lib/games.css
good_games:
- title: 风景一绝
description: 不会错过的风景
games_list:
- name: 怪物猎人:世界
specification: CAPCOM Co., Ltd.
description: "在新建构的「Monster Hunter: World」中, 可以体验到你一直期盼的极致猎人生活。"
image: https://cdn.max-c.com/heybox/dailynews/img/94376ca41326836587a137d5999733e5.jpg
link: https://www.xiaoheihe.cn/games/detail/582010

- title: 我的最爱
description: 我不能没有它了
games_list:
- name: GTA:5
specification: Rockstar Games
description: 谁还在买GTA5
image: https://imgheybox.max-c.com/heybox/game/header/271590_dXCCk.jpg
link: https://www.xiaoheihe.cn/games/detail/271590
path: games
front_matter: #【可选】games页面的 front_matter 配置
title: 游戏人生
comments: true
top_img: false
type: games
aside: false
  1. 参数释义
参数备选值/类型释义
enabletrue/false控制开关
nametext顶部标题
descriptiontext顶部副标题
tiptext顶部小标题
top_backgroundURL顶部背景链接
buttonTexttext按钮文字
buttonLinkURL按钮对应链接
good_games.titletext分类标题
good_games.descriptiontext分类副标题
good_games.games_list.nametext游戏名字
good_games.games_list.specificationtext游戏产商
good_games.games_list.descriptiontext游戏简介
good_games.games_list.imageURL游戏图片链接
good_games.games_list.linkURL游戏对应链接
cssURL【可选】开发者接口,自定义css链接
pathcomments【可选】games 的路径名称。默认为 games,生成的页面为 games/index.html
front_matterobject【可选】games 页面的 front_matter 配置,写法见上文示例
  • ✇汐塔魔法屋
  • 对于虚拟桌宠模拟器,我的评价(及使用教程)王九弦SZ·Ninty
    前言最近你们有没有发现我的博客最新文章的图片有个这个可爱的女孩其实这不是站点自带的,而是Steam的一个游戏(严格来讲这不算游戏),叫“虚拟桌宠模拟器”在Steam上免费,而且还是在这些免费产品中为数不多支持创意工坊的桌宠桌宠功能等待文件加载完成后这个桌宠就出现了配置皮肤默认配置的桌宠角色(也就是上面图片上出现的),叫萝莉斯当然你可以通过创意工坊安装皮肤模组,重启模拟器之后进入桌宠设置然后点击“MOD管理”,选择之前安装的模组(以智乃示例),启用模组并重启软件重启后重新进入设置,在宠物动画里面选择你要的皮肤这个你要多开也不是不可以。。。。。。然后皮肤就更换完成(当然除非你选择了多开)数据计算这个默认开启数据计算,当然如果你不想一直投喂桌宠的话这样的话桌宠就不会被影响到心情了,很方便呢个人评价自从Q宠企鹅下架以来,我的电脑总是缺少了某些会动的东西虽然后面下载了动态壁纸,但总感觉哪里空空的之前我也是过毒霸姬等等各种各样的桌宠,但总感觉也缺了点东西(甚至我之前加入了Q宠复活版内测交流群,虽然现在没什么更新了,所以不要来问我安装包也别问我群号了)直到虚拟桌宠模拟器,弥补了那个我当初给Q宠专门留
     

对于虚拟桌宠模拟器,我的评价(及使用教程)

2024年1月13日 02:16

前言

最近你们有没有发现我的博客最新文章的图片有个这个可爱的女孩
VPet-Simulator
其实这不是站点自带的,而是Steam的一个游戏(严格来讲这不算游戏),叫“虚拟桌宠模拟器”
在Steam上免费,而且还是在这些免费产品中为数不多支持创意工坊的桌宠

桌宠功能

等待文件加载完成后这个桌宠就出现了

配置皮肤

默认配置的桌宠角色(也就是上面图片上出现的),叫萝莉斯
当然你可以通过创意工坊安装皮肤模组,重启模拟器之后进入桌宠设置
8drbjTK54F
然后点击“MOD管理”,选择之前安装的模组(以智乃示例),启用模组并重启软件
VPet-Simulator
重启后重新进入设置,在宠物动画里面选择你要的皮肤
webstorm64_xJuB0l3o6Y
这个你要多开也不是不可以。。。。。。
VPet-Simulator
然后皮肤就更换完成(当然除非你选择了多开)
VPet-Simulator

数据计算

这个默认开启数据计算,当然如果你不想一直投喂桌宠的话
VPet-Simulator

这样的话桌宠就不会被影响到心情了,很方便呢

个人评价

自从Q宠企鹅下架以来,我的电脑总是缺少了某些会动的东西
虽然后面下载了动态壁纸,但总感觉哪里空空的
之前我也是过毒霸姬等等各种各样的桌宠,但总感觉也缺了点东西
(甚至我之前加入了Q宠复活版内测交流群,虽然现在没什么更新了,所以不要来问我安装包也别问我群号了)

直到虚拟桌宠模拟器,弥补了那个我当初给Q宠专门留空位的地方
(写的不好请见谅)

❌
❌