渲染器

渲染器用于渲染内容。

¥A renderer is used to render content.

概要

¥Synopsis

hexo.extend.renderer.register(
name,
output,
function (data, options) {
// ...
},
sync,
);
参数 描述
name 输入文件扩展名(小写,不带前导 .
output 输出文件扩展名(小写,没有前导 .
sync 同步模式

三个参数将传递到 render 函数中:

¥Three arguments will be passed into the render function:

参数 描述
data 包含两个属性:文件路径 path 和文件内容 textpath 不一定存在。
option 选项
callback 两个参数 errvalue 的回调函数。

示例

¥Example

异步模式

¥Async Mode

var stylus = require("stylus");

// Callback
hexo.extend.renderer.register(
"styl",
"css",
function (data, options, callback) {
stylus(data.text).set("filename", data.path).render(callback);
},
);

// Promise
hexo.extend.renderer.register("styl", "css", function (data, options) {
return new Promise(function (resolve, reject) {
resolve("test");
});
});

同步模式

¥Sync Mode

var ejs = require("ejs");

hexo.extend.renderer.register(
"ejs",
"html",
function (data, options) {
options.filename = data.path;
return ejs.render(data.text, options);
},
true,
);

禁用 Nunjucks 标签

¥Disable Nunjucks tags

默认情况下,Nunjucks 标签 {{ }}{% %}标签插件 使用)会被处理,以禁用:

¥Nunjucks tags {{ }} or {% %} (utilized by tag plugin) are processed by default, to disable:

function lessFn(data, options) {
// do something
}

lessFn.disableNunjucks = true;

hexo.extend.renderer.register("less", "css", lessFn);