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) { |
渲染选项
您可以将一个选项对象作为第二个参数传入。
hexo.render.render({ text: "" }, { foo: "foo" }).then(function (result) { |
after_render 过滤器
渲染完成后,Hexo 会执行相应的 after_render
过滤器。例如,我们可以利用此特性来实现 JavaScript 压缩器。
var UglifyJS = require("uglify-js"); |
检查文件是否可渲染
您可以使用 isRenderable
或 isRenderableSync
方法来检查文件路径是否可渲染。只有在注册了相应的渲染器时,此方法才会返回 true。
hexo.render.isRenderable("layout.swig"); // true |
获取输出扩展名
使用 getOutput
方法获取渲染输出的扩展名。如果文件不可渲染,此方法将返回空字符串。
hexo.render.getOutput("layout.swig"); // html |
禁用 Nunjucks 标签
如果您没有使用 标签插件,并且希望在文章中使用 {{ }}
或 {% %}
而不使用内容 转义,您可以通过以下方式禁用现有渲染器中的 Nunjucks 标签处理:
// following example only applies to '.md' file extension |