# 渲染
在 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)