ADR-0020: Hub Central, Portais Dedicados e Resolução de Ativos Absolutos | Wiki
ADR-0020: Hub Central, Portais Dedicados e Resolução de Ativos Absolutos
Este documento especifica a decisão de arquitetura para a reestruturação da topologia do gerador estático gbr_ssg, estabelecendo portais estáticos dedicados (/blog/, /wiki/), um Hub Central na raiz (/) e a padronização de caminhos de ativos globais.
1. Contexto e Motivação
À medida que o gerador gbr_ssg evoluiu para suportar múltiplos layouts (site, wiki, blog), identificamos duas necessidades críticas:
1. *Ativos Desformatados por Profundidade de Caminho:* Documentos em subpastas (como /blog/primeiro-post.html ou /private/blueprint/index.html) perdiam o estilo Tailwind caso as tags de cabeçalho utilizassem caminhos relativos de CSS.
2. *Organização de Portais:* A navegação do ecossistema necessita de portais dedicados com seus próprios índices agregadores:
- /dist/index.html $\rightarrow$ Hub Central com atalhos para os 3 portais (Consultoria, Wiki, Blog).
- /dist/blog/index.html $\rightarrow$ Portal do Blog com listagem cronológica dos artigos.
- /dist/wiki/index.html $\rightarrow$ Portal da Wiki/Documentação com navegação por Sidebar.
2. Decisão Arquitetural
-
*Padronização de Ativos Globais Absolutos (Absolute Assets):* Todos os arquivos de folha de estilo, scripts e mídias globais devem ser referenciados utilizando caminhos absolutos a partir da raiz da aplicação (ex:
/assets/css/main.cssou CDN absoluto). Isso garante que o navegador resolva os estilos com perfeição independentemente da profundidade do arquivo HTML no sistema de arquivos. -
*Topologia de Portais Dedicados:* - **Hub Raiz (
/):** Atua como a página de destino principal com atalhos visuais para Consultoria B2B, Base de Conhecimento e Blog. - **Portal do Blog (/blog/):** O arquivoblog/index.djot(ou componente compilador de índice) renderiza a grade de artigos ordenados por data. - **Portal da Wiki (/wiki/):** O arquivodocs/index.djotouwiki/index.djotatua como a porta de entrada da Base de Conhecimento.
3. Requisitos EARS
*Requisitos Ubíquos (Ubiquitous Requirements)*
- *UBQ-01 (Injeção de Ativos Absolutos):* Todas as funções de layout (layout_site, layout_wiki, layout_blog) DEVEM injetar referências de folhas de estilo e scripts utilizando caminhos absolutos a partir da raiz (ex: /assets/...), prevenindo quebras de estilo em subdiretórios.
- *UBQ-02 (Índices Agregadores de Portal):* O motor de build DEVE garantir a compilação dos portais dedicados /blog/index.html e /wiki/index.html com listagens ordenadas correspondentes a cada contexto.