# Gerar texto com templates Tangular

> Use Tangular.render() para preencher modelos de e-mails, documentos e mensagens com condições, ciclos e helpers.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: pt
Content-SHA256: a93053e1cddfeac5f737b29ef4cf1a9ca9ee2cb4e03051f9a461e8266015be72
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

O Tangular é a pequena linguagem de templates do Total.js (também corre no navegador com o jComponent). Escreva `{{ value }}` para imprimir um valor com escape, `{{ if expression }}...{{ fi }}` para condições e `{{ foreach item in list }}...{{ end }}` para ciclos. `Tangular.render(template, model)` devolve o texto; use `Tangular.compile(template)` uma vez e chame o resultado muitas vezes nos caminhos críticos.

As variáveis são lidas do modelo, por isso `{{ user.name }}` lê `model.user.name`. A saída tem escape HTML; acrescente o helper `raw` (`{{ html | raw }}`) apenas para conteúdo de confiança.

```js controllers/mail.js
exports.install = function() {
	ROUTE('POST /preview/', preview);
};

var template = 'Hello {{ name }}!{{ if vip }} Thanks for being a VIP.{{ fi }}\n{{ foreach item in items }}- {{ item.title }}\n{{ end }}';

function preview($) {
	$.plain(Tangular.render(template, $.body));
}
```
