ADR 0253 — O site de docs deixa o Docusaurus
- Status: aceito
- Data: 2026-11-04
- Tema:
docs - Referencia: os ADRs 0117, 0206, 0216 e 0220. Nenhum deles é editado.
Contexto
O site de documentação é Docusaurus 3 lendo docs/ (AT-662, EP-031, decisão do dono de 02/11/2026). O framework traz uma árvore de dependências que nunca chega a imagem nenhuma e já exigiu lockfile isolado (0117) e dezenove overrides, o índice de busca pesa cerca de 25 MB por idioma, e o tema segue o Infima, não o design system do produto. O molde de um gerador próprio já existe no site/ do projeto Smartsky (cerca de 1,3 mil linhas, markdown-it, sem framework).
Decisão
- Gerador próprio em
scripts/docs/site/(ESM,markdown-iteshikiemscripts/package.json), com saída embuild/docs-site/, caminhos relativos e as MESMAS URLs e âncoras{#id}do site de hoje (x.mdvirax.html,pasta/index.mdvirapasta.html,introviraindex.html, outros idiomas sob/<locale>/). Cada idioma é montado com o conjunto INTEIRO de páginas (tradução ou fonte pt-BR no mesmo endereço), então o link nunca sai do idioma. - A referência da API fica no Redoc 3, com texto do spec traduzido pelo catálogo por hash do 0220 (que não muda) e a telemetria desligada de forma explícita. O Redoc 3 removeu a opção
labels: os rótulos da INTERFACE do Redoc (Request samples, Responses…) voltam a ser em inglês nos quatro idiomas, preço aceito pelo dono. O 0206 muda de renderizador (sem redocusaurus) e o 0220 mantém o catálogo. - As traduções vão para
docs/i18n/<locale>/, deixando de morar emwebsite/i18n/…/docusaurus-plugin-content-docs/current/(a paridade, oopenapi-textos.jsone os guias seguem o caminho novo). O caminho é uma constante do gerador. - Busca por substring normalizada, sem stemming, com índice por idioma carregado só quando a pessoa busca; a página da API mantém a busca do Redoc.
- O 0117 perde o objeto onde o
website/deixa de ter Docusaurus; o isolamento do lockfile só continua para a árvore do Redoc. - Mantidos: a publicação por degrau do 0073, os quatro idiomas e a fonte pt-BR do 0216, o
noindexfora damain, o aviso de fase de teste, "editar esta página" e "última atualização".
Consequências
- Perde-se o ranking da busca do lunr, o realce do termo na página destino e
search.html. - A migração é por etapas: o gerador roda ao lado (
pnpm docs:site) até a troca do CI e do deploy, que é um único PR. - O CLAUDE.md e as partes de contexto que citam o Docusaurus mudam na troca, não antes.