优化Hexo文章链接格式,使之既不出现中文又便于管理

问题

今天给博客配置Gitalk评论插件,配置完成后出现401报错,初始化创建失败,提示Error: Validation Failed.搜索后发现很多博主出现此现象,详见issues#115

由此引发了我对Hexo文章链接格式的关注,我之前所用的合适类似skyazure.top/2020/02/05/Manjaro配置命令/Gitalk的使用是将文章名称经URL编码后添加到issues的label里,但是label的长度上限是50个字符,所以文章名有些长的(尤其是中文名称编码后会较长)都会生成label失败,也就没法评论了。

1
2
3
https://skyazure.top/2020/02/05/Manjaro配置命令/
# 转码后变为
https://skyazure.top/2020/02/05/Manjaro%E9%85%8D%E7%BD%AE%E5%91%BD%E4%BB%A4/

修改

首先 _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 配置信息

按照默认设置,如果想规避链接中出现中文,文件名称应该设置成英文,但是这样很不方便本地查找文章。解决办法是

  1. 打开吧博客根目录/scaffolds/post.md增加urlname字段

    1
    2
    3
    4
    5
    title: {{ title }}
    date: {{ date }}
    urlname:
    categories:
    tags:

    这样每次在hexo n "title"时会在Front-matter中增加urlname

  2. 其次,再把博客根目录/_config.ymlpermalink修改一下,此处修改为 分类/urlname

    1
    permalink: :category/:urlname/

这样即使文章title为修改Hexo文章链接格式,但只要设置了urlname: set-post-formatcategories: -Blog -Hexo那么生成的网页链接也会显示为

https://skyazure.top/Blog/Hexo/set-post-format/

如果标签中含有中文可以使用

1
permalink: :year:month:day/:urlname/

https://skyazure.top/20200218/set-post-format/

我要去修改之前的文章了 GG

您的喜欢是作者写作最大的动力!❤️
  • PayPal
  • AliPay
  • WeChatPay
  • QQPay
Donate

 评论


Copyright 2019-2021 Azure's BLOG 正在载入...