hexo默认的文章链接形式为domain/year/month/day/postname
,当我们把文章源文件名改掉之后,链接也会改变,这很不友好。
这里介绍一种方法来生成永久链接。使用的是node.js常用的自动构建工具grunt.
步骤为:
-
文章的
imageFront-matter
中加入一个abbrlink
字段
-
使用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值。
- 编辑站点配置文件
_config.yml
的permalink
permalink: posts/:abbrlink.html
最后,当我们运行grunt rewrite
后,@@abbrlink
会被替换成一个16位的hash值。
链接地址变成www.wangjinle.com/posts/916d83182e15eeb1.html
这种样式,只要不去改动这个hash值,链接地址不会变。
- 更多内容:hexo博客搭建汇总
网友评论