优化Hexo文章链接格式,使之既不出现中文又便于管理
问题
今天给博客配置Gitalk评论插件,配置完成后出现401报错,初始化创建失败,提示Error: Validation Failed.
搜索后发现很多博主出现此现象,详见issues#115
由此引发了我对Hexo文章链接格式的关注,我之前所用的合适类似skyazure.top/2020/02/05/Manjaro配置命令/
Gitalk的使用是将文章名称经URL编码后添加到issues的label里,但是label的长度上限是50个字符,所以文章名有些长的(尤其是中文名称编码后会较长)都会生成label失败,也就没法评论了。
1 | https://skyazure.top/2020/02/05/Manjaro配置命令/ |
修改
首先 _config.yml
是 Hexo 的配置文件,在其中找到 permalink
,我们发现文章的链接是按照 年/月/日/标题
排列的。
1 | permalink: :year/:month/:day/:title/ |
变量 | 描述 |
---|---|
:year | 文章的发表年份(4 位数) |
:month | 文章的发表月份(2 位数) |
:i_month | 文章的发表月份(去掉开头的零) |
:day | 文章的发表日期 (2 位数) |
:i_day | 文章的发表日期(去掉开头的零) |
:title | 文件名称 |
:post_title | 文章标题 |
:id | 文章 ID |
:category | 分类。如果文章没有分类,则是 default_category 配置信息 |
按照默认设置,如果想规避链接中出现中文,文件名称应该设置成英文,但是这样很不方便本地查找文章。解决办法是
打开吧
博客根目录/scaffolds/post.md
增加urlname
字段1
2
3
4
5title: {{ title }}
date: {{ date }}
urlname:
categories:
tags:这样每次在
hexo n "title"
时会在Front-matter中增加urlname
其次,再把
博客根目录/_config.yml
的permalink
修改一下,此处修改为分类/urlname
:1
permalink: :category/:urlname/
这样即使文章title为修改Hexo文章链接格式
,但只要设置了urlname: set-post-format
和categories: -Blog -Hexo
那么生成的网页链接也会显示为
如果标签中含有中文可以使用
1 | permalink: :year:month:day/:urlname/ |
我要去修改之前的文章了 GG