filter

filter

Hexo 将数据按顺序传递给过滤器,然后过滤器依次修改数据。

hexo.extend.filter.register

根据不同阶段执行:

1
2
3
hexo.extend.filter.register(type, function() {
// 方法体
}, priority);

参数:

  • type 过滤器类型
    • after_init
    • before_generate
    • before_post_render
    • after_post_render
    • after_generate
    • before_exit 调用 hexo.exit 后立即运行
    • template_locals
    • new_post_path
    • server_middleware
    • after_clean hexo clean 命令后执行
  • priority 优先级
    • 值小优先,默认10

Execute Filters 执行过滤器

1
2
hexo.extend.filter.exec(type, data, options);
hexo.extend.filter.execSync(type, data, options);
  • option
    • context
    • args 必须是数组

方式2:

1
2
hexo.execFilter(type, data, options);
hexo.execFilterSync(type, data, options);

data

data 在 fliter 之间传递,第一个参数就是 data ,可通过返回值修改,不返回任何内容,代表 data 不变

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
hexo.extend.filter.register('test', function(data, arg1, arg2){
// data === 'some data'
// arg1 === 'foo'
// arg2 === 'bar'

return 'something';
});

hexo.extend.filter.register('test', function(data, arg1, arg2){
// data === 'something'
});

hexo.extend.filter.exec('test', 'some data', {
args: ['foo', 'bar']
});