> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bukiopay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sintaxe

> Como exibir dados, usar condições, repetir listas e incluir componentes nos templates EJS.

Os templates usam **EJS**: HTML normal com trechos de JavaScript entre `<% %>`.

## Exibir um valor

```html theme={null}
<h1><%= store.name %></h1>
```

O `<%= %>` escapa o conteúdo automaticamente, então é seguro para texto vindo do cliente.

<Warning>
  `<%- %>` insere HTML sem escapar. Use apenas com conteúdo que você mesmo controla, nunca com texto digitado por clientes.
</Warning>

## Condições

```html theme={null}
<% if (product.stock === 0) { %>
  <span class="esgotado">Esgotado</span>
<% } else { %>
  <button>Comprar</button>
<% } %>
```

## Repetir uma lista

```html theme={null}
<% products.forEach(function (product) { %>
  <div class="card">
    <h3><%= product.name %></h3>
    <p><%= formatPrice(product.price) %></p>
  </div>
<% }) %>
```

## Incluir um componente

```html theme={null}
<%- include('@components/product-card.html', { product: product }) %>
```

O segundo argumento passa dados ao componente. Sem ele, o componente recebe os mesmos dados da página.

## Declarar o layout

No topo da página:

```html theme={null}
<% layout('@layouts/layout.html', { page_title: 'Início' }) %>
```

<Warning>
  Não apague essa linha ao editar uma página. Sem layout, a página renderiza sem `<head>` e sem estilos.
</Warning>

## Formatar preço

`formatPrice` transforma um número em moeda brasileira:

```html theme={null}
<%= formatPrice(19.9) %>
<!-- R$ 19,90 -->
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.