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 ```