#howto - Usare Hugo

Scritto da il
Redatto da
bash
web

Hugo è un generatore di siti statici, opensource, scritto in Go, estremamente veloce, che permette la creazione di siti web statici in modo semplice e veloce. In questo articolo andremo a vedere come installarlo e come usarlo.

Installazione

Per installare Hugo su Linux, abbiamo tre vie, la prima è quella di scaricare il binario dal sito ufficiale, la seconda è quella di installare il pacchetto dal repository della nostra distro, la terza è di utilizzare snap.

Scaricare il binario

Per scaricare il binario, andiamo sul sito ufficiale nella sezione Downloads, scegliamo la versione più recente, e scarichiamo il pacchetto,dopodichè lo decomprimiamo e lo spostiamo nella cartella /usr/local/bin e quindi lo rendiamo eseguibile con il comando chmod +x hugo.

Installare il pacchetto dal repository

Se decidiamo di installare Hugo dal nostro repository allora andremo a cercare il pacchetto hugo e lo installeremo con il nostro gestore dei pacchetti preferito.

Arch Linux

pacman -S hugo

Debian/Ubuntu

apt install hugo

Fedora

dnf install hugo

Installare con snap

Tramite snap invece noi andremo a scaricare il pacchetto dallo store di snap e lo installeremo con il comando:

snap install hugo

Se non avete snap installato o non sapete come usarlo potete leggere questo articolo.

Creare un sito

Prima di tutto andiamo a verificare che Hugo sia installato correttamente, per farlo basterà digitare il comando hugo version, se tutto è andato a buon fine dovremmo ottenere un output simile a questo:

Hugo Static Site Generator <versione> linux/<architettura> BuildDate: <data>

A questo punto possiamo creare il nostro primo sito statico, lo facciamo eseguendo il comando:

hugo new site <nome_sito>

dove <nome_sito> è il nome del sito che vogliamo creare, ad esempio hugo new site mysite, questo comando ci creerà una cartella con il nome del sito che abbiamo scelto. All’interno della cartella troveremo la configurazione di base di Hugo:

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

Le cartelle che ci interessano sono archetypes, content, layouts, static. archetypes contiene i template per i post, content contiene i post del sito, layouts contiene i template per i post e static contiene i file statici (come per esempio immagini, loghi ecc…).

Poi abbiamo il file config.toml che contiene la configurazione del sito, e la cartella themes che contiene i temi che possiamo usare per il nostro sito.

Adesso il nostro sito necessita di un tema del suo primo post, per farlo eseguiamo il comando:

hugo new posts/<nome_post>.md

Notate che l’estensione del post termina con .md, questo perché Hugo supporta diversi formati per i post, tra cui Markdown, HTML, XML ecc… e per indicare a Hugo che il nostro post è in Markdown dobbiamo aggiungere l’estensione .md.

Il post che abbiamo appena creato sarà salvato nella cartella content/posts e avrà un contenuto simile a questo:

---
class: post
title: "<nome_post>"
date: <data>
draft: true
---

Contenuto del post
...

A questo punto possiamo fare il nostro primo build del sito e hostarlo sul in locale, per farlo eseguiamo il comando:

hugo server -D

Nella home del nostro sito,nell’output dovremmo vedere qualcosa di simile a questo:

Start building sites …
hugo <version> linux/<architettura> BuildDate=<date>
                   | EN
-------------------+-----
  Pages            |  4
  Paginator pages  |  0
  Non-page files   |  0
  Static files     |  0
  Processed images |  0
  Aliases          |  0
  Sitemaps         |  1
  Cleaned          |  0

Built in 2 ms
Watching for changes in /home/riot/test/{archetypes,content,data,layouts,static}
Watching for config changes in /home/riot/test/config.toml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

Quindi andiamo su http://localhost:1313/ con il nostro browser e dovremmo vedere il nostro primo sito.

Aggiungere un tema

Perfetto, ma ora il nostro sito è un po’ vuoto, quindi andremo a scaricare un tema e lo useremo per il nostro sito.

Hugo ha un repository con tutti i temi disponibili creati dalla community, tutti i temi sono opensource e gratuiti quindi ci basterà sceglierne uno che useremo per il nostro sito.

Per esempio andiamo a scegliere il tema terminal, per implementarlo al nostro sito possiamo scaricare il tema e copiarlo nella cartella themes del nostro sito, oppure utilizzare git.

Per prima cosa dobbiamo però inizializzare il nostro sito come un repository git, per farlo eseguiamo il comando:

git init
git add .
git commit -m "init"

Poi possiamo aggiungere il tema come submodule, per farlo eseguiamo il comando:

git submodule add -f https://github.com/panr/hugo-theme-terminal.git themes/terminal

Per verificare che il tema sia stato installato correttamente possiamo eseguire il comando:

hugo server -t terminal -D

dove -t terminal indica il tema che vogliamo usare. Se tutto è andato a buon fine dovremmo vedere il nostro sito con il tema che abbiamo scelto.

Per apportare modifiche al tema possiamo andare nella cartella themes/terminal e modificarlo, ma se vogliamo aggiornare il tema dobbiamo fare un git pull nella cartella themes/terminal e poi eseguire il comando hugo server -t terminal -D per vedere le modifiche apportate.

history_edu Revisioni