Modernización completa: migración a Astro 5 + Tailwind + GitHub Pages#7
Open
kiro-agent[bot] wants to merge 13 commits into
Open
Modernización completa: migración a Astro 5 + Tailwind + GitHub Pages#7kiro-agent[bot] wants to merge 13 commits into
kiro-agent[bot] wants to merge 13 commits into
Conversation
Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
…mode Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
…lash Astro materializa los redirects declarados como dist/<path>/index.html (carpeta), formato que GitHub Pages no resuelve cuando el cliente solicita la URL canonica Jekyll sin slash final (/2016/05/20/welcome-to-peruJUG.html, /2018/06/30/java-day-2018.html). Se anade una integracion ad-hoc 'flattenLegacyHtmlRedirects' que en el hook astro:build:done convierte cada carpeta de redirect en un archivo .html plano y, para el slug con casing mixto 'peruJUG', clona ademas la version en minusculas para tolerar backlinks normalizados. Asi la cobertura SEO de URLs historicas queda preservada sin tocar el resto de las rutas del sitio. Atiende issues 1 y 3 del review v1. Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
- on.push.branches: [main, master] para que el deploy automatico funcione tanto si el maintainer mantiene 'master' como rama default como si decide renombrar a 'main' (rename de la default branch en GitHub no rompe el workflow). - Step 'Type and content check' (npm run check) antes del build para validar tipos TypeScript y schemas Zod de las content collections en cada PR, no solo en el build local del maintainer. Atiende issues 2 y 9 del review v1. Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
- Seccion 'Como contribuir': dejar de asumir 'main'; documentar que la rama por defecto actual es 'master' y que el maintainer puede renombrarla sin romper el workflow. - Seccion 'Despliegue': describir el trigger sobre main o master e incluir la nota al maintainer con la opcion de simplificar. Atiende issue 4 del review v1. Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
- BaseLayout: helper isCurrent() que normaliza trailing slash y aplica aria-current='page' mas una clase activa (acento + underline en desktop, fondo elevado en mobile) tanto al nav desktop como al mobile. Ahora un usuario con lector de pantalla y un usuario vidente saben en que ruta estan. - index.astro: el H1 deja de duplicar el kicker 'Peru Java User Group' y pasa a 'Comunidad Java de Peru'. El kicker se conserva como eyebrow/marca. Atiende issues 5 y 6 del review v1. Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
- javaday-2018.md: el speaker que abre la agenda ('Programando robots de
Lego con Java y Kotlin') ahora aparece tambien en el array speakers
con su foto miguelcordova.jpg ya presente en public/images/javadayperu/.
La grilla de expositores pasa de 9 a 10 ponentes.
- config.ts: comentarios JSDoc sobre updatedDate, mapAddress, sponsors
y registrationUrl explicando que son slots para eventos futuros (o
datos historicos a recuperar) y por que se conservan aunque ningun
contenido migrado los use hoy.
Atiende issues 7 y 8 del review v1.
Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
- Derivar targets automaticamente del mapa LEGACY_REDIRECTS filtrando entries que terminan en .html, eliminando la duplicacion entre redirects y la integracion (issue 1). - Agregar guard fs.access antes del writeFile del clon lowercase para no sobreescribir un archivo distinto ya emitido, alineando codigo y comentario (issue 2). - Reescribir el basename original por el lowercase en el HTML clonado para que el body cosmetico refleje la URL realmente solicitada (issue 3). Co-authored-by: Ytalo Elias Borja Mori <ytaloborjam@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request was generated by @kiro-agent 👻
Comment with /kiro fix to address specific feedback or /kiro all to address everything.
Learn about Kiro autonomous agent
Resumen
Reescritura completa del sitio reemplazando el stack legacy (Jekyll + Materialize CSS + jQuery + deploy por FTP) por Astro 5 + Tailwind CSS 3 + TypeScript + GitHub Pages.
Motivación
El stack anterior tenía problemas críticos:
index1.mdeindex2.md(AIzaSyArCETPtmpt7r3Dxb9FjN0zg1nIY-ejWyc). Debe revocarse aparte por el maintainer..idea/versionado.Cambios principales
Stack nuevo
output: static, TypeScript strict, Content Collections con schemas Zod.@astrojs/tailwind, dark/light mode con clasedarky anti-flash inline script.@astrojs/sitemap,@astrojs/rss,@astrojs/mdx.Páginas (todas en español)
[...slug]), Eventos (índice +[...slug]), Equipo, Acerca de, 404.Contenido migrado
welcome-to-perujug,java-day-2018) asrc/content/blog/.SEO y accesibilidad
Organization+WebSite(home),BlogPosting(posts),Event+Place+PostalAddress+GeoCoordinates(eventos)./rss.xml),robots.txt.site.webmanifestPWA, generados conscripts/generate-favicons.mjsusando sharp.aria-current="page"en nav, contraste validado (#3F6B85), aria-labels en botones de íconos, alt en imágenes.Preservación de URLs legacy
/javaday/2018/→/eventos/javaday-2018//javaday/2019/→/eventos/javaday-2019//2016/05/20/welcome-to-peruJUG.html→/blog/welcome-to-perujug/(también clon en lowercase)/2018/06/30/java-day-2018.html→/blog/java-day-2018/Los redirects
.htmlJekyll terminan sin trailing slash, formato que GitHub Pages no resuelve si Astro genera carpeta. Una integración custom (flattenLegacyHtmlRedirectsenastro.config.mjs) aplana esos redirects post-build.CI/CD
.github/workflows/deploy.yml: build +astro check+ deploy a GitHub Pages víaactions/deploy-pages@v4.mainymasterpara soportar el rename amainsin tocar el yaml.Restricciones cumplidas
.gitignoreapropiado para Node/Astro,.idea/eliminado del repo.Verificación
npm run build(cache limpio): exit 0, 10 páginas + sitemap + rss + 4 redirects generados.npx astro check: 0 errors / 0 warnings / 0 hints sobre 15 archivos.npm run preview.grep AIzaSyensrc/,public/ydist/no retorna nada.Limitación conocida
Lighthouse > 95 no medido en sandbox: el ambiente no tiene GPU ni display server, Chrome falla con
NO_FCP/segfault en headless. La verificación queda pendiente para post-deploy en infra real. Recomendación: agregar un steplighthouse-cial workflow después del primer deploy exitoso.Acción requerida del maintainer antes de mergear
AIzaSyArCETPtmpt7r3Dxb9FjN0zg1nIY-ejWyc) en Google Cloud Console. Está expuesta en el historial git.perujug.org), configurar el CNAME desde Settings → Pages, no como archivo en el repo.PERUJUG_FTP_CICD_*) en Settings → Secrets.master→main. El workflow ya lo soporta.