Init
This commit is contained in:
commit
f456ac362a
|
@ -0,0 +1,65 @@
|
|||
---
|
||||
title: "Hugo - bonnes pratiques"
|
||||
date: 2021-03-28T11:48:56+02:00
|
||||
draft: false
|
||||
---
|
||||
# Hugo et bonnes pratiques
|
||||
**Hugo** est un générateur de site, simple, flexible et pratique.
|
||||
|
||||
Mais travailler proprement, c'est encore mieux.
|
||||
|
||||
L'objectif de cette _fiche_ c'est de réunir des bonnes pratiques sur l'organisation et les usages autour d'Hugo.
|
||||
|
||||
Au terme de l'évolution de cet article, nous aurons un site dont le contenu est séparé du moteur, en intégration continue et en publication continue.
|
||||
|
||||
# Par ou on commence ?
|
||||
Hugo, c'est un simple binaire. On peut le mettre n'importe ou.
|
||||
|
||||
Ce type d'utilitaires en dehors de la distribution - binaires statiques, je les stocks dans un répertoire `~/bin` et je modifie le PATH de mon shell.
|
||||
|
||||
# Configuration, thèmes et contenu
|
||||
## git pour les gouverner tous
|
||||
Chaque catégorie d'éléments à un cycle de vie différent, des accès différents, des règles de sauvegarde différents etc..
|
||||
* le fichier de configuration du site évolue peu, les fichiers assets ont une vie différente du thème choisi
|
||||
* la rédaction d'articles peut se faire à plusieurs, utiliser des branches, des MR ou pour les gros sites, des accès différents entre les personnes en charge du design et les rédacteurs est probable
|
||||
|
||||
Il est donc important de les séparer autant que possible.
|
||||
|
||||
J'utilise un répertoire `~/git` pour stocker tout mes dossiers gérés par git, ou les projets que je suis. Ça facilite les recherches, et mises à jour.
|
||||
|
||||
Ainsi, pour un site internet je vais avoir :
|
||||
|
||||
~/git/atlanticaweb.fr
|
||||
~/git/atlanticaweb.fr/themes/theme_en_sumodule
|
||||
~/git/content_atlanticaweb.fr => dossier contenant les pages et les posts du site
|
||||
|
||||
# gitignore
|
||||
|
||||
Tout ne doit pas être géré par git. Un site Hugo génère des fichiers ressources et des fichiers constituant le site internet. Ces derniers étant construit à partir du dossier _content_ nous avons aucune raison d'assurer un suivi.
|
||||
|
||||
Le fichier gitignore se résume donc à :
|
||||
|
||||
ressource
|
||||
public
|
||||
|
||||
# sauvegardes
|
||||
La sauvegarde d'un site hugo, doit inclure les éléments suivants :
|
||||
* répertoire du site
|
||||
* répertoire du contenu
|
||||
* le binaire hugo qui à permis de générer le site
|
||||
|
||||
Ce qui donne :
|
||||
* Initialisation du repo
|
||||
|
||||
~/bin/restic -r sftp:backup:/home/alexandre/backup/atlanticaweb.fr init
|
||||
|
||||
* Sauvegarde du site
|
||||
|
||||
/bin/restic -r sftp:backup:/home/alexandre/backup/site-atlanticaweb.fr backup --exclude-if-present .git --exclude .git ~/bin/hugo git/content-atlanticaweb.fr git/atlanticaweb.fr
|
||||
|
||||
# Ce qui reste à faire
|
||||
* Programmer la sauvegarde via systemd
|
||||
* Mettre en place un linter pour le markdown
|
||||
* Faire de l'intégration continue avec drone
|
||||
* Faire notre politique de déploiement
|
||||
* Automatiser la mise en place de tout ça via Bolt
|
Reference in New Issue