Saltar al contenido

Mi nueva web: cómo la hice

Esta web está hecha igual que el blog de Fabio Akita (código), con dos cambios: los scripts de apoyo están en Python en lugar de Ruby, y mise lo controla todo: versiones de las herramientas, el entorno de Python y todas las tareas.

El stack

  • Hugo convierte Markdown en HTML estático. Sin base de datos ni servidor.
  • Hextra es el tema: modo oscuro, búsqueda (Ctrl K), etiquetas, RSS y resaltado de código.
  • Netlify compila y publica con cada push a main.
  • mise fija las versiones de Hugo, Go y Python, así que mi portátil, GitHub Actions y Netlify usan exactamente las mismas.

Tres idiomas

Cada entrada es una carpeta con un fichero por idioma:

content/2026/10/30/new-website-how-i-built-it/
├── index.en.md      → /en/2026/10/30/my-new-website-how-i-built-it/
├── index.es.md      → /es/2026/10/30/mi-nueva-web-como-la-hice/
└── index.pt-br.md   → /pt-br/2026/10/30/meu-novo-site-como-eu-fiz/

Hugo enlaza las traducciones, así que el selector de idioma te lleva a la misma entrada.

El flujo de trabajo

mise install                 # Hugo, Go, Python
mise run setup               # dependencias de Python
mise run new "Título"        # crea los 3 ficheros como borradores
mise run tags:search "ia"    # reutilizar etiquetas existentes
mise run dev                 # http://localhost:1313/es/
mise run check               # lo mismo que la CI: etiquetas, índices, tests, build
git push                     # Netlify publica

La portada y el archivo los genera scripts/generate_index.py (el generate_index.rb de Akita, portado), y scripts/tag_catalog.py mantiene las etiquetas coherentes en los tres idiomas.