#### 示例
```html
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
```
#### 用法
```javascript
var template = ejs.compile(str, options);
template(data);
// => 渲染 HTML 字符串
ejs.render(str, data, options);
// => 渲染 HTML 字符串
```
#### 选项
* `cache` 表示编译过的函数会被缓存,需要 `filename`
* `filename` 表示被 `cache` 用做缓存的键,用于包含
* `context` 表示函数的执行上下文
* `compileDebug` 如果值为 `false`,不会编译调试用的工具
* `client` 表示返回独立的编译后的函数
* `delimiter` 表示开启或者闭合尖括号所用的字符
* `debug` 表示输出生成的函数体
* `_with` 表示是否使用 `with() {}` 结构。如果为 `false` 则局部数据会储存在 `locals` 对象中
#### 标签
* `<%` 'Scriptlet' 标签, 用于控制流,没有输出
* `<%=` 向模板输出值(带有转义)
* `<%-` 向模板输出没有转义的值
* `<%#` 注释标签,不执行,也没有输出
* `<%%` 输出字面的 '<%'
* `%>` 普通的结束标签
* `-%>` Trim-mode ('newline slurp') 标签, 移除随后的换行符
#### 包含
包含要么是绝对路径,或者如果不是的话,被视为相对于调用 `include` 的模板的路径(需要 `filename` 选项)。 例如,你在 `./views/users.ejs` 中包含 `./views/user/show.ejs`,你应该使用 `<%- include('user/show') %>`。
你可能会用到原始输出标签(`<%-`)避免二次转义HTML输出。
```html
<ul>
<% users.forEach(function(user){ %>
<%- include('user/show', {user: user}); %>
<% }); %>
</ul>
```
#### 自定义分隔符
自定义分隔符可以以模板为单位应用,或者全局:
```javascript
var ejs = require('ejs'),
users = ['geddy', 'neil', 'alex'];
// Just one template
ejs.render('<?= users.join(" | "); ?>', {users: users},
{delimiter: '?'});
// => 'geddy | neil | alex'
// Or globally
ejs.delimiter = '$';
ejs.render('<$= users.join(" | "); $>', {users: users});
// => 'geddy | neil | alex'
```