Documentation Index Fetch the complete documentation index at: https://docs.olie.ai/llms.txt
Use this file to discover all available pages before exploring further.
Esse recurso requer conhecimento de lógica e normalmente é usada por usuários avançados.
Visão geral
É possível utilizar sintaxe avançada para deixar os blocos de texto, automações e templates ainda mais inteligentes e adaptáveis ao contexto. Essa funcionalidade permite incorporar lógica condicional, iteração de listas, e até chamadas de funções de consulta.
A sintaxe avançada transforma conteúdos estáticos em templates dinâmicos que se adaptam automaticamente aos dados disponíveis.
Conceitos-chave
Variáveis dinâmicas Acesse dados com chaves delimitadas por {{ ... }}. Exemplos:
{{ nome }}
{{ etapa.atual }}
{{ project.data_inicio }}
Condicionais (if/else) Mostre conteúdos diferentes baseado em condições lógicas. {% if cliente . vip %}
Bem-vindo, cliente especial!
{% else %}
Olá! Obrigado por estar conosco.
{% endif %}
Loops (for) Itere sobre listas e gere blocos repetitivos. {% for item in pedidos %}
Pedido nº {{ item . numero }}
{% endfor %}
Filtros Transforme dados com funções especiais. Exemplos:
{{ nome|upper }}
{{ data|date("d/m/Y") }}
{{ itens|length }}
Variáveis dinâmicas
As variáveis permitem inserir dados dinamicamente no conteúdo.
Sintaxe básica
Variáveis simples
Variáveis aninhadas
Arrays e listas
Olá, {{ user . name }}!
Seu e-mail é {{ user . email }}.
Resultado: Projeto: {{ project . code }} - {{ project . name }}
Cliente: {{ project . customer . name }}
Status: {{ project . status }}
Resultado: Projeto: P-1 - Website Institucional
Cliente: Acme Corp
Status: 1
{% set lista = [ 'A' , 'B' , 'C' ] %}
Primeiro item: {{ lista [ 0 ] }}
Último item: {{ lista [-1] }}
Total de itens: {{ lista | length }}
Resultado (se lista = [‘A’, ‘B’, ‘C’]): Primeiro item: A
Último item: C
Total de itens: 3
Verificação de existência
Antes de usar uma variável, você pode verificar se ela existe:
{% if variavel is defined %}
A variável existe: {{ variavel }}
{% else %}
A variável não está disponível
{% endif %}
Use is defined para evitar erros quando uma variável pode não estar disponível em todos os contextos.
Condicionais
Condicionais permitem exibir conteúdo diferente baseado em condições.
Estrutura if/else
If simples
If/Else
If/Elseif/Else
{% if usuario . idade >= 18 %}
Você é maior de idade.
{% endif %}
{% if project . impact < 3 %}
⚠️ URGENTE: Este projeto requer atenção imediata!
{% else %}
📋 Projeto regular
{% endif %}
{% if project . impact < 3 %}
✅ Projeto de alto impacto
{% elseif project . impact < 5 and project . impact > 3 %}
🚀 Projeto de médio impacto
{% else %}
⚠️ Projeto de baixo
{% endif %}
Operadores de comparação
{% if valor == 10 %} {# Igual a #}
{% if valor != 10 %} {# Diferente de #}
{% if idade > 18 %} {# Maior que #}
{% if idade >= 18 %} {# Maior ou igual #}
{% if idade < 18 %} {# Menor que #}
{% if idade <= 18 %} {# Menor ou igual #}
{% if a and b %} {# E lógico #}
{% if a or b %} {# OU lógico #}
{% if not a %} {# NÃO lógico #}
{% if variavel is defined %} {# Está definida #}
{% if variavel is null %} {# É nula #}
{% if variavel is empty %} {# É vazia #}
{% if numero is even %} {# É par #}
{% if numero is odd %} {# É ímpar #}
Loops (for)
Loops permitem iterar sobre listas e arrays para gerar conteúdo repetitivo.
Estrutura básica
{% for item in lista %}
{{ item }}
{% endfor %}
Lista simples
Com índice
Com condicionais
Loop vazio
Membros da equipe:
{% for membro in equipe %}
- {{ membro . nome }} ({{ membro . cargo }})
{% endfor %}
Resultado: Membros da equipe:
- João Silva (Desenvolvedor)
- Maria Santos (Designer)
- Carlos Oliveira (Gerente)
{% for item in lista %}
{{ loop . index }}. {{ item }}
{% endfor %}
Variáveis especiais do loop:
loop.index - Índice atual (começa em 1)
loop.index0 - Índice atual (começa em 0)
loop.first - True na primeira iteração
loop.last - True na última iteração
loop.length - Total de itens
{% for tarefa in tarefas %}
{% if tarefa . status == 'pendente' %}
⏳ {{ tarefa . nome }} - Pendente
{% endif %}
{% endfor %}
{% for item in lista %}
- {{ item }}
{% else %}
Nenhum item encontrado.
{% endfor %}
O bloco else é executado se a lista estiver vazia.
{% for i in 1 .. 5 %}
Número {{ i }}
{% endfor %}
Resultado:
Número 1
Número 2
Número 3
Número 4
Número 5
Use ranges para criar sequências numéricas facilmente.
Filtros
Filtros transformam dados antes de exibi-los.
Sintaxe de filtros
{{ variavel | filtro }}
{{ variavel | filtro( parametro ) }}
{{ variavel | filtro1 | filtro2 }}
Texto
Números
Datas
Arrays
Objetos
{{ nome | upper }} {# JOÃO SILVA #}
{{ nome | lower }} {# joão silva #}
{{ nome | capitalize }} {# João silva #}
{{ nome | title }} {# João Silva #}
{{ texto | trim }} {# Remove espaços #}
{{ texto | length }} {# Conta caracteres #}
{{ texto | json }} {# Converte para JSON #}
{{ texto | json( true ) }} {# Converte para JSON com identação #}
{{ preco | number_format ( 2 , ',' , '.' ) }}
{# 1.234,56 #}
{{ valor | round }} {# Arredonda #}
{{ valor | round ( 2 ) }} {# 2 decimais #}
{{ valor | abs }} {# Valor absoluto #}
{{ data | date ( "d/m/Y" ) }} {# 21/01/2026 #}
{{ data | date ( "d/m/Y H:i" ) }} {# 21/01/2026 14:30 #}
{{ data | date ( "F Y" ) }} {# Janeiro 2026 #}
{{ lista | length }} {# Tamanho #}
{{ lista | first }} {# Primeiro item #}
{{ lista | last }} {# Último item #}
{{ lista | join ( ', ' ) }} {# Une com vírgula #}
{{ lista | reverse }} {# Inverte ordem #}
{{ lista | sort }} {# Ordena #}
{{ lista | unique }} {# Remove duplicatas #}
{{ lista | json }} {# Converte para JSON #}
{{ lista | json( true ) }} {# Converte para JSON com identação #}
{{ objeto | json }} {# Converte para JSON #}
{{ objeto | json( true ) }} {# Converte para JSON com identação #}
Filtros especiais da Olie
Define um valor padrão se a variável for vazia. {{ nome | default ( 'Nome não informado' ) }}
Escapa caracteres especiais para segurança. {{ texto | escape }}
{{ texto | e }} {# Atalho #}
Converte para JSON. Muito útil para debugar e exibir dados em formato JSON. {{ lista | json }} {# Converte para JSON #}
{{ lista | json( true ) }} {# Converte para JSON com identação #}
Como funciona o mecanismo
Por trás da sintaxe avançada, a plataforma utiliza um mecanismo baseado no Twig , uma das engines de templates mais modernas e seguras do ecossistema web.
O Twig é amplamente adotado por frameworks robustos e foi adaptado aqui para permitir automação lógica dentro dos conteúdos da plataforma , de forma controlada e intuitiva.
Documentação oficial do Twig
Para usuários avançados ou desenvolvedores, vale a pena conferir a documentação oficial do Twig para explorar todo o potencial da sintaxe:
Documentação do Twig Acesse a documentação completa do Twig para aprender sobre recursos avançados, filtros adicionais e melhores práticas.