在 Hexo 中,有两个方法可用于渲染文件或字符串,分别是异步的 hexo.render.render
和同步的 hexo.render.renderSync
。 这两个方法的使用方式十分类似,因此下文仅以异步的 hexo.render.render
为例。
渲染字符串
在渲染字符串时,您必须指定 engine
,如此一来 Hexo 才知道该使用哪个渲染引擎来渲染。
hexo.render.render({ text: "example", engine: "swig" }).then(function (result) { |
渲染文件
在渲染文件时,您无须指定 engine
,Hexo 会自动根据扩展名猜测所要使用的渲染引擎。 当然您也可以使用 engine
指定。
hexo.render.render({ path: "path/to/file.swig" }).then(function (result) { |
渲染选项
You can pass in an options object as the second argument.
hexo.render.render({ text: "" }, { foo: "foo" }).then(function (result) { |
after_render 过滤器
在渲染完成后,Hexo 会自动执行相对应的 after_render
过滤器。 举例来说,我们可以通过这个功能实现 JavaScript 的压缩。
var UglifyJS = require("uglify-js"); |
检查文件是否可被渲染
您可以通过 isRenderable
或 isRenderableSync
两个方法检查文件路径是否可以被渲染。 只有在相对应的渲染器(renderer)已注册的情况下才会返回 true。
hexo.render.isRenderable("layout.swig"); // true |
获取文件的输出扩展名
Use the getOutput
method to get the extension of the rendered output. If a file is not renderable, the method will return an empty string.
hexo.render.getOutput("layout.swig"); // html |
禁用 Nunjucks 标签
如果你没有使用 标签插件 并且想要在你的文章中使用 {{ }}
或 {% %}
而不使用 转义, 你可以通过以下方式在现有的渲染器中禁用对 Nunjucks 标签的处理:
// 以下示例仅适用于".md "文件扩展名 |