Commit Graph
42 Commits
Author SHA1 Message Date
Lucas RayanandAntigravity d479a8d361 feat(i18n): restrict public routes and metadata to enabled locales
CI / Lint e auditorias (push) Successful in 41s
CI / Trivy (dependências e segredos) (push) Successful in 10s
CI / Imagem Docker (linux/arm64) (push) Successful in 2m5s
- Add ENABLED_LOCALES configuration in i18n/links.js (currently ["pt"])
- Redirect inactive locale prefixes to /pt via 307 in middleware.js
- Restrict root locale negotiation to active locales with fallback to pt
- Hide LanguageSelector when only one locale is enabled
- Generate sitemap, hreflang alternates, and og:locale only for active locales
- Generate static SSG pages only for active locales in build
- Adapt check:i18n and smoke-imagem.sh to validate active vs inactive locales

Co-Authored-By: Antigravity <noreply@google.com>
2026-11-01 12:10:25 -03:00
Lucas RayanandAntigravity dcd4ef7e1b fix(i18n): extract navigation links module and restore verbatim pt footer
CI / Lint e auditorias (push) Successful in 44s
CI / Trivy (dependências e segredos) (push) Successful in 9s
CI / Imagem Docker (linux/arm64) (push) Successful in 3m56s
- Move getLocalizedHref, LOCALES, and CANONICAL_ROUTES to i18n/links.js to resolve SSR 500 error on home
- Import from @/i18n/links in page.jsx, Header.jsx, Footer.jsx, and LanguageSelector.jsx
- Restore exact production footer texts, author links, and SVG icons in pt
- Verify 100% visible text parity on all pt pages against production with cmp-pt.py

Co-Authored-By: Antigravity <noreply@google.com>
2026-11-01 10:19:22 -03:00
Lucas RayanandAntigravity 83c0ba3e74 feat(i18n): routing and localization infrastructure (phase 1)
Implement Phase 1 of i18n spec:
- Configure next-intl with 6 locales (pt, en, es, fr, de, zh-CN) and pathnames
- Move routes to app/[locale] structure with localized layouts and metadata
- Add middleware for root language negotiation (307), legacy redirects (308), and 404 for non-pt book
- Implement language selector dropdown in header with cookie persistence
- Add system typography rules for zh-CN and word-break/hyphenation for de/fr

Co-Authored-By: Antigravity <noreply@google.com>
2026-11-01 09:31:22 -03:00
Lucas RayanandClaude Sonnet 5.5 7d0edf13c4 feat: site search with a dialog in the header and a /api/busca endpoint
CI / Lint, design e build (push) Successful in 1m52s
CI / Trivy (dependências e segredos) (push) Successful in 12s
CI / Imagem Docker (push) Successful in 2m26s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 08:02:57 -03:00
Lucas RayanandClaude Sonnet 5.5 d8323c653b chore: point the repository links to Gitea and swap the GitHub icon
CI / Lint, design e build (push) Canceled after 12s
CI / Trivy (dependências e segredos) (push) Canceled after 0s
CI / Imagem Docker (push) Canceled after 0s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 07:53:39 -03:00
Lucas Rayan GuerraandClaude Sonnet 5.5 c61fa06532 feat(marca): atualiza logo, ícones, manifest e Open Graph para a identidade atual (#3)
- Logo em duas cores (teal + cobre), inline no cabeçalho e rodapé para
  seguir o tema do site; SVGs estáticos com prefers-color-scheme.
- scripts/generate-favicons.mjs passa a gerar favicons, ícones de app
  (maskable), site.webmanifest e a imagem Open Graph 1200x630.
- Manifest com fundo/tema obsidiana e lang pt-BR.


Claude-Session: https://claude.ai/code/session_016W1xmizFcmXLrmabSvfSuc

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 16:41:38 -03:00
Lucas Rayan GuerraandClaude Sonnet 5.5 bc9ae5c036 Redesign das páginas internas no novo design system (AAA) (#2)
* feat(design): redesign das páginas internas no novo design system

Padroniza todas as páginas e componentes internos nos tokens e primitivos
de app/globals.css, com contraste AAA (7:1) nos dois temas e alvos de toque
de 44px.

- Páginas reescritas: glossário, séries, série, seletor, comparador,
  diagnóstico, catálogo, component registry, frameworks, framework, sobre
  e a nova 404.
- Componentes: PageHero e SectionHead novos; BoardCard, CodeExample,
  PinRestrictions, SeriesTabMenu e ConnectionsDiagram refeitos, com abas
  e diálogo acessíveis.
- Remove emojis, cores avulsas por série, caixa alta com tracking, texto
  menor que 12px e os pares slate-*/dark:*.
- Comparador: "mostrar só as diferenças" e leitura de ?chips=.
- Corrige overflow em 320/390px e ajusta accent/copper do tema claro
  para fechar 7:1.
- scripts/auditar-temas.mjs passa a travar paleta crua, dark:, texto
  pequeno, emoji e contraste dos tokens.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016W1xmizFcmXLrmabSvfSuc

* ci: roda lint, auditorias de design e build em cada PR

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016W1xmizFcmXLrmabSvfSuc

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 16:10:15 -03:00
Lucas Rayan 709b2b6b69 feat: update component count and expand component registry with new UI, connectivity, and audio drivers 2026-08-26 13:27:48 -03:00
Lucas Rayan 468b77bd77 feat: update favicon configuration and standardize site metadata icons 2026-08-26 13:19:37 -03:00
Lucas Rayan f11058f5df refactor: expand project corpus and update dependency and configuration files 2026-08-26 10:32:58 -03:00
Lucas Rayan e347a95dd6 refactor: remove manual page metadata and standardize SEO schema with dynamic dates and images 2026-08-26 09:54:17 -03:00
Lucas Rayan 574536d70b refactor: normalize slug paths, expand security features, and refine selector algorithm scores 2026-08-26 09:35:35 -03:00
Lucas Rayan d71dc8df3c feat: add ESP-RainMaker and ESP-Matter frameworks and update existing framework metadata in frameworks.json 2026-08-25 16:55:38 -03:00
Lucas Rayan 07dac4f6de feat: overhaul homepage with platform statistics, structured feature cards, and highlighted ESP32 models while cleaning up project metadata. 2026-08-25 16:08:39 -03:00
Lucas Rayan 031b35d7dd feat: improve SEO with structured data, breadcrumbs, and comprehensive favicon support while optimizing images and config performance. 2026-08-25 15:02:46 -03:00
Lucas Rayan f93e0fe460 feat: add script to export training slides to PDF in 16:9 format 2026-08-24 10:36:05 -03:00
Lucas Rayan d530356101 refactor: implement server-side CMYK PDF caching and improve frontend export UI with dynamic DOM injection 2026-08-23 12:52:16 -03:00
Lucas Rayan afa1a6e027 feat: automate CMYK PDF deployment to public folder and update download button to direct link 2026-08-23 12:32:36 -03:00
Lucas Rayan 8ad99a971d chore: remove unused assets and polyfills, add puppeteer for CMYK export automation 2026-08-23 12:19:21 -03:00
Lucas Rayan 37971056c2 feat: add SEO and sitemap functionality
- Implemented robots.txt to guide search engine indexing.
- Created layout components for the selector and series pages to manage metadata.
- Developed a dynamic sitemap generator based on existing series and frameworks data.
- Centralized SEO information in a new lib/seo.js file to maintain consistency across the site.
- Added SVG logos for branding.
2026-08-23 11:16:13 -03:00
Lucas Rayan 3de4f2501d feat: enhance accessibility and theme consistency in components 2026-08-20 14:51:58 -03:00
Lucas Rayan a279269f8f Refactor code structure for improved readability and maintainability 2026-08-20 10:18:45 -03:00
Lucas Rayan 8a52e79d21 feat: add theme consistency guidelines and pin restrictions component
- Introduced DESIGN.md to outline rules for maintaining consistent light and dark themes, including color scales, symmetry rules, and contrast requirements.
- Added PinRestrictions component to display pin usage restrictions based on series data, ensuring accurate representation of pin functionalities.
- Implemented auditing script (auditar-temas.mjs) to check for theme consistency issues, including nonexistent tones, inverted pairs, low contrast, and inline fixed colors.
2026-08-20 05:37:56 -03:00
Lucas Rayan e7d6b5cf87 Adição do ESP32-H4 2026-08-20 04:13:37 -03:00
Lucas Rayan de4abf7cc7 Adição dos novos modelos e do tema escuro 2026-05-28 09:06:39 -03:00
Lucas Rayan 2ba7f84590 fix: update button styles to use linear gradient for improved visual consistency 2026-01-22 11:50:37 -03:00
Lucas Rayan ec92217882 feat: enhance selection tool with Ethernet and display options, improve answer handling and results display 2026-01-22 11:49:47 -03:00
Lucas Rayan eb7d54666e feat: add intelligent selection tool for ESP32 series with user-driven questions and recommendations 2026-01-21 12:57:18 -03:00
Lucas Rayan 09fa8079fd Update package dependencies, add energy consumption data to series.json, and create a technical glossary page 2026-01-20 19:10:37 -03:00
Lucas Rayan 35ab3e7da6 feat: add call-to-action sections for the catalog in multiple pages and enhance author information in the About page 2025-11-10 09:41:59 -03:00
Lucas Rayan 999c65a018 fix: update cache configuration to use dynamic revalidate values in Google Sheets API route 2025-11-09 20:58:19 -03:00
Lucas Rayan c243a7b189 fix: update cache configuration to 10 minutes in Google Sheets API route 2025-11-09 18:31:14 -03:00
Lucas Rayan a28058d68c fix: update cache configuration and enable caching in Google Sheets API route 2025-11-09 18:29:04 -03:00
Lucas Rayan b89dd3e880 fix: implement cache control logic in Google Sheets API route 2025-11-09 18:19:01 -03:00
Lucas Rayan fe06241517 feat: integrate Google Sheets API to fetch board data and implement filtering in the catalog page 2025-11-09 17:50:48 -03:00
Lucas Rayan e169e29d0d Refactor: padroniza schema de conexões e atualiza UI do diagrama + melhorias na página de série
- Padroniza JSON de conexões (vários chips): normaliza "numero", unifica categorias, substitui "restricoes" por "avisos" (array), adiciona "alimentacao" e revisa campos de tipo/funcões/avisos.
- Atualiza large conjunto de arquivos em public/conexoes (ESP32, ESP32-S2/S3/C3/C5/C6/H2/P4) para o novo formato e dados mais completos.
- Adapta ConnectionsDiagram.jsx ao novo schema:
  - atualiza FILTER_CATEGORIES e type_colors;
  - usa cores por tipo (type_colors) para background/bordas/indicadores;
  - renomeia/exibe avisos, altera labels (ex: "Conexão" → "Pino"), melhora renderização de badges e contadores;
  - refina modal (overlay, classes, exibição de categorias, seção de alimentação e lista de avisos).
- Altera page de série (app/series/[key]/page.jsx):
  - adiciona bloco "Sobre a Matriz de Conexões Flexível";
  - adiciona links rápidos: Datasheet, Guia de Programação e (condicional) Manual Técnico;
  - ajusta estilos de botões/grades e espaçamento (md:mx-8);
  - simplifica previous/next (retorna null em vez de placeholders vazios).
- Atualiza public/series.json com links de manual/guia, correções de specs (GPIO, temperaturas, descrições) e outras metadatas.

Resultados: dados de conexões padronizados, componente de diagrama consistente com o novo schema, melhor UX na página de série e acesso direto a documentação.
2025-10-27 10:56:03 -03:00
Lucas Rayan 941dd266a0 Refactor: Update component styles and JSON data for ESP32 series
- Added cursor pointer to buttons in SeriesTabMenu for better UX.
- Removed "Analog" category from various ESP32 JSON files to streamline categorization.
- Translated "analog" to "analógico" in ESP32 JSON files for consistency in language.
- Cleaned up categories in ESP32 JSON files to focus on relevant classifications.
2025-10-22 23:40:58 -03:00
Lucas Rayan 2a6699bbfb feat: Enhance Header component to improve active link detection
- Updated the `isActive` function in `Header.jsx` to handle root path and include logic for other paths.

chore: Update package-lock.json to remove peer dependencies

- Removed unnecessary peer dependencies from various packages in `package-lock.json`.

feat: Update frameworks.json to include example links

- Changed `exemplo_codigo` to `exemplo` and added `exemplos` links for various frameworks in `frameworks.json`.

feat: Add placa images to series.json

- Included image paths for different ESP32 series in `series.json`.

feat: Create CodeExample component for displaying code snippets

- Added a new `CodeExample.jsx` component to fetch and display code examples dynamically.

feat: Add example Arduino code for Wi-Fi connection

- Created `arduino.ino` example for connecting to Wi-Fi.

feat: Add example code for audio playback using ESP-ADF

- Created `esp-adf.c` example for audio playback using ESP-ADF.

feat: Add example code for DSP operations

- Created `esp-dsp.c` example demonstrating basic DSP operations.

feat: Add example code for ESP-IDF LED blinking

- Created `esp-idf.c` example for blinking an LED using ESP-IDF.

feat: Add example code for Matter integration

- Created `esp-matter.c` example for Matter device initialization and event handling.

feat: Add example code for neural network operations

- Created `esp-nn.c` example demonstrating basic neural network operations.

feat: Add example code for face detection using ESP-WHO

- Created `esp-who.c` example for face detection using ESP-WHO library.

feat: Add MicroPython example for LED blinking

- Created `micropython.py` example for blinking an LED using MicroPython.
2025-10-22 23:10:30 -03:00
Lucas Rayan 3a5608d1de Padroniza título de metadata das páginas de série para "ESPDocs - <nome>"
Substitui `${key} - ${serie.nome_completo}` por `ESPDocs - ${serie.nome_completo}` nos metadados para unificar o branding/título das páginas de série.
2025-10-22 11:04:29 -03:00
Lucas Rayan 60df88043c Refina copy em /sobre e /frameworks e ajusta overlay do modal de conexões
- Ajusta espaçamento entre elementos inline em /frameworks (uso de &nbsp;) e padroniza texto.
- Atualiza textos em /sobre: tom pessoal ("um entusiasta"), títulos e pequenas reformulações para clareza.
- Modifica overlay do modal em ConnectionsDiagram: aumenta opacidade e reduz efeito de blur.
2025-10-22 10:56:51 -03:00
Lucas Rayan 83b2bd4c73 Restore homepage and move "Sobre" content to /sobre
Replace app/page.jsx with the main landing UI (ESPDocs hero, CTAs and resources grid).
Move detailed About content into app/sobre/page.jsx (features list, accessibility anchor, mission and contribution sections).
2025-10-22 08:53:55 -03:00
Lucas Rayan f49d9a8921 Add public/series.json containing detailed ESP32 family specifications
Add a new JSON file public/series.json that defines detailed metadata for multiple
ESP32 series variants. The file includes entries for: ESP32, ESP32-S2, ESP32-S3,
ESP32-C3, ESP32-C5, ESP32-C6, ESP32-P4 and ESP32-H2.

Each entry provides human-friendly and technical fields such as:
- nome_completo, icone, descricao
- arquitetura, nucleos, frequencia, coprocessador_ulp, aceleradores_ia (when applicable)
- wireless capabilities (Wi‑Fi, Bluetooth, Zigbee/Thread, Matter), USB, Ethernet
- memory details (SRAM, RTC SRAM, ROM, external flash/PSRAM)
- peripherals and I/O counts (GPIO, ADC, DAC, touch, UART, SPI, I2C, I2S, PWM, SDIO, etc.)
- sensor info, temperature ranges, datasheet links and UI color values

This file will be used to power device/series lists and UI displays with consistent,
localized technical descriptions and links to datasheets.
2025-10-22 00:04:06 -03:00