Template Engine no TucanoDocs

A engine de templates do TucanoDocs é uma linguagem de templates flexível e eficiente. Ela permite a criação de documentos dinâmicos utilizando variáveis, expressões e loops que interagem diretamente com os dados em JSON. Vamos explorar as principais funcionalidades da template engine.

Variáveis

Para acessar valores no JSON, basta referenciar os campos diretamente no template usando variáveis. Você pode exibir qualquer valor dentro do seu objeto de dados com a sintaxe:

1{{ campo }}

No exemplo acima, {{ campo }} exibirá o valor do campo campo no JSON. Substitua campo pelo nome do atributo que você quer acessar.

Condicionais (if/else)

As condicionais são úteis para exibir conteúdo com base em condições. Abaixo, mostramos como usar if e else para lógica condicional:

1{% if campo == 'valor' %}
2 <p>O campo é igual a 'valor'</p>
3{% else %}
4 <p>O campo tem outro valor</p>
5{% endif %}

Neste exemplo, se o valor de campo for igual a 'valor', será exibido o parágrafo O campo é igual a 'valor'. Caso contrário, o parágrafo alternativo será mostrado.

Loops (for)

Loops são essenciais para trabalhar com listas de dados. Com for, você pode iterar sobre arrays no JSON e renderizar cada item no template:

1{% for item in lista %}
2 <div>
3 <h3>{{ item.nome }}</h3>
4 <p>{{ item.descricao }}</p>
5 </div>
6{% endfor %}

No exemplo acima, o loop percorre a lista de objetos e exibe o nome e a descrição de cada item. Substitua lista pelo nome do array de dados que você está iterando.

Filtros

Filtros permitem modificar ou formatar dados diretamente no template. Eles são aplicados a variáveis e podem alterar o conteúdo de forma simples:

1{{ campo | upper }}

O exemplo acima usa o filtro upper para transformar o valor de campo em letras maiúsculas. Outros filtros disponíveis incluem lower, date, entre outros.

Macros

Macros são como funções reutilizáveis que você pode definir no template para evitar repetição de código. Um exemplo simples:

1{% macro saudacao(nome) %}
2 <p>Olá, {{ nome }}!</p>
3{% endmacro %}
4
5{{ saudacao("Maria") }}

Neste exemplo, o macro saudacao recebe um nome e exibe uma saudação personalizada. Chamamos a macro com o nome "Maria", resultando em Olá, Maria! no documento gerado.

Funções personalizadas

Você pode criar funções personalizadas para usar diretamente no seu template. Por exemplo:

1{% set total = 0 %}
2{% for item in lista %}
3 {% set total = total + item.valor %}
4{% endfor %}
5<p>Total: {{ total }}</p>

Este exemplo calcula o total somando o valor de cada item em uma lista, e exibe o total ao final.

Conclusão

A template engine do TucanoDocs oferece grande flexibilidade na criação de documentos dinâmicos. Com variáveis, condicionais, loops, filtros e macros, você pode criar templates sofisticados de maneira eficiente e organizada. Explore as funcionalidades e personalize seus documentos conforme a necessidade.