生成永久链接(permalink) | hexo

hexo默认的文章链接形式为domain/year/month/day/postname,当我们把文章源文件名改掉之后,链接也会改变,这很不友好。
这里介绍一种方法来生成永久链接。使用的是node.js常用的自动构建工具grunt.

步骤为:

  1. 文章的Front-matter中加入一个abbrlink 字段
    image

  2. 使用grunt的插件grunt-rewrite自动填充abbrlink的值
    编辑 Gruntfile.js

module.exports = function(grunt) {

  grunt.initConfig({

    rewrite: {
      abbrlink: {
        src: 'source/_posts/**/*.md',
        editor: function(contents, filepath){
          const crypto = require('crypto');
          const hash = crypto.createHash('sha256');

          hash.update(contents);
          var hashValue = hash.digest('hex');

          return contents.replace(/@@abbrlink/g, hashValue.substring(0, 16));
        }
      },
    },
  });

  grunt.loadNpmTasks('grunt-rewrite');
};

这表示,插件到source/_posts/ 下读取所有的.md文件,把文件中的@@abbrlink替换成文件内容的hash值。

  1. 编辑站点配置文件_config.ymlpermalink
permalink: posts/:abbrlink.html

最后,当我们运行grunt rewrite后,@@abbrlink会被替换成一个16位的hash值。
链接地址变成blog.wangjinle.com/posts/916d83182e15eeb1.html这种样式,只要不去改动这个hash值,链接地址不会变。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值