fix: corrige tipos de conteúdo inválidos e três links quebrados#412
fix: corrige tipos de conteúdo inválidos e três links quebrados#412vascoginde wants to merge 1 commit into
Conversation
|
Sobre o O build em si termina bem ( É um problema preexistente — o PR anterior, de fevereiro de 2026, falhou com exatamente o mesmo padrão ( Abri o #414 para corrigir, e lá o Sugestão de ordem: mergear o #414 primeiro. Depois disso, os checks daqui ficam todos verdes — e, mais importante, o deploy de produção volta a funcionar, senão este PR entra no repositório mas não chega ao site. |
|
Preview Deployment Successful! Check deploy infohttps://techguide-static-pnm1w4kz3-tech-guide-alura.vercel.app |
O campo type de cada conteúdo passa pelo enum CardContentType do GraphQL (_api/modules/cards/index.ts). Valores fora do enum são serializados como null, e o componente que desenha a etiqueta usa `type || "CONTENT"` como fallback (ItemContent.tsx). O efeito é que o conteúdo continua listado e clicável, mas classificado errado: um artigo com `type: ARTIGO` chega ao componente como null e aparece com a etiqueta cinza "Conteúdo" em vez da rosa "Artigo". Havia 70 ocorrências assim. A correção foi feita por evidência, não por suposição — os casos ambíguos foram resolvidos olhando o endereço: 20x podcast -> PODCAST (só diferença de caixa) 15x ARTIGO -> ARTICLE 9x VIDEO -> ALURAPLUS (links cursos.alura.com.br/extra/alura-mais/) 6x challenge -> CHALLENGE (só diferença de caixa) 6x CURSO -> COURSE 3x VIDEO -> YOUTUBE (links youtube.com) 3x LIVRO -> BOOK 1x VIDEO -> CONTENT (link ted.com, não se encaixa nos demais) 1x EBOOK -> BOOK (e-book da UFSC) 1x TEMPLATE -> SITE (template no Miro) 1x MATERIAL -> SITE (material no Figma) 1x MANUAL -> SITE (página do IFSC) 1x FAQ -> SITE (página do gov.br) 1x YOUTUBLE -> YOUTUBE (erro de digitação) 1x ARTICLE PM3 -> ARTICLE (PM3 é o nome do site, não parte do tipo) Também corrige três URLs que não abrem: first-contact-with-UX.yaml https: repetido no começo machine-learning-fundamentals.yaml um h a mais no começo lottie.yaml fragmento #:~:text= com espaços Verificação no deploy de preview: a página de marketing-digital tem hoje, em produção, 5 conteúdos com "type":null — exatamente os 5 corrigidos neste PR naquele guide. No preview desta branch, nenhum. Fora esses dois campos, nada mais foi tocado: nenhum título, ordem de itens ou estrutura muda neste PR. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A6yBa1mA33fppRH8WzZCFN
263c5bc to
62167e7
Compare
|
Correção da descrição original. Eu havia escrito que a etiqueta "aparece quebrada na tela". Não é o que acontece, e o texto do PR e do commit já foram corrigidos. O que ocorre de fato: o enum O bug é real — 70 conteúdos classificados como genéricos quando deveriam mostrar seu tipo — mas o sintoma é classificação errada, não interface quebrada. Verifiquei comparando produção com o preview desta branch: a página de |
|
@omariosouto @fabriciocarraro @steppat — pedindo revisão de vocês antes de mergear, principalmente porque parte disto aqui é decisão editorial e não minha. Contexto. Estou montando um fluxo para minha equipe criar e revisar tech guides a partir de planilhas. Ao validar os arquivos de
O que merece o olhar de vocês neste PR. Dos 70 consertos, 65 são mecânicos e indiscutíveis: diferença de maiúscula ( Os 5 restantes são julgamento meu e podem muito bem estar errados:
Qualquer um desses eu troco em uma linha se vocês preferirem outro rótulo. Sobre o escopo. Só os campos Se fizer sentido, eu também posso mandar depois um PR adicionando essas validações ao CI, para o |
O problema
O campo
typede cada conteúdo passa pelo enumCardContentTypedo GraphQL (_api/modules/cards/index.ts). Valores fora do enum são serializados comonull, e o componente que desenha a etiqueta usatype || "CONTENT"como fallback (ItemContent.tsx).O efeito é que o conteúdo continua listado e clicável, mas classificado errado: um artigo com
type: ARTIGOchega ao componente comonulle aparece com a etiqueta cinza "Conteúdo" em vez da rosa "Artigo".Encontrei 70 ocorrências assim, em 48 arquivos, nos três idiomas.
Os tipos aceitos, conforme o enum e o
_data/locale/pt-BR.ts:SITE·ARTICLE·COURSE·YOUTUBE·PODCAST·BOOK·CHALLENGE·ALURAPLUSA correção
Feita por evidência, não por suposição — os casos ambíguos foram resolvidos olhando o endereço do link:
podcastPODCASTARTIGOARTICLEVIDEOALURAPLUScursos.alura.com.br/extra/alura-mais/challengeCHALLENGECURSOCOURSEVIDEOYOUTUBEyoutube.comLIVROBOOKVIDEOCONTENTted.com, não se encaixa nos demaisEBOOKBOOKTEMPLATESITEMATERIALSITEMANUALSITEFAQSITEYOUTUBLEYOUTUBEARTICLE PM3ARTICLEMais três URLs que não abrem:
first-contact-with-UX.yaml—https:https://...(protocolo repetido)machine-learning-fundamentals.yaml—hhttps://...(umha mais)lottie.yaml— fragmento#:~:text=com espaços, que invalida a URLSobre o
CONTENTdo vídeo do TED: ele não está no enum do GraphQL, então também será serializado comonulle cairá no mesmo fallback — o rótulo renderizado é "Conteúdo", que é o pretendido. Três conteúdos já existentes no repositório usam esse valor da mesma forma. Se preferiremSITE, é uma linha.Verificação
Comparando a página
pt-BR/path/marketing-digitalentre produção e o deploy de preview desta branch:"type":nullna páginaOs 5 são exatamente os conteúdos que este PR corrige naquele guide (4
ARTIGO+ 1LIVRO).Escopo
Só os campos
typeelinkforam tocados. Nenhum título, ordem de itens ou estrutura muda aqui — o diff é de 140 linhas detypee 6 delink, e nada mais.Verificado depois da mudança: os 48 arquivos continuam YAML válido, todo
typeagora é aceito pelo enum, e o conteúdo é idêntico ao anterior em tudo que não seja esses dois campos.O que este PR não resolve
Na mesma varredura encontrei problemas que precisam de decisão de conteúdo e por isso ficaram de fora — estão no #413. O mais sério é o
motion-design, que referencia 8 cards inexistentes.