前期准备

升级hexo-cli

第一步,那当然是升级我们的hexo环境啦,升级到最新就可以了,目前的最新版本好像是 hexo-cli:4.2.0,可以执行下下面这个指令看看自己是不是这个版本或者高于这个版本。

1
hexo -v

如果hexo-cli低于4.2.0那就需要升级下hexo环境,我们简简单单的重新安装一次就可以啦~简单粗暴有没有

1
2
npm un hexo-cli -g
npm i hexo-cli -g

修改package.json

dependencies下的hexo改成最新的就可以啦,比如5.1.0

修改根目录的_config.yml文件

Directory区域

删除contribute_dir: contribute配置项

查看新旧配置对比
旧配置
1
2
3
4
5
6
7
8
9
10
# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
contribute_dir: contribute # 这是要删除的
code_dir: downloads/code
i18n_dir: :lang
skip_render:
新配置
1
2
3
4
5
6
7
8
9
# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:

Writing区域

在最后添加下列配置项

1
2
3
4
5
prismjs:
enable: false
preprocess: true
line_number: true
tab_replace: ''
查看新旧配置对比
旧配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link:
enable: true # Open external links in new tab
field: site # Apply to the whole site
exclude: ''
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight:
enable: true
line_number: true
auto_detect: false
tab_replace: ''
wrap: true
hljs: false
新配置
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
# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link:
enable: true # Open external links in new tab
field: site # Apply to the whole site
exclude: ''
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight:
enable: true
line_number: true
auto_detect: false
tab_replace: ''
wrap: true
hljs: false
prismjs:
enable: false
preprocess: true
line_number: true
tab_replace: ''

Date / Time format区域

这个直接看新旧配置吧,替换就行

查看新旧配置
旧配置
1
2
## Use post's date for updated date unless set in front-matter
use_date_for_updated: false
新配置
1
2
## updated_option supports 'mtime', 'date', 'empty'
updated_option: 'mtime'

最后工作

然后把node_modules目录删除后重新npm i就可以啦。

如果出错的话可以把package-lock.json文件删除再做这个操作。

新版hexo特性

支持_config.[theme].yml自定义配置覆盖功能,优先级如下:

theme_config > _config.[theme].yml > themes/[theme]/_config.yml