本文最后更新于:星期二, 四月 28日 2020, 2:41 下午

Hexo 自定义文章链接

我们在访问文章页面时,会发现默认的文章链接相当的长

尤其是当链接中包含中文时,会出现很多转义字符,不便于我们把写好的文章分享给别人

当然,hexo为我们提供了可使用的插件hexo-abbrlink,但是我在安装后无法正常使用,出现所有文章的链接全部指向同一个路径undefined/xxxx.html的问题

虽然后来发现了问题所在,但是我已经使用本文方法对链接做了优化,并且认为此方法优于hexo-addrlink,hexo-addrlink插件虽然可以给每一篇文章通过文章标题(hexo中文章标题是不能重复的)生成唯一的编码,来实现链接唯一化。但是还是觉得这个插件生成的唯一代码太长了,也没有逻辑,我还是希望能够用时间和日期作为唯一链接。通过百度和谷歌后,找到了一个大神的解决方法,下面分享出来。

具体原理略过吧,直接上步骤123了

放个效果图(我没有定义成最短的形式,方便管理,可以自定义成更短的哈)

1. 新建js文件

主题文件夹/scripts/路径下,新建 datelink.js 吧,名字随意,我懒我就没改哈哈。

datelink.js内容如下

'use strict';
var hexo = hexo || {};
hexo.extend.filter.register('before_post_render',function(data)
{
    var log = this.log;
    if (data.layout == 'post') 
    {
        let datelink
        if (!datelink) 
        {
            var getdate = data.date;
            //log.i("get date [%s]", getdate.format('YYYYMMDDhhmmss'));
            data.datelink = getdate.format('YYYYMMDDhhmmss');
        }
    }
    return data
},15);

2. 修改HEXO配置文件 _config.yml

注意这个是hexo的配置文件,不是主题的配置文件

permalink: posts/:year/:month/:datelink.html
permalink_defaults:
datelink:

注意这并不是链接最短的形式,如果你想使更短可以这么写

permalink: :datelink.html
permalink_defaults:
datelink:

具体想让链接什么格式,自行修改permalink:就好,这才叫自定义,哈哈

3. hexo三连

接下来hexo clean && hexo g && hexo s就好啦

本文作者:Darren
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

本站支持评论邮件提醒功能,在邮箱输入框中留下你的邮箱,这样就能通过邮件收到回复!