Skip to main content
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

{{ variavel }}
Olá, {{ user.name }}!
Seu e-mail é {{ user.email }}.
Resultado:
Olá, João Silva!
Seu e-mail é [email protected].

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 usuario.idade >= 18 %}
  Você é maior de idade.
{% 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 %}
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)

Loops com ranges

{% 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 }}
{{ 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 #}

Filtros especiais da Olie

Cria uma menção de usuário automaticamente.
{{ usuario|mention }}
Saiba mais sobre menções →
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.