当这个村庄局限我的一生时,小小的地球正在局限着整个人类。
——刘亮程《一个人的村庄》
简介
因为
nexT
主题从v5.1.x
更新到v6.0.x
后,主仓库已从iissnan
名下迁移至theme-next
组织。所以就导致每次在终端生成、部署博客的时候,会有主题迁移的信息。虽然没什么实质的影响,但是每次看到后总会有些影响心情。1
2
3
4
5
6
7WARN ===============================================================
WARN ========================= ATTENTION! ==========================
WARN ===============================================================
WARN NexT repository is moving here: https://github.com/theme-next
WARN ===============================================================
WARN It's rebase to v6.0.0 and future maintenance will resume there
WARN ===============================================================所以趁着今天的空余时间,就把博客主题直接更新到最新版本了。因为更新会牵扯到一些自定义的文件及样式配置,所以就需要格外小心谨慎,更新中遇到的问题及相关解决方案记录于此,留作遇到相同问题的小伙伴参考。
- 更新前:
Hexo v3.7.1
vsNexT.Muse v5.1.4
- 更新后:
Hexo v3.7.1
vsNexT.Muse v6.4.1
(截止更新时是最新版本)
正文
更新准备 & 安装
- 更新前,请参考官方的升级指导从 NexT v5.1.x 更新,强烈建议按照官方推荐的升级方式,即使出错,也可以回退到之前可用的版本。
- 关于新主题的下载及目录,官方指导文档已经很清楚了,也很简单,这里就不在赘述。
站点配置文件
- 站点配置文件
_config.yml
位于博客站点的根目录下。 - 下载完新的主题后,建议将主题目录下的
_config.yml
文件备份一份,便于修改出错恢复。 - 分别打开原
next目录
和新版本next-reloaded目录
下的_config.yml
文件,进行对比更改。修改语言配置文件
新版本语言配置文件命名发生变化,所以需要修改站点配置文件:
搜索
language:
字段,将后面的zh-Hans
改为zh-CN
。1
2- language: zh-Hans
+ language: zh-CN
修改加载主题
- 我们需要让站点加载新的主题,所以需要修改主题加载目录:
- 搜索
theme:
字段,将后面的next
修改为next-reloaded
- 搜索
1 | - theme: next |
主题配置文件
1 | Set default keywords (Use a comma to separate) |
站点创建时间
- 站点创建时间,如果不指定,默认是当前时间,如2018,根据需要修改:
- 如需修改,只需要移除
since:
前面的#
号即可。
- 如需修改,只需要移除
1 | footer: |
站点菜单
- 菜单及图标配置,可以从旧版本直接拷贝替换:
1 | menu: |
社交
- 社交分享一样,可以直接拷贝原有的:
1 | social: |
分页
- 关于文章分页,我是选择将自动分页关闭,采用手动分页的方式,手动分页的话可以更好的控制显示的摘要,v6.x 默认已经关闭,如果你想打开的话,如下:
- 手动分页只需要在需要分页的地方添加
<!-- more -->
即可。
- 手动分页只需要在需要分页的地方添加
1 | auto_excerpt: |
文章 & 打赏 & 个人头像
- 如果想修改文章创建、更新时间,搜索
post_meta:
字段,进行修改即可。 - 修改打赏二维码,没什么说的,搜索
# Reward
,拷贝旧版本替换即可。 - 个人中心的头像信息设置,搜索
avatar:
- 已经不需要自己自定义实现头像
圆形样式
文件和鼠标悬浮的旋转
效果,默认已经集成,启用即可。
- 已经不需要自己自定义实现头像
1 | avatar: |
代码块
- 内置了
代码块
的一些配置,如边框,拷贝按钮等等,不需要我们自己再在样式文件中自定义了, 搜索codeblock:
:
1 | codeblock: |
版权
- 设置站点版权信息,可以搜索
post_copyright:
字段,根据自己需要修改,如我的:
1 | post_copyright: |
用户小图标
- 修改站点底部用户小图标,现在已经内置该功能,还可以设置动画,搜索
icon:
启动即可:- 图标以
fontawesomem
命名,更多图标在这里 - 如果使用
heart
图标建议使用红色(#ff0000
)。 - 如下是我显示的心形图标及颜色和启用动画。
- 图标以
1 | icon: |
配置站点文字
- 自带的主题默认会根据设备查询是否安装了对应的常用字体:如苹果的苹方字体,微软的雅黑字体。
- 我们可以自定义网站地址,参考官方文档,我们可以直接在主题配置文件中,搜索
font:
即可以修改全局字体,标题字体、文章字体、logo字体、代码块字体等等。- 如果我们设置的字体在用户设备上没有安装,会回退到主题的默认字体设置上。
- 这里每种类别只可以设置一种自定义的字体。
- 如果还需要精细控制每一处的字体,可以通过浏览器的调试功能,抓取到对应的标签在自定义样式文件中设置。
配置插件
- 升级后大部分插件也有变动,如果你有用到下面的插件的话,可以参考。
文章统计
- 旧版本是使用
post_wordcount
统计文章的字数,阅读时长等等,新版本该插件废弃,并且内置了symbols_count_time
作为替换。 - 参考这里进行安装及配置。
本地搜索
- 本地搜索内置进主题,依赖启用
hexo-generator-searchdb
插件。 - 参考这里进行安装及配置。
图片预览
- 图片预览已经内置了新的预览配置, 只需要安装启动依赖插件
theme-next-fancybox3
即可。 - 参考这里进行安装及配置。
顶部加载进度条
- 站点的顶部加载进度条也已经内置,只需要安装启动依赖插件
theme-next-pace
即可。 - 参考这里进行安装及配置。
配置文件
网站logo图标
- 配置网站的logo图标,请在
/Blog/themes/next-reloaded/source/images
目录中替换如下图标:favicon-32x32-next.png
favicon-16x16-next.png
logo.svg
文字关联标签图标
- 文章的默认标签图标是一个
#
号,不是很喜欢,我们可以修改为自己喜欢的图标,如拟物的标签图标:- 打开
/Blog/themes/next-reloaded/layout/_macro/
目录下的post.swig
文件。 - 搜索
rel="tag">#
, 将#
换成<i class="fa fa-tag"></i>
。
- 打开
自定义配置
- 旧版本的一些自定义的配置文件,可以直接拷贝到新的主题对应位置下:
/Blog/themes/next-reloaded/source/css/_custom/
目录下的custom.styl
文件。/Blog/themes/next-reloaded/source/css/_variables/
目录下的custom.styl
文件。/Blog/themes/next-reloaded/layout/_custom/
目录下的custom.swig
文件。
引用样式修改
- 如果需要修改
blockquote
引用样式:- 可以在
/Blog/themes/next-reloaded/source/css/_common/scaffolding/
目录下的base.styl
文件直接修改。 - 推荐在
/Blog/themes/next-reloaded/source/css/_custom/
目录下的custom.styl
文件中自定义样式即可。
- 可以在
分割线样式
- 修改文章分割线样式,参考
/Blog/themes/next-reloaded/source/css/_common/components/post/
目录下的post-eof.styl
文件。
网站版权
- 站点的版权配置文件,直接拷贝旧主题对应目录文件到对应目录即可:
/Blog/themes/next-reloaded/layout/_macro/
目录下的my-copyright.swig
文件。
文章版权
- 直接拷贝旧主题对应目录文件到新的主题目录即可:
/Blog/themes/next-reloaded/source/css/_common/components/post/
目录下my-post-copyright.styl
文件。
高亮样式
- 配置主题的一些高亮显示样式,可以配合自定义的样式文件一起使用:
/Blog/themes/next-reloaded/source/css/_common/components/highlight/
目录下的highlight.styl
文件。
头像边框及旋转 (旧版本)
- 旧版本的头像样式及鼠标悬浮旋转在这里添加(新版本已经内置,可以不用管)
/Blog/themes/next-reloaded/source/css/_common/components/sidebar/
目录下的sidebar-author.styl
文件。
1 | .site-author-image { |
代码块拷贝按钮 (旧版本)
- 旧版本代码块复制按钮在这里添加(新版本已经内置,只需启用即可,可以不用管)
/Blog/themes/next/source/js/src/
目录下新建custom.js
文件。
1 | //此函数用于创建复制按钮 |
总结
- 总体来说,整个更新升级的过程还是没有太多的坑的,我在第一次修改的时候,一口气把整个主题配置文件都修改完了,最后发现运行不起来,然后就是恢复后重新一处一处修改。如果不是很清楚功能,建议每修改一处就运行一次,稳步推进。
- 如果是主题文件修改后无法运行,建议先在这里校验下文件有无语法错误,尤其是我们不太注意的
空格
有时就是罪魁祸首。 - 我遇到直接清空本地的生成文件然后重新生成,在本地预览是完好的,但是部署到外网就网站格式全部没有了。最后我将原
next
主题目录更改名称为next-v5
(名字随便,便于区分即可),然后将新版本next-reloaded
主题目录名字修改为next
,在博客根目录
修改加载主题为next
,然后没有问题了。如果有遇到同样问题的小伙伴可以这样尝试下。