Un blog avec Hugo
Ce blog est généré statiquement avec Hugo, un framework léger pour créer des sites. Petit tuto de mise en place.
Initialisation
Tout d'abord on installe le binaire Hugo sur sa machine. Sur MacOS j'utilise le gestionnaire de paquets Homebrew.
1brew install hugo
Ensuite on crée le projet de site et on le versionne :
1hugo new site aerogus.net
2cd aerogus.net
3git init
Si on ne veut pas coder son thème, on se le choisit parmi les 300 thèmes proposés dans la galerie des thèmes puis on l'intègre sous forme un submodule git. Cela permettra de profiter des mises à jour du thème.
1git submodule add https://github.com/mitrichius/hugo-theme-anubis.git themes/anubis
Dans archetypes/default.md
se trouve le modèle généré à chaque création de contenu, on peut le customiser
1---
2title: "{{ replace .Name "-" " " | title }}"
3date: {{ .Date }}
4tags: []
5draft: true
6---
Dans config.yaml
de la racine se trouve la configuration générale du blog, voici la mienne
1baseURL: "https://aerogus.net/"
2languageCode: "fr-FR"
3DefaultContentLanguage: "fr"
4title: "Blog de Guillaume Seznec"
5theme: "anubis"
6paginate: 10
7
8menu:
9 main:
10 - identifier: about
11 name: À propos
12 title: À propos
13 url: /a-propos/
14 weight: 1
15 - identifier: tag
16 name: Étiquettes
17 title: Étiquettes
18 url: /tags/
19 weight: 2
20 - identifier: archive
21 name: Archive
22 title: Archive
23 url: /posts/
24 weight: 3
25
26taxonomies:
27 tag: "tags"
Ajout de contenus
1hugo new posts/titre-de-l-article.md
Déploiement
Le script suivant utilise rsync
et nécessite un accès ssh
sur le serveur distant.
créer un fichier de configuration .env
sur ce modèle :
1DEPLOY_USER=ssh_user # login ssh
2DEPLOY_HOST=example.com # host ou ip destination
3DEPLOY_PORT=22 # port ssh
4DEPLOY_DIR=/var/www/html/ # garder le slash final
copier le script deploy.sh
suivant :
1#!/bin/sh
2##
3# Déploiement du blog hugo sur le serveur d'hébergement
4##
5
6if [ ! -f ".env" ]; then
7 echo ".env introuvable"
8 exit -1
9fi
10
11# Import des variables de déploiement
12. ".env"
13
14# mode 1 seul thème
15#CONFIF_FILE="config.yaml"
16
17# mode choix du thème (passé en paramètre)
18THEME=$1
19if [ -z $THEME ]; then
20 THEME="anubis"
21fi
22
23CONFIG_FILE="config-$THEME.yaml"
24
25if [ ! -f "$CONFIG_FILE" ]; then
26 echo "$CONFIG_FILE introuvable"
27 exit -1
28fi
29
30# Génération du blog
31hugo --config $CONFIG_FILE
32
33# Déploiement
34rsync -avz -e "ssh -p ${DEPLOY_PORT}" --delete "public/" "${DEPLOY_USER}@${DEPLOY_HOST}:${DEPLOY_DIR}"
35
36exit 0
Usages :
1./deploy.sh
2./deploy.sh $THEME_NAME