| Caminho | O que é |
|---|---|
profile/README.md |
O README que aparece no meu perfil ✨ (inglês) |
profile/README.pt-BR.md |
A mesma coisa, em português |
profile/assets/*.svg |
Todos os cards, banners e gráficos — arquivos estáticos |
scripts/refresh-cards.mjs |
O gerador que produz todos esses SVGs |
.github/workflows/refresh-cards.yml |
Roda o gerador diariamente |
Os cards são gerados por um script e commitados como arquivos estáticos. Duas vantagens:
- Carregam sempre — o perfil não depende de nenhum serviço de terceiros estar de pé
- Números reais — o gerador usa um token com escopo
repo, então as estatísticas incluem os repositórios privados, onde está a maior parte do meu trabalho
node scripts/refresh-cards.mjs # gera tudo (~2 min)
node scripts/refresh-cards.mjs --no-snake # pula a cobrinha, que é a etapa lentaDepois é só commitar o que mudou em profile/assets/.
Requisitos: Node 18+, git e gh auth login já feito.
O que o script produz:
banner.svg·typing.svg·footer.svg— identidade visual, com animação SVG nativastack.svg— a stack inteira num único arquivo, no lugar de ~45 badges do shields.iometrics.svg·achievements.svg— números de carreira e conquistasstats.svg·top-langs.svg— viagithub-readme-statsrodado localmentestreak.svg·activity.svg— calculados direto da API GraphQLgithub-snake*.svg— a cobrinha comendo o gráfico de contribuições
Cada card com texto sai em duas versões: inglês e .pt-BR. Os SVGs trazem um
@media (prefers-color-scheme: light) interno, então o mesmo arquivo se adapta
ao tema claro ou escuro do visitante, sem precisar de dois assets.