Présentation de easy-hugo
Ce blog est statique, et s’appuis sur Hugo.
Le workflow de base, c’est écrire un nouveau fichier, générer les fichiers html, vérifier que tout est OK et copier les fichiers générés sur le serveur distant, avec rsync.
L’idéal c’est de mettre un workflow de CI/CD qui va automatiquement publier le code généré, lorsque le nouvel article est ajouté au git. Mais ajouter ce type de workflow, nécessite de configurer des outils complémentaires comme woodpecker. C’est la prochaine étape, peut-etre (mode flemme).
En attendant, pour me faciliter la tâche, j’ai opté pour easy-hugo.
easy-hugo est un mode emacs qui facilite le travail.
J’utilise principalement les commandes suivantes :
- easy-hugo
- easy-hugo-preview
- easy-hugo-publish
- easy-hugo-newpost
Configuration
La configuration de ce mode est très simple :
(use-package easy-hugo
:init
(setq easy-hugo-basedir "~/git/atlanticaweb.fr")
(setq easy-hugo-postdir "content/post")
(setq easy-hugo-default-archetype "post")
(setq easy-hugo-url "https://atlanticaweb.fr")
(setq easy-hugo-previewtime "300"))
(setq easy-hugo-server-flags "-D")
(setq easy-hugo-sshdomain "atlanticaweb.fr")
(setq easy-hugo-root "/srv/www/atlanticaweb.fr/")
(setq easy-hugo-default-ext ".org")
Par défaut, quand on appelle la commande easy-hugo-newpost c’est un fichier markdown qui est proposé.
C’est l’option easy-hugo-default-ext qui permet de choisir un autre format par defaut parmis ceux supportés (rst, org etc..)
Le nom des options est facile à comprendre, elles permettent de définir le dossier qui contient le site, les nouveaux articles, l’url, le temps ou les objets générés sont accessibles, le mode du serveur preview, la connexion ssh, le dossier sur le serveur distant et donc le format des fichiers.
Le nom des commandes est également facile à comprendre:
- easy-hugo-preview : lance hugo en mode serve pour prévisualiser l’article
- easy-hugo-publish : transforme les fichiers en html et les pousses sur le serveur web
- easy-hugo-newpost : crée un nouvel article en s’appuyant sur le modèle (de base ou celui créé).
Vous pouvez facilement créer votre template, il suffit de mettre dans le dossier ~/.emacs.d* un dossier nommé easy-hugo-templates/
Ce mode permet de publier sur beaucoup d’infra différente, et simplifie franchement le travail.