过滤器用于修改一些指定的数据。Hexo 按顺序将数据传递给过滤器,然后过滤器依次修改数据。这个概念借鉴了 WordPress.
概述
hexo.extend.filter.register(type, function() { |
您可以定义priority
。priority
越低,越先执行。默认的priority
是 10。我们建议使用用户可配置的优先级值,用户可以在配置文件中指定,例如hexo.config.your_plugin.priority
。
执行过滤器
hexo.extend.filter.exec(type, data, options); |
选项 | 描述 |
---|---|
context |
上下文 |
args |
参数。这必须是一个数组。 |
传递给每个过滤器的第一个参数是data
。传递给下一个过滤器的data
可以通过返回一个新值来修改。如果没有返回值,则数据保持不变。您甚至可以使用args
在过滤器中指定其他参数。例如
hexo.extend.filter.register("test", function (data, arg1, arg2) { |
您也可以使用以下方法执行过滤器
hexo.execFilter(type, data, options); |
取消注册过滤器
hexo.extend.filter.unregister(type, filter); |
示例
// Unregister a filter which is registered with named function |
// Unregister a filter which is registered with commonjs module |
过滤器列表
以下列出了 Hexo 使用的过滤器。
before_post_render
在渲染文章之前执行。请参考 文章渲染 以了解执行步骤。
例如,将标题转换为小写
hexo.extend.filter.register("before_post_render", function (data) { |
after_post_render
在渲染文章之后执行。请参考 文章渲染 以了解执行步骤。
例如,将@username
替换为指向 Twitter 账户的链接
hexo.extend.filter.register("after_post_render", function (data) { |
before_exit
在 Hexo 即将退出之前执行——这将在hexo.exit
调用之后立即运行。
hexo.extend.filter.register("before_exit", function () { |
before_generate
在开始生成之前执行。
hexo.extend.filter.register("before_generate", function () { |
after_generate
在生成完成之后执行。
hexo.extend.filter.register("after_generate", function () { |
template_locals
修改模板中的 本地变量。
例如,将当前时间添加到模板的本地变量中
hexo.extend.filter.register("template_locals", function (locals) { |
after_init
在 Hexo 初始化之后执行——这将在hexo.init
完成后立即运行。
hexo.extend.filter.register("after_init", function () { |
new_post_path
在创建文章时执行,用于确定新文章的路径。
hexo.extend.filter.register("new_post_path", function (data, replace) { |
post_permalink
用于确定文章的永久链接。
hexo.extend.filter.register("post_permalink", function (data) { |
after_render
在渲染完成之后执行。您可以查看 渲染 了解更多信息。
after_clean
在使用hexo clean
命令删除生成的文件和缓存后执行。
hexo.extend.filter.register("after_clean", function () { |
server_middleware
向服务器添加中间件。app
是一个 Connect 实例。
例如,向响应头添加X-Powered-By: Hexo
hexo.extend.filter.register("server_middleware", function (app) { |