Los Static Site Generators (SSG) son piezas de software que recopilan información, principalmente de archivos, y generan un sitio web de contenido estático. Los SSG se pueden ejecutar periódicamente haciendo que el sitio muestre el eventual contenido nuevo una vez generado.
Pensemos en este blog (dinámico):
Este contenido que lees, ha sido recuperando de una base de datos SQL y presentado en formato web mediante un conjunto de programas (PHP) que se ejecutaron cuando solicitaste la página, es decir, es un sitio dinámico; si tu lectura cambiara algo (por ejemplo, un contador de visitantes) esa nueva información será mostrada al siguiente visitante que acceda al sitio.
Pero los artículos que escribo tienen una periodicidad (digamos) semanal. Así que, si lees este artículo, posiblemente el sitio no tendrá cambios hasta dentro de unos días. Desde ese punto de vista, no requieriría procesar una generación para cada visitante y perfectamente podrias estar leyendo el sitio estático.
Es decir, este blog podría tener archivos en archivos de texto que editaría con mi editor preferido y un software que los recorra cada vez que redacto un nuevo artículo, generando todo un sitio estático en HTML que subiría al servidor cada vez que algo cambia.
Pensemos en el agregador agujerodelmate.org (estático):
Se trata de un software que periódicamente (una vez por hora) recorre varios sitios y recupera la información publicada, generando con ello un sitio estático en HTML. Si al revisar no encuentra contenido nuevo, deja el sitio publicado como está.
Ese mismo software podría guardar los datos en una base de datos y tener un código que se ejecuta cada vez que un visitante accede y generarle un sitio especial para él. Pero podemos coincidir que sería un uso excesivo de recursos informáticos.
Static Site Generators
Si bien en un tiempo se pensó que generar los sitios dinámicamente era una ventaja y una tendencia sin retorno, hoy día los sitios estáticos están ganando terreno mediante un sinceramiento entre las necesidades de presentación de contenido y los requisitos y oferta de recursos informáticos y de alojamiento. Pero también ha colaborado para esto, el avance de la web, ahora la presentación (CSS) está separada del contenido (HTML) y mucho del dinamismo lo realiza el navegador (JS y HTML5) del visitante.
Cuando me puse a buscar del tema encontré que existen muchas herramientas modernas para generación de contenido estático a partir de archivos, colecciones de fotos, recopilación de datos, etc. etc.
El sitio StaticGen presenta una lista bastante completa de los mejores SSG de código abierto. El propio sitio es generado en forma estática con una de esas herramientas y está alojado en el servicio Netlify, especialmente diseñado para contenido estático.
Para sitios estáticos hay alojamiento gratuito a través de sitios de gestión de desarrollo de software como Gitlab Pages o Github Pages.
Pero también se puede servir contenido estático en varios servicios que otorgan un alojamiento gratuito de archivos como Google Drive o Dropbox compartiendo el enlace al archivo HTML principal del sitio.
Y yo…
Por ahora estoy haciendo cosas con Tiddlywiki y Gitlab; pero también he hecho pruebas con Hugo para generar sitios a partir de archivos en formato markdown.
Yo estoy usando pelican escrito en pyhton, vale la pena tomarlo en cuenta. Saludos!