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

Pontos de extensão existentes

O Pocket Banana não possui API pública de plugins, eventos de build ou descoberta automática de serviços. Os pontos abaixo são seams internos e sua alteração exige uma nova versão da engine.

PageProvider

Core\Kernel\Contracts\PageProvider define all() e notFound(). PagePageProvider é a única implementação e os consumidores atuais o referenciam diretamente em vários pontos; criar outra implementação não basta sem alterar a composição.

BuildStage

Um estágio implementa nome, label e run(BuildContext). BuildPipeline aceita qualquer lista de estágios, mas BuildCommand usa a lista fixa de BuildPipeline::default(). Acrescentar um estágio exige implementá-lo e mudar essa composição.

Open Graph TypeExtension

Tipos de Collection são resolvidos por classes concretas em Core\Head\Social\OpenGraph que implementam TypeExtension e fornecem slug(). O registry descobre essas classes pelo filesystem. Um novo tipo pode ser reconhecido assim, mas enriquecimento e metadata autoral exigem suporte explícito nas camadas de conteúdo.

Head groups

HeadGroup produz elementos e Head::with() registra grupos nomeados. A criação de heads para páginas, porém, converge em HeadFromContentMeta; expor um novo campo ao usuário exige DTO, lint, validação, hidratação e integração nesse construtor.

Layouts, componentes e assets de Content/ são pontos de customização do site, não extensões do Core. Prefira-os quando o objetivo for somente mudar apresentação.