建站教程 全英文路径

本文将介绍如何使你的博客路径都变为英文。

一、问题

在 Hexo 的默认设置中,文章链接是以 :year/:month/:day/:title/ 的形式。在文章标题使用中文时,将会导致文章链接中出现中文。从而在许多地方都会出现问题,例如 404 、链接乱码等。

同时,Hexo 也会默认将分类及标签直接放入分类索引页、标签索引页的链接中,同样会导致链接中出现中文。这个问题可以被较为简单的方式解决。

二、修改文章链接

1.修改设置

修改Hexo的默认设置,使用年份、月份、日期、小时、分钟、秒钟、文章 ID、hash 等参数重新组合,设置文章链接。

这种方法的问题是:

生成的链接并不是永久链接,可能随着文章的某个参数的改变而改变。而永久链接对于搜索引擎搜录,文章分享,文章整理都有很大的好处。

2.插件

hexo-abbrlink: create one and only link for every post for hexo

利用此插件可以为每一篇文章生成固定的永久链接。

(1) 安装插件

1
npm install hexo-abbrlink --save

国内请将 npm 更换为 cnpm ,否则可能会下载失败。

(2) 修改配置

打开 _config.yml 文件,

增加新的Permalinks设置:

1
2
3
4
permalink: post/:abbrlink.html
abbrlink:
alg: crc32 # 算法:crc16(default) and crc32
rep: hex # 进制:dec(default) and hex

删除原先的Permalinks设置:

1
permalink: :year/:month/:day/:title/

(3) 其它设置

1
2
3
4
5
6
7
8
drafts: false      #false(default)  是否处理草稿
auto_category:
enable: true #true(default) 从目录树中生成类别
depth: 3 #3(default) 路径最大深度
over_write: false
auto_title: false #自动标题,自动通过路径填充标题
auto_date: false #自动日期, 自动填上日期
force: false #强制模式 强制为每个帖子计算abbrlink

(4) 不同算法下的链接

1
2
3
4
5
6
7
8
crc16 & hex
https://post.zz173.com/posts/66c8.html
crc16 & dec
https://post.zz173.com/posts/65535.html
crc32 & hex
https://post.zz173.com/posts/8ddf18fb.html
crc32 & dec
https://post.zz173.com/posts/1690090958.html

另有 hexo-abbrlink2

可以生成从1开始有序增长的link,但似乎现版本下有 BUG,因此没有尝试。

三、分类、标签的中英文映射

经过一番设置,现在所有的文章页面都已经是纯英文链接了。但仍有漏网之鱼,分类、标签等页面仍然会出现中文,我们可以通过 category map 的方式解决。

打开 _config.yml 文件,修改设置:

1
2
3
4
5
6
7
8
9
10
11
12
category_map:
每日一题: one-question-per-day
建站教程: website-building-course
学习笔记: study-notes
技术分享: technology-sharing
tag_map:
C语言: C-Programming-Language
学习笔记: study-notes
建站教程: website-building-course
技术分享: technology-sharing
每日一题: one-question-per-day
域名: domain-name

四、更新链接

1
2
cd blog
hexo cl && hexo g && hexo d

至此,你的博客中所有链接都已设置为纯英文了。

参考