【笔记】NexT8.8引入捉住小猫小游戏作为404页面

前言

NexT8.8引入捉住小猫小游戏作为404页面

项目下载

传送门

引入到博客

  • 在source目录下创建一个404.html的文件

事实证明,部署在Github的博客,在找不到页面的时候,只会跳转到404.html文件(/404.html),并不会跳转到NexT提供的公益404页面(/404/404.md

  • 第24、25行中引入的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
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Catch The Cat</title>
<style>
* {
padding: 0;
margin: 0
}

body {
background-color: #eeeeee;
}

#catch-the-cat {
width: 100%;
margin-top: 32px;
text-align: center;
}
</style>
</head>
<body>
<script src="phaser.min.js"></script>
<script src="catch-the-cat.js"></script>
<div id="catch-the-cat"></div>
<script>
window.game = new CatchTheCatGame({
w: 11,
h: 11,
r: 20,
backgroundColor: 0xffffff,
parent: 'catch-the-cat',
statusBarAlign: 'center',
credit: 'github.com/ganlvtech'
});
</script>
<a href="https://github.com/ganlvtech/phaser-catch-the-cat" class="github-corner" aria-label="View source on GitHub">
<svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#eee; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg>
</a>
<style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
</body>
</html>

改进

  • 直接跳转的html文件其实是原项目的demo,所以很丑
  • 除了想好看一点,同时契合自己的NexT主题,于是想了办法引入在了博客内,作为post页面

创建一个公益404页面

1
hexo new page 404
  • 然后把phaser.min.jscatch-the-cat.js放到source/404/目录下

编辑公益404页面

  • 在正文中引入,同时去除CSS样式
hexo/source/404/index.md
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
<html lang="en">
<head>
<meta charset="UTF-8">
<title>404</title>
<style>
* {
padding: 0;
margin: 0
}
#catch-the-cat {
width: 100%;
margin-top: 32px;
text-align: center;
}
</style>
</head>
<body>
<script src="phaser.min.js"></script>
<script src="catch-the-cat.js"></script>
<div id="catch-the-cat"></div>
<script>
window.game = new CatchTheCatGame({
w: 11,
h: 11,
r: 20,
backgroundColor: 0xffffff,
parent: 'catch-the-cat',
statusBarAlign: 'center',
credit: 'FeiJu'
});
</script>
</body>
</html>

实现跳转

  • 但是这样引入的页面只能通过访问站点的/404/目录才可以实现
  • 为了让任何找不到页面的地址跳转到/404/目录,可以根据Github的原理,改进source/404.html,实现重定向

1:倒计时秒数
/404/:重定向地址

hexo/source/404.html
1
2
3
4
5
6
<html>
<head>
<meta http-equiv="refresh" content="1; /404/">
</head>
<body></body>
</html>

公益404

  • 当然,为什么叫公益404呢,其实NexT主题旨在希望用户创建source/404/目录时,在里面添加公益404的内容

  • 事实上,公益404的正规玩法应该是,在主题配置文件解除菜单栏中公益404页面的注释

具体公益404的配置可以参阅NexT官方博客

hexo/_config.next.yml
1
2
menu:
commonweal: /404/ || fa fa-heartbeat
  • 这样,就可以通过菜单栏手动跳转公益404页面了

完成

参考链接