生成永久链接(permalink) | hexo

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

步骤为:

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

  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值,链接地址不会变。

你可能感兴趣的:(hexo)