NexT 8.20 升级日志
博客的升级日志,这次的调整比较少,只有简简单单的刷新了一下版本号,然后提升了一丢丢的阅读体验。
升级内容
- 升级Hexo版本:6.3.0 → 7.3.0
- 升级NexT版本:8.18.2 → 8.20.0
- 更换网站图标
- 更换字体
- 根据浏览器主题自动切换背景图片
- 调整归档、目录、标签页的分页设置
- 重定向部分URL
- 移除移动端点击特效
- 加入图片轮播功能
- 更换鼠标样式
- 调整有序/无序列表以及代码块的与上下元素的间距
NPM包升级
这次升级发现了一个挺好用的包npm-check-updates,它可以检测有哪些包可以升级。
安装命令:
1 | npm i -g npm-check-updates |
检测可升级的包:
1 | ncu -u |
我的输出如下:
1 | hexo ^6.3.0 → ^7.3.0 |
直接升级所有组件:
1 | sudo npm install |
更新配置文件
已经好几年没有更新过NexT的配置文件了,虽然不怎么影响使用,但是强迫症有些难受。
- 将
./_config.next.yml
重命名为./_old_next_config.yml
。 - 将
./node_modules/hexo-theme-next/_config.yml
复制到博客根目录,然后重命名为_config.next.yml
。 - 在vscode中打开两个文件,按住shift选择两个文件,右键单击文件标签,选择
将已选项进行比较
,然后复制粘贴。
更换网站图标
单纯的审美疲劳了,想换一个图片.
- 去PS里瞎画一个,然后导出一个分辨率高一点的图片。
- 将它上传到 Favicon Generator就可以生成所有需要的图标。
- 将生成的图片放到
./source/images/
路径下,替换原有图片。 - 注意将
./_config.next.yml
中的android_manifest
改成/images/site.webmanifest
,因为网站自动生成的文件名不同。
更换网站字体
将网站的全局字体换成了无衬线的思源黑体,博客正文部分还是更加适合阅读的思源宋体。在./_config.next.yml
中做如下修改:
1 | # Font options: |
背景图片调整
更换原因同上,审美疲劳了。调整如下:
- 原有的背景图片太亮了,在深色模式下不太协调,特别是深夜看时有些刺眼,索性就为浅色/深色两种模式设置了不同的背景图片。
- 取消了背景图片的半透明显示,让文字更加易读。
- 取消了移动端的渐变背景。
在D:\Project\Blog\cn_Siriusq\source\_data\styles.styl
中添加以下样式:
1 | // 背景图片 |
页面分页调整
开启动画时,NexT主题会通过类似瀑布的动画来渐显页面中的元素,也包括归档等页中的博文标题,这样就会导致一个问题:如果一页中显示的标题太多,靠后的标题就需要等待动画播放完成后才能显示,我原来设置的一页显示50个标题,等待动画播放完成需要花费数秒,不太方便,这次就统一设置成一页只显示20个标题。
在Hexo的配置文件_config.yml
中调整以下设置:
1 | # Archive Pagination |
URL重定向
目前博客的URL是根据markdown文件的文件名生成的,有几个文件的名字我很久之前就想改了,但是直接改的话会造成原有的URL变成死链,于是安装了hexo-generator-alias插件来解决这个问题。
安装命令:
1 | npm install hexo-generator-alias --save |
使用方法:
- 重命名相关的markdown文件。
- 打开文件,在
front-matter
部分添加alias: [markdown文件旧名字的相对路径].html
示例:
我的老文件名为Win10重装指北.md
,先将它重命名为Windows重装指北.md
,然后打开文件并修改:
1 | --- |
移除移动端点击特效
目前的点击特效在移动端上比较卡顿,就先移除它,等过几年移动端设备性能涨一涨再加回来。在原有的./source/js/firework.js
中找到CursorSpecialEffects
类,向其中的init
方法添加一个条件语句if (window.innerWidth > 768){}
然后将原有内容移入其中即可。
完整文件
./source/js/firework.js
:
1 | class Circle { |
然后在./source/_data/body-end.njk
中引入它:
1 | {# 鼠标点击特效 #} |
更换鼠标样式
原来用的鼠标主题文件有问题,在火狐上不能被正确识别,只能显示黑白图标,所以决定更换一下鼠标主题,顺便修补一下样式文件,让鼠标主题覆盖更多元素。
这次选用的鼠标主题是和背景图片搭配的芙莉莲主题,来源:Frieren Cursor (2 packs) by NOiiRE ❖。原文件是ANI格式的动态光标,但是很遗憾,目前的主流浏览器都不支持它,所以只能将它们都转换为PNG格式。我也尝试了下APNG格式,虽然它们可以被浏览器读取,但是并不会动。
然后就是和原来一样的操作:
- 在
./node_modules/hexo-theme-next/source/css/
中新建文件夹cursor
。 - 将收集到的鼠标样式文件移动到新建的文件夹中。
- 打开
_config.next.yml
。 - 定位到到
custom_file_path:
。 - 取消
style: source/_data/styles.styl
的注释。 - 打开
./source/_data/styles.styl
,粘贴并根据自己的需要修改下面的代码。
1 | // 鼠标样式 |
列表/代码块行前间距调整
NeXT主题默认的列表和代码块的 margin-top 是 20px,显得很不协调,所以我进行了一些微调,在D:\Project\Blog\cn_Siriusq\source\_data\styles.styl
中添加以下样式:
1 | // 代码块减小行前间距 |
加入图片轮播功能
基于 Splide 自己写了个插件hexo-splide-carousel
,详见