Descoberta de conteúdo
PagePageProvider é a única implementação de Core\Kernel\Contracts\PageProvider. allFrom() resolve a raiz por Paths, percorre Content/Pages com iteradores recursivos e ordena os arquivos candidatos.
Antes de interpretar conteúdo, o provider:
- descobre todas as pastas
_nome, exceto_errors; - chama
CollectionStructureValidatorpara carregar configurações e localizar páginas-mãe; - classifica cada candidato como MDX ou Blade e calcula seu path;
- chama
RouteCollisionValidatorpara falhar antes de parsing caro.
Blade segue para leitura do sidecar. MDX passa por front matter, cascata, Markdown, cálculo de readingTime e geração de uma view. Ambos convergem em ContentMeta, HeadFromContentMeta e Route.
Depois de todas as rotas construídas, ContentSummaryFactory agrega itens por nome de Collection. injectItemsIntoParents() reconstrói as rotas imutáveis da página-mãe e dos itens com data['items'].
notFoundFrom() executa a descoberta e procura path /404; não escolhe simplesmente a primeira rota marcada como erro, pois outros códigos podem coexistir.
Não existe cache de rotas entre chamadas do provider. O servidor dinâmico, os geradores e a inicialização das views podem executar novas descobertas no mesmo processo ou request, aspecto relevante para desempenho de árvores grandes.