[TOC]
# API
## template(filename, content)
根據模板名渲染模板。
* **參數**:
* `{string} filename`
* `{Object,string} content`
* **返回值**:
* 如果 `content` 為 `Object`,則渲染模板并返回 `string`
* 如果 `content` 為 `string`,則編譯模板并返回 `function`
```js
var html = template('/welcome.art', {
value: 'aui'
});
```
> 瀏覽器版本無法加載外部文件,`filename` 為存放模板的元素 `id`
**示例**
編譯模板并緩存。
```js
// compile && cache
template('/welcome.art', 'hi, <%=value%>.');
// use
template('/welcome.art', {
value: 'aui'
});
```
## .compile(source, options)
編譯模板并返回一個渲染函數。
* **參數**:
* `{string} source`
* `{Object} options`
* **返回值**:`{function}`
**示例**
```js
var render = template.compile('hi, <%=value%>.');
var html = render({value: 'aui'});
```
## .render(source, data, options)
編譯并返回渲染結果。
* **參數**:
* `{string} source`
* `{Object} options`
* **返回值**:`{string}`
**示例**
```js
var html = template.render('hi, <%=value%>.', {value: 'aui'});
```
## .defaults
模板引擎默認配置。參考 [選項](./options.html)。
* **類型**:`{Object}`
## .extension
給 NodeJS `require.extensions` 注冊的模板渲染函數。
* **類型**:`{Object}`
**示例**
加載 `.ejs` 模板:
```js
var template = require('art-template');
require.extensions['.ejs'] = template.extension;
var view = require('./index.ejs');
var html = view(data);
```
`.art` 默認被注冊,可以直接使用:
```js
var template = require('art-template');
var view = require('./index.art');
var html = view(data);
```
需要注意的是:此功能僅對 NodeJS 生效,如果要在瀏覽器中使用模板文件渲染功能,請使用 Webpack [art-template-loader](../webpack)。