🌱 Seed

Front Matter

Front matter é um bloco YAML opcional no início de cada arquivo .seed, delimitado por ---. Ele configura metadados e comportamento da página.

Referência completa

ChaveTipoDescrição
titlestringTítulo da página — aparece na tag <title>
descriptionstringDescrição da página — gera <meta name="description"> no <head> (útil para SEO)
og_descriptionstringSobrescreve description apenas na tag og:description — o <meta name="description"> continua usando description
langstringIdioma da página — atributo lang do <html> (ex: "pt-BR", "en")
layoutstring ou falseCaminho para um layout específico, relativo ao arquivo .seed. Se omitido, o Seed busca default.layout automaticamente. Use false para desativar o layout na página.
cssstring ou listaArquivo(s) CSS a incluir no <head> (ex: /static/tema.css)
jsstring ou listaArquivo(s) JS a incluir antes do </body> (ex: /static/meu-script.js)
faviconstringURL do ícone da aba do browser — gera <link rel="icon" href="..."> no <head> (ex: /static/favicon.ico)
body-classstringClasses CSS adicionadas ao elemento <body> da página
publish_datedata ou datetimeInício da publicação. Página fica oculta do build até essa data. Alimenta datePublished (JSON-LD) e article:published_time
update_datedata ou datetimeÚltima atualização. Alimenta dateModified (JSON-LD), article:modified_time e <lastmod> do sitemap
expire_datedata ou datetimeFim da publicação (exclusivo). Página some do build a partir dessa data
creation_datedata ou datetimeData de criação, apenas informativa — nunca inferida automaticamente
draftbooldraft: true marca a página como rascunho — ela não é construída: não vai para dist/, nem para o sitemap, nem para o llms.txt
imagestring ou falseImagem social (og:image/twitter:image). false desativa até a imagem global do seed.yaml
image_alt / image_width / image_heightstring / númeroMetadados da imagem social — og:image:alt, og:image:width, og:image:height (e equivalentes Twitter)
altstringAtalho para image_alt — usado como fallback quando image_alt não está definido
og_typestringSobrescreve og:type (padrão: article quando há publish_date, senão website)
schema_typestringSobrescreve o @type do JSON-LD gerado (padrão: Article) — ex: BlogPosting, NewsArticle
author, author_name, author_url, author_sameasbool / stringAutoria da página. Veja SEO & Metadados para a precedência completa (página → coleção → person: global)
hreflanglistaAlternativas de idioma explícitas ({lang, href}) — Seed nunca inventa URLs traduzidas
robots / noindexstring / bool<meta name="robots">. noindex: true também remove a página do sitemap
sitemapboolsitemap: false remove a página do sitemap sem afetar indexação
llmsboolllms: false exclui a página apenas do llms.txt/llms-full.txt — o resto do build não é afetado
tagslistaTags de um item de coleção — alimentam as páginas de arquivo por tag (tags: true na coleção)

Para o conjunto completo de campos de SEO/metadados (Open Graph, Twitter Cards, JSON-LD, breadcrumbs), veja SEO & Metadados.

Exemplos

Página simples

```seed
---
title: Home
lang: pt-BR
---
```

Com CSS e JS

```seed
---
title: Dashboard
lang: pt-BR
css: /static/dashboard.css
js:
  - /static/chart.min.js
  - /static/dashboard.js
---
```

Com descrição para SEO

```seed
---
title: Sobre nós
description: Conheça a equipe e a missão da empresa.
---
```

Com favicon

```seed
---
title: Minha Página
favicon: /static/favicon.ico
---
```

O favicon pode ser definido no layout para aplicar a todas as páginas, ou em páginas individuais para sobrescrever o padrão do layout.

No build, se nenhuma página definir favicon, o Seed injeta automaticamente um favicon padrão com path relativo — sem erros 404.

Com classes no body

```seed
---
title: Página escura
body-class: bg-gray-950 text-white min-h-screen
---
```

Isso gera: <body class="bg-gray-950 text-white min-h-screen">

Valores padrão no build

Quando uma chave não é definida no front matter, o Seed aplica automaticamente:

ChaveFallback automático
titleNome do arquivo sem extensão (ex: about.seedabout)
descriptionValor de title (definido ou gerado)
faviconFavicon padrão do Seed copiado para dist/static/favicon.ico

Uso no template

Qualquer valor definido no front matter (incluindo campos customizados) pode ser acessado no template .seed ou no layout usando a sintaxe de chaves {chave}:

```seed
---
title: Meu Projeto
author: Ana Silva
---

@h1
  {title}

@p
  Escrito por: {author}
```

Isso funciona tanto no corpo do arquivo .seed quanto no arquivo de layout. Se a chave não existir, o texto {chave} permanece literal no HTML final.

Merge com o layout

O front matter da página se mescla com o do layout — a página sempre tem a palavra final. Para body-class, o merge é inteligente: as classes são combinadas usando a mesma regra dos componentes, onde a página vence conflitos por tipo de classe.

Exemplo: se o layout define body-class: font-sans antialiased e a página define body-class: bg-gray-950 text-white, o resultado é font-sans antialiased bg-gray-950 text-white — as classes de tipografia do layout são preservadas e as classes de cor da página são adicionadas.

Feito com ❤️ e Seed