Pular para o conteúdo
Navegar na documentação
Nesta página

Collections

Toda pasta cujo nome começa com _, exceto _errors, é uma Collection. A pasta precisa conter _collection.yaml; sua pasta pai precisa conter index.blade.php ou index.mdx como página-mãe irmã.

Content/Pages/blog/
├── index.blade.php
├── meta.yaml
└── _posts/
    ├── _collection.yaml
    ├── primeiro.mdx
    └── 2026/segundo.mdx

O segmento _posts é removido antes do roteamento normal. Os itens acima geram /blog/primeiro e /blog/2026/segundo.

_collection.yaml

type: article
mdx_source: true
feed: true
defaults:
  sitemap:
    priority: 0.7
    changefreq: monthly
  social:
    openGraph:
      article:
        section: Blog

type é obrigatório e string. defaults, quando presente, precisa ser um mapa de metadata válido; title não é exigido nesse mapa.

feed: true publica Atom e RSS para os itens MDX indexáveis da Collection em /manual/atom.xml e /manual/rss.xml (ou no caminho da página-mãe). O título e a descrição vêm da página-mãe. Itens Blade são ignorados. O conteúdo completo é publicado em HTML, e a página-mãe anuncia os dois feeds no <head>.

Uma Collection composta somente por MDX pode publicar todo o seu conteúdo em um único arquivo Markdown:

type: article
llms_full:
  output: llms-full.txt
  order_by:
    - extra.nav.sectionOrder
    - extra.nav.pageOrder

A presença de llms_full habilita a saída. output é obrigatório, relativo à rota da página-mãe, precisa terminar em .txt e não aceita caminho absoluto ou segmentos ./... order_by aceita dot-paths de metadata em ordem crescente; quando ausente, usa title. Valores ausentes ficam por último, e title e path são desempates determinísticos.

Para disponibilizar as fontes originais dos itens, habilite mdx_source: true no _collection.yaml. Cada item indexável recebe uma cópia literal do arquivo em uma URL com o sufixo .mdx: /blog/primeiro também fica disponível em /blog/primeiro.mdx. O arquivo mantém o front matter completo, Markdown, HTML e componentes Blade escritos pelo autor; nada é executado nessa saída. O llms.txt lista a fonte ao lado da página HTML. Collections com itens Blade não podem habilitar esse recurso.

Para uma página-mãe /manual e output: llms-full.txt, o arquivo público é /manual/llms-full.txt. O consolidado usa título e descrição da página-mãe, remove o front matter, cria um H2 por item, informa sua URL absoluta e normaliza os headings internos sem alterar code fences. Itens noindex ficam de fora. A presença de Blade, uma colisão com rota ou outra saída e configuração insegura interrompem o build. O llms.txt raiz aponta para cada consolidado habilitado.

Slugs aceitos:

article
book
profile
music.album
music.playlist
music.radio_station
music.song
video

Somente article possui enriquecimento automático: datas Git podem produzir publishedTime e modifiedTime. Os demais tipos são reconhecidos, mas não possuem DTO de metadata de usuário ou preenchimento automático no pipeline atual.

Agregação

Todas as páginas recebem $items['posts'], incluindo a página-mãe, cada item e páginas independentes como a home. Cada elemento é um ContentSummary somente leitura:

Propriedade Origem
title metadata title
path rota calculada
excerpt description
date criação no Git; fallback para mtime
cover social.image explícito
extra mapa livre do item
readingTime tempo de leitura gerado do corpo MDX; nulo para Blade

Os resumos são ordenados por date decrescente. Empates preservam apenas o resultado da ordenação executada; não há segundo critério documentado. Filtragem, paginação e outra ordem pertencem ao Blade consumidor.

Collections irmãs com nomes diferentes são chaves diferentes em $items. O nome é usado globalmente para configuração e agregação; nomes repetidos em áreas distintas podem misturar itens e sobrescrever a associação da página-mãe. Use nomes globalmente únicos e não aninhe Collections.

Precedência

Da menor para a maior precedência:

  1. defaults da Collection;
  2. datas Git do tipo article;
  3. metadata já resolvida do item.

O merge é raso no nível raiz. Declarar social, sitemap ou extra substitui o bloco anterior inteiro. O item é validado antes da aplicação dos defaults; portanto defaults.title não pode fornecer o título ausente.

Sem histórico Git, o resumo usa mtime e emite warning. O build falha se faltar configuração ou página-mãe, se o tipo for desconhecido, se defaults não for mapa, se mdx_source não for booleano, se llms_full for inválido, se uma Collection habilitar mdx_source ou llms_full com item Blade, ou se a metadata for inválida. feed ignora itens Blade e publica apenas os itens MDX indexáveis. Pastas utilitárias _nome também são Collections e ficam sujeitas a essas regras.