Hugo

Introducción

Hugo es un generador de paginas estáticas creado con Go, lo cual significa una gran rapidez y ligereza al servir el contenido, todo esto aunado a la simpleza que caracteriza a los generadores de paginas estáticas del tipo de Jekyll o Hexo

Instalación de Hugo

La forma mas practica es descargando el instalador .deb (para Gnu/Linux) desde el GitHub de Hugo, esto nos va a permitir tener la ultima versión de Hugo https://github.com/gohugoio/hugo/releases

Una vez instalado revisamos que todo este instalado de forma adecuada

$ hugo env

Hugo Static Site Generator v0.37.1 linux/amd64 BuildDate: 2018-03-07T17:56:25Z
GOOS="linux"
GOARCH="amd64"
GOVERSION="go1.10"

Crear un proyecto

# hugo new site <nombre del proyecto>
$ hugo new site blog

# Nos movemos dentro del nuevo proyecto
$ cd blog

dentro de la carpeta del proyecto veremos una estructura como la siguiente

.
├── archetypes
│   └── default.md
├── config.toml
├── content
├── data
├── layouts
├── static
└── themes

6 directories, 2 files

Instalar un tema

Los temas se pueden descargar desde la pagina de temas de Hugo https://themes.gohugo.io/ ya sea descargando el .zip desde el git del tema o clonandolo dentro de la carpeta themes de Hugo yo en mi caso usare el clonado del repositorio

$ git clone https://github.com/xianmin/hugo-theme-jane.git themes/jane

Seguir las instrucciones del repositorio del tema para hacerlo funcionar en nuestra pagina.

Añadir contenido

Ya que Hugo soporta múltiples directorios se va a crear una carpeta para almacenar los posts generales y nuestro primer contenido en Markdown

# hugo new <archivo.tipo_de_archivo>
$ hugo new holaMundo.md

Iniciar el servidor

Para visualizar en un navegador el contenido de Hugo se ejecuta el servidor local de Hugo

$ hugo server

# Para visualizar con todo y borradores (draft)
$ hugo server -D

Generar la pagina estática de nuestro proyecto

$ hugo

Esto generara una carpeta llamada public con todo lo necesario para desplegar en nuestro hosting

Si se piensa usar GitHub Pages solo es necesario subir el contenido de public a nuestro repositorio