Hexo 3.9.0 + NexT 7.2.0 => Hexo 5.1.0 + NexT 8.0.0
🌈惨案
一个 Warning 引发的惨案!
升级方式
全新安装, 因为我不会升级啊~~😂
安装 Git
进入 Git 官方网站 下载安装.
可以使用 git --version 进行验证, 出现版本号就说明成功了.
安装 Nodejs
进入 Nodejs 官方网站 下载安装.
尽量选择安装长期支持版本 (LTS), 最新发布版可能会有警告, 甚至有错误发生!
可以使用 node -v 和 npm -v 进行验证, 出现版本号就说明成功了.
安装 Hexo
安装 Hexo 之前, 设置 Hexo 的安装位置. 具体见我的另一篇博客: Hexo + Github Pages 搭建个人博客 这里不再赘述!
安装 Hexo: npm install hexo-cli -g
创建本地博客
- 新建文件夹, 放置本地博客, 名称随意. - F:\WorkSpace\Hexo
- 初始化本地博客, 在 Git Bash Here 中输入: - hexo init
[注] 此步骤需要耗费较长一段时间, 我大概用了 25 分钟! 慢慢等吧!
hexo init是这次升级遇到的第一个大坑, 忘记了这个要执行好长一段时间, 好几次自己等不耐烦了, 直接Ctrl + C了! 😂
-    安装默认依赖包, 在 Git Bash Here 中输入: npm install
[注] 在上一步中大部分的依赖其实已经安装了, 这里只是安装一小部分, 所以很快!
- 生成静态文件, 在 Git Bash Here 中输入: - hexo generate
- 开启服务, 在 Git Bash Here 中输入 - hexo server
部署 Hexo
- 安装 Hexo deploy 插件, 在 Git Bash Here 中输入: - npm install hexo-deployer-git --no-optional
- 在站点配置文件中配置: 
| 1 | deploy: | 
[注] repo 仓库的地址: 有 SSH 和 HTTPS 两种格式, 推荐选择 SSH 格式, 如果选择 Https 格式, 每次发布时都必须输入账号密码, 不嫌麻烦的可以用!
安装 NexT 主题
这里是第二个大坑, 最新版的 NexT 的仓库已经换地址了, 我还傻乎乎地用之前的地址, 唉...😔
- 2014-2017 => https://github.com/iissnan/hexo-theme-next 
- 2018-2019 => https://github.com/theme-next/hexo-theme-next 
- 2020-2020 => https://github.com/next-theme/hexo-theme-next 
新版的 NexT 推荐使用
npm install hexo-theme-next --no-optional进行安装, 作为一个 node_module 存在! 安装之后路径为: node_module/hexo-theme-next.
新版的 NexT 推荐用户不要修改主题目录下的配置文件, 而是在站点根目录下新建一个 _config[.主题名称].yml 文件, 作为新的主题配置文件.

可以先从 node_module/hexo-theme-next 文件夹中复制一份配置文件出来, 然后按照规则重命名, 最后修改其中的设置即可!
自定义站点配置文件
主题
修改 theme 的值为 next, 这里的名字要和之前新建主题配置文件时使用的名称一致!
博客网址样式
| 1 | permalink: :title.html | 
关闭 "半角字符自动转换全角字符"
| 1 | marked: | 
生成站点地图 (谷歌版)
- 安装依赖 - hexo-generator-sitemap, 命令:- npm install hexo-generator-sitemap --no-optional, 之后生成网站时, 便会自动在根目录生成一个- sitemap.xml文件!
- 在 source 文件夹下新建文本文件: - robots.txt, 并写入以下内容:
| 1 | User-agent: * | 
- User-agent: 定义以下配置对哪些搜索引擎生效.
 
- Allow: 允许抓取的内容.
 
- Disallow: 不允许抓取的内容.
 
- Sitemap: 站点地图的存放地址.
 
重新发布之后, 便可以将站点地图提交给 Google Search 了!
自定义主题配置文件
配置文件中只需要改改设置就可以出现效果的就不提了, 说一下注意事项:
开启自定义配置
取消自定义配置文件的注释, 并且要在对应的路径下创建对应的文件.
开启标签, 分类, 关于菜单
取消相应的设置选项后, 必须在 source 文件夹下创建相应的路径, 并创建相应的 markdown 文件, 文件中的内容虽然很简单, 但是也必须添加! comments : false 可以使当前页面禁用评论系统.
分类
| 1 | 
 | 
标签
| 1 | 
 | 
设置 Favicon 图标
在 favicon 属性后设置路径之后, 必须在相应的路径下创建图片, 否则找不到文件会报错! 设置侧边栏头像时同理.
添加预计阅读时间功能
需要安装依赖: hexo-word-counter
npm install hexo-word-counter --no-optional
[注] 所有需要安装依赖才能出现效果的, 安装完依赖并设置好之后, 必须清理缓存重新生成才会生效!
[注] 某些特效需要关闭新版 NexT 中的 Pjax
关闭最受欢迎文章功能
NexT 中有这么一个设置: related_posts, 可以当作 "最近受欢迎的文章", "相关博客" 或者 "推荐阅读" 使用, 但是由于其依赖有点过时, 推荐关闭此功能!
代码高亮风格设置
如果使用 Prism 进行代码高亮渲染, 并且选择较高级的一些效果, 需要安装依赖.
npm install prism-themes --no-optional
并且要在 站点配置文件 中将 highlight 设为 false, prismjs 设为 true.
| 1 | highlight: | 
最后在 主题配置文件 的 prism 后设置使用的渲染风格.
本地搜索
需要安装依赖: hexo-generator-searchdb
npm install hexo-generator-searchdb --no-optional
音乐播放器 APlayer
APlayer 源码地址: APlayer
新建目录: source/js/aplayer, 下载并解压源码, 将 dist 文件夹中的四个文件复制到 source/js/aplayer 中.
返回 source/js 文件夹, 新建一个 fixedAplayer.js 文件, 输入以下代码:
| 1 | const ap = new APlayer({ | 
之后在 source/_data/body-end.njk 中添加:
| 1 | <!--APlayer 吸底式音乐播放功能--> | 
最后在 主题配置文件 中写入 aplayer_fixed: true.
视频播放器 DPlayer
DPlayer 源码地址: DPlayer
新建目录: source/js/dplayer, 下载并解压源码, 将 dist 文件夹中的四个文件复制到 source/js/dplayer 中.
在待添加视频博客的所需位置中添加以下代码:
| 1 | <div id="dplayer"></div> | 
自定义单行代码段样式
打开 source/_data/styles.styl 文件, 添加对 Code 标签的自定义配置即可. 下面是我博客使用的配置.
| 1 | // 单行代码块 | 
自定义鼠标样式
打开 source/_data/styles.styl 文件, 添加自定义配置.
| 1 | // 鼠标样式, 格式: *.ani (动态), *.cur (静态) | 
自定义字体
打开 source/_data/variables.styl 文件, 添加自定义配置. 参考: Hexo NexT 主题的字体更换
| 1 | // $font-family-chinese 负责调控中文字体, 但优先级最低 | 
添加捉小猫游戏
- 下载捉小猫游戏源文件并解压, 之后将解压好的文件夹 - source和博客目录下的- source文件夹合并. Catch The Cat
- 在主题配置文件的 menu 处添加新菜单项: 捉小猫! 仅需两步, 大功告成! 
| 1 | menu: | 
鼠标右键菜单 GalMenu
- 下载 GalMenu 源文件并解压, 之后将解压好的文件夹 - galmenu放到博客的- source/js文件夹下. GalMenu 下载链接 解压密码是本网站首页地址
- 在主题配置文件 - _config.next.yml中添加配置.
| 1 | galmenu: | 
- 在 - source/_data/body-end.njk文件中添加配置.- [注] 在这里可以自定义菜单项名称, 而且在 audio 标签中可以自定义音效文件名称, 建议不要修改路径. 修改名称后记得一定要在 - source/js/galmenu/audio文件夹中放入自定义的音效资源.
| 1 | <!--动漫菜单--> | 
- 在 - source/_data/head.njk文件内添加 CSS 引用.- [注] 在这个 CSS 文件中可以修改菜单图片的文件名, 建议不要修改路径. 修改名称后记得一定要在 - source/js/galmenu/img文件夹中放入自定义的图片资源.
| 1 | <!--动漫菜单--> | 
至此大功告成!
鼠标单击之心形图案特效
在 source/js 下创建 love.js 文件, 内容具体见我的另一篇博客: Hexo + NexT 主题美化 (NexT v7.2.0) 这里不再赘述!
之后在 source/_data/body-end.njk 中添加:
| 1 | <!--心形图案效果--> | 
最后在 主题配置文件 中写入 love: true.
鼠标单击之烟花爆炸特效
- 下载 - fireworks.js文件到- source/js文件夹下
- 在 - source/_data/body-end.njk中添加:
| 1 | <!--烟花爆炸特效--> | 
- 在 主题配置文件 中写入 fireworks: true.
下载地址: fireworks.7z, 解压密码是本网站首页地址
[注] 都读到这里了, 我想你肯定早就知道了, 想要获取文章中提到的所有资源文件, 只要 F12 就可以了! 😂 当然我还是提供了下载地址的...
页面标题欺诈
在 source/js 下创建 crash_cheat.js 文件, 内容具体见我的另一篇博客: Hexo + NexT 主题美化 (NexT v7.2.0) 这里不再赘述!
之后在 source/_data/body-end.njk 中添加:
| 1 | <!--崩溃欺骗--> | 
最后在 主题配置文件 中写入 crashcheat: true.
球形标签云
球形标签云其实就是用这个插件 TagCanvas 实现的, 点击进入官网.
进入官网后下载 tagcanvas.js 文件, 也可以直接在左面我给出的链接那里 "右键 => 链接另存为", 保存到: source\js 目录下. 需要的就是这一个 tagcanvas.js 文件!
打开 source/js 文件夹中再新建一个 tagcloud.js 文件, 写入以下内容:
| 1 | window.onload = function () { | 
[题外话] 新版的 NexT 推荐用户不要再修改主题目录中的任何文件, 虽然我是一个前端纯小白, 但是我也在尽力去遵守这条约定, 但是我发现如果我想要实现这个标签云, 就必须修改主题目录中的文件! 如果有人知道可以不修改主题目录中的文件便可以实现相同的效果, 请务必告知, 十分感谢!
打开文件 node_modules\hexo-theme-next\layout\page.njk, 在这个 <div class="tag-cloud-tags"> 的前面加上如下代码:
| 1 | {# 球形云标签 #} | 
最后在 主题配置文件 中写入 crashcheat: true.tagcanvas: true.
[注] 球形标签云也可以使用 Hexo 的插件
hexo-tag-cloud来实现, 其实最终都是依赖于tagcanvas.js文件的, 而且我尝试hexo-tag-cloud后发现我不会改效果...😂 所以还是用了之前的老方法!另外, 执行上面的操作后, 球形标签云和普通标签云是同时存在的, 如果只想要显示球形标签云, 把后面那个
普通云标签的div标签注释掉就行了. 就像这样:
| 1 | {# 普通云标签 #} | 
[注] 如果使用的是 NexT 8.2.2 版本是找不到 node_modules\hexo-theme-next\layout\page.njk 文件的, 而是需要修改 node_modules\hexo-theme-next\layout\_partials\page\tags.njk 文件, 将此文件中的内容全部修改为:
| 1 | <div class="tag-cloud"> | 
粒子时钟
下载文件 clock.js, 可以直接在链接上 "右键 => 链接另存为", 放到 source/js/ 路径下.
之后在 source/_data/sidebar.njk 中添加:
| 1 | {# 粒子时钟 #} | 
最后在 主题配置文件 中写入 clock: true.
站点运行时间
下载文件 website_runtime.js, 可以直接在链接上 "右键 => 链接另存为", 放到 source/js/ 路径下.
之后在 source/_data/footer.njk 中添加:
| 1 | {# 站点已运行时间 #} | 
最后在 主题配置文件 中写入 websiteruntime: true.
萌萌的看板娘
- 第一种: hexo-helper-live2d优点: 有声音, 缺点: 无法换装, 无法换模型, 响应事件少.
使用方法见官方网址: hexo-helper-live2d
- 第二种: live2d-widget优点: 能换装, 能切换模型, 响应事件多, 缺点: 无声音, 配置较复杂. (现在可能已经有声音了)
使用方法见官方网址: live2d-widget
- 第三种: live2d_demo优点: 能换装, 能切换模型, 响应事件多, 缺点: 无声音, 配置较复杂. (现在可能已经有声音了)
使用方法见官方网址: live2d_demo
我是用的是第 3 种 live2d_demo
- 下载 - live2d_demo: live2d_demo, 解压密码是本网站首页地址
- 解压之后放到 - source/js/目录下, 完成这一步之后, 在- source/js/live2d_demo/目录下应该有 9 个文件.
- 在 - source/_data/body-end.njk文件的最后添加:
| 1 | <!--萌萌看板娘--> | 
- 最后在 主题配置文件 中写入 live2d_demo: true, 启用看板娘!
[注]
- 要定制自己的看板娘, 可以修改 - autoload.js中的参数配置, 还可以在- waifu-tips.json中修改对话, 这两处的配置足够定制自己独特的看板娘了!
- 经过以上操作如果还是不能达到效果, 请检查 - autoload.js中的路径设置是否正确! (虽然我已经配置好了, 可以直接拿来用, 不过既然出问题了, 就自己检查一下吧!)