Pular para o conteúdo
Navegar na documentação

Parsers e pipeline de metadata

FrontMatterParser separa YAML e corpo e devolve um ContentDocument. Ele exige delimitadores completos, aceita CRLF e rejeita YAML que não resulte em mapa.

Para MDX, MetaCascadeResolver_defaults.yaml da raiz à folha e faz merge raso. Em paralelo, MetaKeyOriginResolver registra o arquivo de origem de cada chave raiz para mensagens de lint.

ContentMetaLinter verifica chaves permitidas e sugestões. ContentMetaValidator verifica obrigatoriedade e tipos. ContentMetaHydrator converte o array em ContentMeta e DTOs aninhados como SocialMeta, OpenGraphMeta, ArticleMeta, TwitterCardMeta e SitemapMeta.

Itens de Collection passam posteriormente por outro ciclo array → merge → validação → hidratação em CollectionDefaultsMerger.

MarkdownParser usa GithubFlavoredMarkdownConverter com HTML permitido. A extensão GFM ainda bloqueia tags perigosas.

Depois da conversão, ReadingTimeCalculator conta as palavras do HTML visível, conta imagens e acrescenta 12 segundos por imagem. O resultado é anexado ao ContentMeta somente depois da cascata e dos defaults de Collection, garantindo que ContentSummaryFactory apenas repasse o mesmo objeto sem recalcular.

Como nomes de componentes com ponto não fazem parte da gramática de tags do CommonMark, o parser troca temporariamente os pontos de tags x-* por um placeholder válido e os restaura depois da conversão.

Antes de o HTML intermediário virar Blade real, escapeLiteralBladeSyntax() protege echos e diretivas com o mecanismo de escape nativo. Assim, somente componentes atravessam como Blade executável.