hugo è uno Static Site Generator in linguaggio go. Un generatore di siti statici permette di creare l’intera struttura del sito direttamente in HTML. Le caratteristiche fondamentali di Hugo sono: velocità nel rendering statico delle pagine, semplicità di utilizzo, portabilità e flessibilità.
Un solo eseguibile binario, tipicamente installato in ambiente linux con snap, si utilizza per tutti i comandi.
hugo version
hugo new site quickstart
Crea un nuovo progetto web nella cartella quickstart
Il sito themes.gohugo.io mostra i vari temi grafici base disponibili. Una volta scaricato va installato nella sottodirectory themes della cartella di progetto (quickstart),
per utilizzare un tema disponibile via git
cd quickstart/themes
git clone <theme-url>
cd quickstart
git init
cd themes
git submodule add <theme-url>
Editare il file config.toml
nella cartella principale del progetto:
baseURL = "https://example.org/"
languageCode = "en-us"
title = "My New Hugo Site"
theme = "ananke"
hugo new posts/my-first-post.md
Crea un nuovo contenuto markdown nella cartella posts (subdirectory di content)
▶ hugo server -D
| EN
+------------------+----+
Pages | 10
Paginator pages | 0
Non-page files | 0
Static files | 3
Processed images | 0
Aliases | 1
Sitemaps | 1
Cleaned | 0
Total in 11 ms
Watching for changes in /Users/bep/quickstart/{content,data,layouts,static,themes}
Watching for config changes in /Users/bep/quickstart/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
oppure
hugo server \
--buildDrafts \
--buildFuture \
--disableFastRender \
--watch \
--source <PROJECT_DIR> \
--destination <PROJECT_DIR>/dev
Aprire il browser all’indirizzo http://localhost:1313/ . per visualizzare l’anteprima del sito.
L’aspetto grafico può essere personalizzato, utilizzando le directory static/css static/js e layouts che hanno precedenza rispetto al tema del progetto.
Per compilare in html le pagine, che vanno nella cartella public, basta dare il comando
hugo \
--ignoreCache \
--cleanDestinationDir \
--source $PROJECT_DIR \
--destination $PROJECT_DIR/public
Una volta installati ssh, rsync, con le oppurtune chiavi ssh, sul server di produzione, si pubblica il sito con
cd public
rsync -auvz --delete $PROJECT_DIR/public/ $WEBSITE_DIR/