在 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 |