Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
109 lines
5.8 KiB
Markdown
109 lines
5.8 KiB
Markdown
# Registro de mudanças
|
|
|
|
Tudo o que muda de relevante no ESPDocs está aqui. O formato segue o
|
|
[Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/) e o projeto segue o
|
|
[Versionamento Semântico](https://semver.org/lang/pt-BR/).
|
|
|
|
## [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.js` com negociação de idioma na raiz por cookie `NEXT_LOCALE` e cabeçalho `Accept-Language` (com pesos `q`), redirecionamento 308 de URLs antigas sem prefixo para `/pt/`, e retorno 404 para `/livro` fora do português.
|
|
- Seletor de idiomas acessível no cabeçalho com atalho para os 6 idiomas, persistência via cookie `NEXT_LOCALE` e mapeamento de rota correspondente.
|
|
- Regras de tipografia de sistema CJK para `zh-CN` e hifenização/quebra de palavras para `de` e `fr`.
|
|
- Extração de strings e dados canônicos (Fase 2):
|
|
- Catálogo de mensagens canônico `messages/pt.json` cobrindo 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 em `lib/data/pt/` (`glossario.js`, `diagnostico.js`, `componentes.js`, `topicos.js`) com carregadores por locale em `lib/data/index.js`.
|
|
- Script automatizado de validação `check:i18n` integrado ao `npm 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.
|
|
|
|
### Alterado
|
|
|
|
- O teste de subida da imagem na CI virou `scripts/smoke-imagem.sh`: confere as
|
|
rotas de cada idioma, a negociação de `Accept-Language`, os redirects 308 das
|
|
URLs antigas, o 404 do livro fora do português e a metadata no `<head>`, e
|
|
falha se o servidor registrar erro de render. O `curl` só na raiz deixou passar
|
|
uma home quebrada.
|
|
- A metadata (título, `canonical`, Open Graph) sempre sai no `<head>` do HTML
|
|
inicial, para qualquer cliente, como já era antes do i18n.
|
|
- A raiz `/` redireciona direto para `/<idioma>`, em um salto só.
|
|
|
|
## [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.br` e `espdocs.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 segundo `next build` do 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, `manifest` e 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`, build `standalone`, usuário sem privilégio,
|
|
`HEALTHCHECK`), pronta para o servidor Oracle, publicada para `linux/arm64` em
|
|
`git.lucasrguerra.dev.br/lucasrguerra/espdocs`. A variável `NEXT_OUTPUT=standalone`
|
|
liga o empacotamento só dentro da imagem; fora dela o build continua o mesmo
|
|
para o `pm2` (`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
|
|
|
|
- `next` 15.5.28, que corrige a execução remota de código sem autenticação na
|
|
otimização de imagens (GHSA-2464-fhr4-w9xw), e `postcss` fixado acima da cópia
|
|
embutida no `next`.
|
|
|
|
[Não lançado]: https://git.lucasrguerra.dev.br/lucasrguerra/ESPDocs/compare/v1.1.0...HEAD
|
|
[1.1.0]: https://git.lucasrguerra.dev.br/lucasrguerra/ESPDocs/compare/v1.0.0...v1.1.0
|
|
[1.0.0]: https://git.lucasrguerra.dev.br/lucasrguerra/ESPDocs/releases/tag/v1.0.0
|