La gaceta de la cabeza

Migré mi blog de Gastby a Astro con ayuda de ChatGPT

programacion

Acabo de migrar mi blog a astro. Tenía ganas desde hace rato, la verdad es que gatsby había caído de mis preferencias como plataforma para sitios estáticos desde hacía rato. Para un texto (en inglés) bastante completo al respecto, recomiendo este blog sobre Gatsby vs Next que es muy bueno. El resumen es que:

Yo sufrí todas ellas y el blog me sonó bastante acertado. Así que decidí buscar algo nuevo para actualizar mi blog, que tenía una versión de Gatsby de hace 5 años. En su momento mi blog fue migrado de un sitio de drupal a gatsby. En el código de mi blog en gatsby todavía está el script que usé para convertir los posts de Drupal a archivos de markdown para gatsby. Así que ahora lo que hice fue escribir un nuevo script, pero ayudado ahora por ChatGPT :-p. Pueden ver la conversación completa aquí.

En los commits de mi blog dejé record de la conversación en inglés que tuve con ChatGPT, que pongo aquí de manera resumida:

  1. Crear el script inicial:

    create a script that moves index.md files that are stored inside a pages folder, but rename the destination file to have the name of the containing folder

  2. Pedir poder recibir la carpeta origen y destino desde la línea de comandos como argumentos cuando llamara al script

    make the root directory a [parameter you get from the command line], as well as the destination directory for all the files

  3. Luego le pedí que me permitiera modificar parte de los archivos, renombrando una variable en cada uno de ellos de date a pubDate, que era como lo usaba astro, y que me organizara mejor el código. Además de que cambiara la lógica a copiar los archivos en vez de moverlos, para poder correr el archivo varias veces mientras debugueaba.

    • now, the markdown files we are moving have a frontmatter section with metadata. I would like to rename the date property in this section to pubDate

    • can this update of the frontmatter section be done in a separate function? Or how can we better organize the code?

    • and I just realized that we are moving the source files instead of just copying them, which is less destructive and allows easier testing of the script :-p

Con cada iteración pude ir probando y modificando el script. Creo que esto me ahorró varias horas de trabajo, para encontrar qué librerías usar, cómo funcionan, y ponerlo todo junto. 5 estrellas. Gracias ChatGPT!!!

El script final de migración lo pueden ver aquí.

Lo único que faltaba era migrar los comentarios. En su momento también había escrito un script para migrar los comentarios de drupal a disqus, que es una plataforma gratuita para agregar funcionalidad de comentarios a cualquier sitio. Y pude seguir usando disqus, pero la verdad es que le veo poco futuro a esa plataforma, tienen planes de paga, pero no creo que sean muy usados, veo que no está siendo muy actualizada porque el script para incluir disqus en tu sitio se ve que usa javascript que no ha sido modificado desde hace más de 5 años, así que busqué otra opción.

Veo que ahora hay una opción muy interesante para usar discusiones de github como el motor de comentarios para tu blog. Se llama giscus (casi igual que la anterior! 😛). Las discusiones de github son gratuitas para cualquier repositorio público, y creo que son muy buena opción para blogs de programadores :-p. Ahora no utilicé ningún script, son como 20 comentarios en total los que tengo en mi sitio 🙈, así que los migré todos a mano, y se pueden ver ahora en la página de discusiones de github de mi blog.