Implement Phase 2 of i18n spec: - Extract UI interface strings to messages/pt.json across 15 namespaces - Extract canonical data files to data/pt/ (series, frameworks, conexoes) - Create lib/data/pt/ modules (glossario, diagnostico, componentes, topicos) - Implement lib/data/index.js async data loaders by locale - Add automated check:i18n script to validate key parity and enforce no-book rules Co-Authored-By: Antigravity <noreply@google.com>
5.3 KiB
5.3 KiB
Registro de mudanças
Tudo o que muda de relevante no ESPDocs está aqui. O formato segue o Keep a Changelog e o projeto segue o Versionamento Semântico.
Não lançado
Adicionado
- Infraestrutura de internacionalização com
next-intl(Fase 1):- Roteamento com prefixo de idioma sob
app/[locale]/, com 6 locales declarados (pt,en,es,fr,de,zh-CN). middleware.jscom negociação de idioma na raiz por cookieNEXT_LOCALEe cabeçalhoAccept-Language(com pesosq), redirecionamento 308 de URLs antigas sem prefixo para/pt/, e retorno 404 para/livrofora do português.- Seletor de idiomas acessível no cabeçalho com atalho para os 6 idiomas, persistência via cookie
NEXT_LOCALEe mapeamento de rota correspondente. - Regras de tipografia de sistema CJK para
zh-CNe hifenização/quebra de palavras paradeefr.
- Roteamento com prefixo de idioma sob
- Extração de strings e dados canônicos (Fase 2):
- Catálogo de mensagens canônico
messages/pt.jsoncobrindo 15 namespaces de páginas e componentes sem alteração de conteúdo. - Conjunto de dados canônicos em
data/pt/(series.json,frameworks.json,conexoes/*.json) e módulos emlib/data/pt/(glossario.js,diagnostico.js,componentes.js,topicos.js) com carregadores por locale emlib/data/index.js. - Script automatizado de validação
check:i18nintegrado aonpm run check, verificando paridade de chaves, ausência de valores vazios e garantia estrita de ausência de referências ao livro fora do português.
- Catálogo de mensagens canônico
1.1.0 - 2026-11-01
Adicionado
- Busca no site, aberta pelo botão do cabeçalho ou por Ctrl/⌘+K. O índice
(séries, frameworks, glossário, erros de diagnóstico, componentes e conexões)
é gerado no build, em
/api/busca.
Alterado
- Os links do repositório do projeto (rodapé, "Sobre", dados estruturados) apontam para o Gitea, e o ícone do GitHub virou o do Gitea. Os links dos frameworks da Espressif continuam no GitHub, porque os repositórios são deles.
- O site passou a rodar na Oracle, a partir da imagem Docker do registro do
Gitea, em
espdocs.cienciaembarcada.com.breespdocs.lucasrguerra.dev.br. - CI: a imagem é construída, escaneada e testada uma vez, em arm64, no push da
branch, e o release só aplica as tags; o gatilho
pull_request(que repetia o push) e o segundonext builddo job de lint saíram, e os caches do npm e da compilação do Next ficam entre as execuções.
1.0.0 - 2026-10-30
A primeira versão com tag. O trabalho anterior nunca foi tagueado, então esta entrada resume tudo desde o primeiro commit, em 2025-10-21, até a imagem Docker.
Conteúdo
- Documentação não oficial do ecossistema ESP32 em português: uma página por série de chips, com especificações, conexões e consumo, e a página de comparação lado a lado.
- Diagramas interativos de conexões e componentes, com o esquema de dados de conexões padronizado.
- Frameworks documentados: ESP-IDF, Arduino, MicroPython, ESP-RainMaker e ESP-Matter.
- Glossário técnico, página "Sobre" e chamadas para o catálogo.
- Catálogo de placas de desenvolvimento a partir de uma planilha do Google
(
/api/placas), com filtros e cache de 10 minutos. - Ferramenta de seleção: perguntas sobre o projeto (Ethernet, tela e outras) e recomendação da série mais adequada.
- Novos modelos, incluindo o ESP32-H4, e a contagem de componentes e de drivers (interface, conectividade e áudio) ampliada.
Interface e acessibilidade
- Tema escuro e redesenho das páginas internas no novo sistema de design, com
contraste AAA e auditoria automática de temas e de páginas (
npm run check). - Identidade nova: logo, ícones,
manifeste imagens Open Graph. - SEO: mapa do site, dados estruturados, trilhas de navegação e favicons.
- Exportação do conteúdo em PDF CMYK e dos slides de treinamento em PDF 16:9, gerados com Puppeteer (scripts locais).
Dados corrigidos
- Revisão dos dados das séries contra os datasheets oficiais da Espressif: consumo, temperatura, ADC, PSRAM, memória LP, CAN FD, frequências e versões de Secure Boot do ESP32, S2, S3, C2, C3, C5, C6, C61, H2, H4, P4 e S31.
Implantação
- Imagem Docker (
node:22-alpine, buildstandalone, usuário sem privilégio,HEALTHCHECK), pronta para o servidor Oracle, publicada paralinux/arm64emgit.lucasrguerra.dev.br/lucasrguerra/espdocs. A variávelNEXT_OUTPUT=standaloneliga o empacotamento só dentro da imagem; fora dela o build continua o mesmo para opm2(start.config.js, porta 3001). - O código passou para o Gitea, com CI em
.gitea/workflows: lint, auditorias, Trivy no repositório e na imagem, e teste de que a imagem sobe e responde. O Release reaproveita a imagem quando nada do que a compõe mudou.
Segurança
next15.5.28, que corrige a execução remota de código sem autenticação na otimização de imagens (GHSA-2464-fhr4-w9xw), epostcssfixado acima da cópia embutida nonext.