渲染器

渲染器用於渲染內容。

概要

hexo.extend.renderer.register(
name,
output,
function (data, options) {
// ...
},
sync,
);
參數 描述
name 輸入檔名副檔名(小寫,不含開頭的 .
output 輸出檔名副檔名(小寫,不含開頭的 .
sync 同步模式

三個參數將傳遞到渲染函數中

參數 描述
data 包含兩個屬性:檔案路徑 path 和檔案內容 textpath 不一定存在。
option 選項
callback 具有兩個參數 errvalue 的回呼函數。

範例

非同步模式

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

同步模式

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 標籤

Nunjucks 標籤 {{ }}{% %}(由標籤外掛使用)預設會被處理,若要停用

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

lessFn.disableNunjucks = true;

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