# 渲染
在 Hexo 中,有兩個方法可用于渲染文件或字符串,分別是非同步的 `hexo.render.render` 和同步的 `hexo.render.renderSync`,這兩個方法的使用方式十分類似,因此以下僅以非同步的 `hexo.render.render` 為例。
## 渲染字符串
在渲染字符串時,您必須指定 `engine`,如此一來 Hexo 才知道該使用哪個渲染引擎來渲染。
```
hexo.render.render({text: 'example''swig'functionresult{ // ...
});
```
## 渲染文件
在渲染文件時,您無須指定 `engine`,Hexo 會自動根據擴展名猜測所要使用的渲染引擎,當然您也可以使用 `engine` 指定。
```
hexo.render.render({path: 'path/to/file.swig'functionresult{ // ...
});
```
## 渲染選項
在渲染時,您可以向第二個參數中傳入參數。
```
hexo.render.render({text: '''foo'functionresult{ // ...
});
```
## after_render 過濾器
在渲染完成后,Hexo 會自動執行相對應的 `after_render` 過濾器,舉例來說,我們可以通過這個功能實現 JavaScript 的壓縮。
```
varrequire'uglify-js'
hexo.extend.filter.register('after_render:js'functionstr, data{ var
return
});
```
## 檢查文件是否可被渲染
您可以通過 `isRenderable` 或 `isRenderableSync` 兩個方法檢查文件路徑是否可以被渲染,只有在相對應的渲染器(renderer)已注冊的情況下才會返回 true。
```
hexo.render.isRenderable('layout.swig'// true
hexo.render.isRenderable('image.png'// false
```
## 獲取文件的輸出擴展名
您可以通過 `getOutput` 方法取得文件路徑輸出后的擴展名,如果文件無法渲染,則會返回空字符串。
```
hexo.render.getOutput('layout.swig'// html
hexo.render.getOutput('image.png'// '''
```
- 文檔
- 開始使用
- 概述
- 建站
- 配置
- 指令
- 遷移
- 基本操作
- 寫作
- Front-matter
- 標簽插件(Tag Plugins)
- 資源文件夾
- 數據文件
- 服務器
- 生成文件
- 部署
- 自定義
- 永久鏈接(Permalinks)
- 主題
- 模版
- 變量
- 輔助函數(Helpers)
- 國際化(i18n)
- 插件
- 其他
- 問題解答
- 貢獻
- API
- 核心
- 概述
- 事件
- 局部變量
- 路由
- Box
- 渲染
- 文章
- 腳手架(Scaffold)
- 主題
- 擴展
- 控制臺(Console)
- 部署器(Deployer)
- 過濾器(Filter)
- 生成器(Generator)
- 輔助函數(Helper)
- 遷移器(Migrator)
- 處理器(Processor)
- 渲染引擎(Renderer)
- 標簽插件(Tag)