Seed

Layouts

Layouts permitem compartilhar estrutura (header, footer, sidebar) entre múltiplas páginas sem repetição.

Como funciona

Um layout é um arquivo .layout que contém o placeholder {content}. Quando uma página é renderizada, seu conteúdo é injetado nesse ponto.

default.layout

```seed
---
title: Meu Site
lang: pt-BR
---

@nav
  @logo
    @image src=/logo.png, alt=Logo
  @menu
    @item href=/
      @title Home
    @item href=/sobre
      @title Sobre

{content}

@footer-custom
  © 2025 Meu Site
```

index.seed (página)

```seed
---
title: Home — Meu Site
---

@hero
  @title
    Bem-vindo
```

O Seed substitui {content} pelo HTML renderizado da página. O title da página prevalece sobre o do layout.

Descoberta automática de layout

O Seed busca automaticamente o arquivo default.layout subindo na árvore de diretórios a partir da página. Você pode ter layouts específicos para subseções:

```
src/
├── default.layout       ← usado por todas as páginas abaixo
├── index.seed
├── sobre.seed
└── blog/
    ├── default.layout   ← sobrescreve para páginas em /blog/
    ├── post1.seed
    └── post2.seed
```

Layout explícito

Você pode apontar para um layout específico via front matter:

```seed
---
title: Página Especial
layout: layouts/minimal
---
```

O caminho é relativo ao arquivo atual. A extensão .layout é adicionada automaticamente.

Meta merging

O front matter da página sobrescreve o do layout. Isso permite que o layout defina padrões (idioma, CSS) e cada página personalize o que precisar (title, og:image, etc.).

```yaml
# default.layout front matter
title: Meu Site
lang: pt-BR

# index.seed front matter (sobrescreve title)
title: Home — Meu Site
```