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);
    });
});

person Luciano    schedule 25.01.2017    source источник


Ответы (1)


Это ошибка.

Если "hexo server" запущен и вы выполняете "generate", выполняется фильтр "after_post_render" и замена контента работает корректно, но data.content с новыми данными игнорируется hexo.

Решение: перед выполнением генерации выполните "hexo clean".

person Luciano    schedule 30.01.2017