本文相关版本:
Hexo原始版本: 3.9.0
Hexo升级版本: 4.2.1
Next原始版本: 5.1.4
Next升级版本: 7.8.0
版本更新
首先升级过时的依赖,使用指令查询过时依赖:
1 | npm outdated |
使用指令更新,将更新Wanted栏与Current栏不一致的依赖。
1 | npm update |
也可以使用npm-check-updates更新所有依赖:
1 | # 安装 |
这里我选择更新所有(>-<踩坑就踩到地狱)。
便于后续更新,将Next主题仓库代码fork一份到自己的仓库,并克隆至hexo主题文件夹下。
1 | git clone https://github.com/gonghs/hexo-theme-next themes\next7.8.0 |
利用Hexo3的Data Files特性,在source文件夹下_data文件夹新建next.yml并拷贝旧版本next/_config.yml配置所有内容,以保留自定义主题配置且防止更新时与官方冲突,但需要注意主题配置与_data下next.yml中的override配置都必须为false(默认false,因此删除此配置项也都可以),建议将新版本的配置修改至此处,而旧版本配置放在原文件夹下保留一份可用的。
原有next文件夹可以不删除,以便出了问题可以切换回旧版本。
旧版本问题处理
首页菜单栏404
更新所有依赖后菜单栏点击可能会报错404:
需要到主题文件夹下_config.yml(_data/next.yml自定义配置中也可以),将menu配置项||之前的空格去掉
1 | menu: |
除此之外目前看旧版本的表现是正常的,可以用于出错时的备份版使用。
新版本问题处理
新版本主题配置如未特殊说明都修改在自定义配置中。
要使用新版本,需要将hexo主题配置修改为hexo新版本所在的文件夹名,这里是:
1 | theme: next7.8.0 |
启动新版本,看起来有比较多的问题,一点一点处理。
语言问题
由于官方将中文的语言命名由zh-Hans改为了zh-CN,因此要将hexo配置文件中的语言进行对应修改。
1 | language: zh-CN |
图标显示异常
为了方便自定义图标库,对比新旧配置可以发现原先图标的配置有了变更,因此需要搜索类似的地方进行修改:
1 | # 新配置 完整样式名 |
涉及修改的参数名前缀大致包含:
1 | # 页脚配置 |
图标修改完毕后需要如果还是显示异常可能需要进行一次清空操作再运行:
1 | hexo clean |
首页自定义logo异常
原有的自定义logo配置为对象配置,新版本改为了只配置图片路径,若新旧都为默认配置在新版本渲染中将会异常展示。
1 | # 旧版本 |
文章阅读次数和评论展示异常
valine下的配置有部分配置追加,按需拷贝至新配置文件即可。
1 | # 新年增部分 |
页面特效
由于6.0.0版本移除了原有的部分自带依赖(可比对next/soure/lib下文件),旧版本的部分配置例如canvas_nest将无法直接生效。
1 | # Canvas-nest |
如果需要安装可以在theme-next仓库中搜索并按文档安装。
这里以canvas_nest为例:
在hexo/source/_data下创建footer.swig文件(如果有则追加内容):
1 | <script color="0,0,255" opacity="0.5" zIndex="-1" count="99" src="https://cdn.jsdelivr.net/npm/canvas-nest.js@1/dist/canvas-nest.js"></script> |
修改主题配置(已有则忽略):
1 | # Canvas-nest |
微信二维码
原有的wechat_subscriber配置变更并删除了部分内容,修改了一些样式:
1 | # 旧配置 |
旧样式:
新样式:
版权文字
原有的post_copyright配置进行了变更,并新增了侧边栏版权说明:
1 | # 旧配置 |
统计异常
在旧版本中的post_wordcount配置似乎已经不可用,因此需要使用symbols_count_time替代。
1 | # 卸载原有依赖 不卸载对新插件有影响 |
新的配置在symbols_count_time下:
1 | symbols_count_time: |
在hexo配置(非主题配置)下可以设置显示哪些内容和一些统计维度:
1 | symbols_count_time: |
字体大小
更新至新版以后字体默认大小比原先大了些,需要调整可以在font配置下进行变更。
1 | font: |
以上将此次升级中原自带配置的部分进行了修正,大致拥有了旧版的功能,之后将单独开文记录其他特别的功能在新版本的修改。
参考文档: