Primeros pasos con Hugo

Hugo es un framework para webs de propósito general. Técnicamente hablando, Hugo es un generador de sitio estático. A diferencia de otros sistemas que construyen dinámicamente una página cada vez que un visitante la solicita, Hugo hace el edificio cuando crea su contenido. Dado que los sitios web se ven con mucha más frecuencia de lo que se editan, Hugo está optimizado para la visualización del sitio mientras proporciona una gran experiencia de escritura.

Los sitios construidos con Hugo son extremadamente rápidos y muy seguros. Los sitios se pueden alojar en cualquier lugar, incluyendo Heroku, GoDaddy, DreamHost, GitHub Pages, Netlify, Surge, Aerobatic, Firebase Hosting, Google Cloud Storage, Amazon S3 y CloudFront, y funcionan bien con CDNs. Los sitios se ejecutan sin dependencias en tiempos de ejecución costosos como Ruby, Python o PHP y sin dependencias en ninguna base de datos.

Hugo es un framework para webs de propósito general. Técnicamente hablando, Hugo es un generador de sitio estático. A diferencia de otros sistemas que construyen dinámicamente una página cada vez que un visitante la solicita, Hugo hace el edificio cuando crea su contenido. Dado que los sitios web se ven con mucha más frecuencia de lo que se editan, Hugo está optimizado para la visualización del sitio mientras proporciona una gran experiencia de escritura.

Los sitios construidos con Hugo son extremadamente rápidos y muy seguros. Los sitios se pueden alojar en cualquier lugar, incluyendo Heroku, GoDaddy, DreamHost, GitHub Pages, Netlify, Surge, Aerobatic, Firebase Hosting, Google Cloud Storage, Amazon S3 y CloudFront, y funcionan bien con CDNs. Los sitios se ejecutan sin dependencias en tiempos de ejecución costosos como Ruby, Python o PHP y sin dependencias en ninguna base de datos.

¿Por qué Hugo es diferente?

Los generadores de sitios web procesan contenido en archivos HTML. La mayoría son generadores de sitios dinámicos. Esto significa que el servidor HTTP ejecuta el generador para crear un nuevo archivo HTML cada vez que un usuario desea ver una página.

Crear la página de forma dinámica significa que la computadora que aloja el servidor HTTP tiene que tener suficiente memoria y CPU para ejecutar el generador de forma efectiva durante todo el día. Si no, el usuario tiene que esperar en una cola para que la página se genere.

Nadie quiere que los usuarios esperen más tiempo de lo necesario, por lo que los generadores de sitios dinámicos programaron sus sistemas para almacenar en caché los archivos HTML. Cuando se almacena un archivo en caché, una copia de él se almacena temporalmente en el equipo. Es mucho más rápido para el servidor HTTP enviar esa copia la próxima vez que se solicita la página que generarla desde cero.

Hugo lleva el almacenamiento en caché un paso más allá. Todos los archivos HTML se representan en tu computadora. Puedes revisar los archivos antes de cargarlos al servidor HTTP. Por ello se dice que Hugo es un generador de sitio estático.

No ejecutar un generador de sitios en el servidor HTTP tiene muchas ventajas. La más notable es el rendimiento.

Hugo tiene dos componente para ayudarte a construir y probar tu sitio web. El que probablemente uses más a menudo es el servidor HTTP incorporado. Cuando ejecutas el hugo server, Hugo procesa todo su contenido en archivos HTML y luego ejecuta un servidor HTTP en tu ordenador para que puedas ver cómo son las páginas.

El segundo componente se utiliza cuando estás listo para publicar tu sitio web online. Ejecutando Hugo sin ninguna acción reconstruirá tu sitio entero usando la baseURL del archivo de configuración de tu sitio.

¿Qué hace Hugo?

Hugo toma un directorio fuente de archivos y plantillas y los usa como entrada para crear sitios web completos.

Hugo tiene las siguientes características:

  • Tiempos de construcción extremadamente rápidos.

  • Completamente en todas las plataformas: Mac OS, Linux, Windows y más!

  • Fácil instalación

  • Realiza cambios de forma instantánea con LiveReload conforme vas desarrollando

  • Soporte completo para temas.

  • Hospeda tu sitio en cualquier host.

  • Organización sencilla

  • Soporte para secciones de sitios web.

  • URL completamente personalizables

  • Soporte para taxonomías configurables que incluyen categorías y etiquetas. Puedes crear tu propia organización personalizada de contenido.

  • Capacidad de ordenar el contenido como desees.

  • Generación automática de tabla de contenidos.

  • Soporte de URL amigable.

  • Soporte maestro de permalink.

  • Alias (redirecciones).

  • Soporte nativo para contenido escrito en Markdown. Soporte para otros idiomas a través de ayudantes externos (ver formatos compatibles).

  • Soporte para metadatos TOML, YAML y JSON en frontmatter.

  • Página completamente personalizable

  • Compatibilidad con varios tipos de contenido

  • Resúmenes automáticos y definidos por el usuario.

  • Shortcodes para permitir contenido enriquecido dentro de Markdown

  • Funcionalidad "Minutos para leer".

  • Funcionalidad "Contar palabras".

  • Compatibilidad con comentarios Disqus.

  • Soporte integrado de Google Analytics.

  • Creación automática de RSS.

  • Soporte para plantillas HTML de Go, Amber y Ace.

  • Destacado de sintaxis impulsado por Pygments.

Instalación de Hugo

La instalación es muy fácil. Simplemente descarga la versión apropiada para tu plataforma desde Hugo Releases. Una vez descargado se puede ejecutar desde cualquier lugar. No es necesario instalarlo en una ubicación global. Esto funciona bien para hosts compartidos y otros sistemas donde tú no tienes una cuenta privilegiada.

Lo ideal sería instalarlo en algún lugar de tu PATH para facilitar su uso. /usr/local/bin es la ubicación más probable.

En MacOS, si tienes Homebrew, la instalación es todavía más fácil: tan sólo ejecuta brew update && brew install hugo.

Para una explicación más detallada, sigue las guías de instalación correspondientes:

Instalación de Hugo en Ubuntu

Hugo fue incluido en Debian y Ubuntu en 2016, y por tanto la instalación es tan simple como ejecutar en un terminal:

sudo apt install hugo

Pros:

  • Paquete nativo Debian/Ubuntu mantenido por desarrolladores de Debian.

  • Preinstalación de script de finalización bash y páginas de manual para una mejor experiencia interactiva.

Contras:

  • Puede que no sea la última versión, especialmente si estás usando una versión estable más antigua.