我需要在生成时替换站点上的文本字符串。
创建了一个文件myGenerateWork.js,并使用节点myGenerateWork.js执行,但不起作用。
这是myGenerateWork.js
var Hexo = require('hexo');
var hexo = new Hexo(process.cwd(), {});
hexo.init().then(function () {
hexo.extend.filter.register('after_post_render', function(data){
data.content = data.content.replace(/@(\d+)/, '<a href="http://twitter.com/$1">#$1</a>');
return data;
});
hexo.call('generate', {}).then(function(){
return hexo.exit();
}).catch(function(err){
return hexo.exit(err);
});
});发布于 2017-01-30 17:09:32
这是个窃听器。
如果hexo server正在运行,而您执行了generate,则会执行after_post_render过滤器,并且内容替换可以正常工作,但是包含新数据的data.content会被hexo忽略。
解决方案:在执行生成之前,执行"hexo clean“。
https://stackoverflow.com/questions/41851396
复制相似问题