Hexo如何在生成时替换内容?

时间:2017-01-25 12:14:17

标签: hexo

生成时我需要在网站上替换文本字符串。

创建了一个文件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);
    });
});

1 个答案:

答案 0 :(得分:1)

这是一个错误。

如果&#34; hexo服务器&#34;正在运行并执行&#34;生成&#34;,&#34; after_post_render&#34;执行过滤器并且内容替换正确,但hexo会忽略带有新数据的data.content。

解决方案:在执行生成之前执行&#34; hexo clean&#34;。