修改HEXO文章链接名称
之前设置HEXO生成网页链接的时候, 没有选择常规的permalink: :year/:month/:title/
的写法。
为了不在链接路径中显示年月信息,改成了permalink: :post_title/
,然后发现中文标题名称转换成链接的时候,中文标题URL会被编码成 %E4%B8%AD%E6%96%87…
,又丑又长。
如果在网页内部跳转还好,浏览器会自动转码成正常的汉字,但分享到其他平台,未正确解码的时候,看到的是一堆%E4%B8%....
之类的乱码。
想把这个汉字链接转化成非乱码的形式,好像是因为ASCII编码和UTF8编码的缘故,没法处理。
很多博友会用纯数字编号代替,或者用拼音重写链接地址,总之都挺麻烦的。
尝试
网上搜到可以用:slug
别名重写链接地址,于是尝试把一篇post文章的开始部分的 Front-matter
加上了 slug: example-title
,然后把站点 _config.yml
的 permalink 改成 :slug/
。
修改post的前面部分如下:
---
title: 修改HEXO文章链接名称
slug: post-permalink-Modify/
date: 2025-07-21
---
...
修改站点 _config.yml
的链接地址如下:
...
permalink: :slug/
permalink_defaults: :slug/
pretty_urls:
trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
trailing_html: true # Set to false to remove trailing '.html' from permalinks
...
结果没有效果,回退到了post文件名作为链接。
官方文档方法
查了HEXO官方对于链接设置方法的说明。
permalink 覆盖文章的永久链接. 永久链接应该以 / 或 .html 结尾 null
并没有找到采用 slug
写法替代原始title名称的说法(怀疑HEXO没有配置这个方法)。
只能直接指定permalink覆盖默认链接方式,获得需要的链接。
修改后的post前面Front-matter
如下:
---
title: 修改HEXO文章链接名称
permalink: post-permalink-modify/
date: 2025-07-21
测试的时候,还遇到一个bug,刚开始没有仔细看说明文档,写成permalink: post-permalink-modify
,鼠标放在网页链接位置显示post-permalink-modify
,但不能正常打开(以未知文件形式下载)。
回过头去看官方说明文档,系统_yaml配置中设置trailing删掉了html
,又没有生成”文件夹+index.html“。
重新给permalink: post-permalink-modify/
的末尾加上*/
以后显示正常了。
得看官方说明文档~~
(⊙o⊙)!!
中文网页链接地址
由于中文网页必须采用UTF-8编码的缘故, 网页的链接地址使用中文必然需要转码,影响分享链接的可读性和输入方便性。
英文网页会有很多人把英文标题直接“空格”转短横“-”连接所有单词作为链接地址,但实际上表现效果也不好说。
虽然可读性强,但标题太长,分享和输入的便捷性影响极大。
另外,注意到很多大型网站会选择直接一串数字表示,虽然没有可读性,但简练、方便、快捷。
以后试试直接简短的数字作为固定链接,文章不多的情况下,2~3个数字就可以搞定了。
参考资料:
- HEXO官方说明文档 https://hexo.io/zh-cn/docs/front-matter