đŸ’Ÿ Archived View for bwog-notes.chagratt.site â€ș 2019 â€ș migration-de-pelican-%C3%A0-hugo â€ș index.gmi captured on 2024-08-31 at 11:50:47. Gemini links have been rewritten to link to archived content

View Raw

More Information

âŹ…ïž Previous capture (2024-07-08)

-=-=-=-=-=-=-

Migration de Pelican Ă  Hugo

RĂ©digĂ© le 14 octobre 2019. Étiquettes : blog hugo pelican

Ca y est !

Voici la nouvelle version du BWog-notes ! Youpi !

En plus du changement d'hébergement, la pile technique a changé.

Auparavant, le générateur était

Pelican

, maintenant c'est

Hugo

.

Voici mes raisons, et mes observations liées.

DĂ©jĂ , pourquoi un site statique ?

J'ai arrĂȘtĂ© les sites persos dynamiques voilĂ  un moment dĂ©jĂ .

Flemme de maintenir, flemme d'apprendre à utiliser des frameworks, flemme de gérer des BDD et des quotas d'espace disque, etc.

Et à l'époque, pas assez de sous / connaissances pour me lancer sur mon propre hébergement.

Je n'ai toujours été que sur des espaces mutualisés gratuit, sans réel nom de domaine (jusqu'à présent).

Dans ces conditions, le plus simple Ă©tait donc, pour rester en ligne, d'avoir un site statique.

Du coup, c'Ă©tait comment avant ?

DĂ©jĂ , c'Ă©tait pas mieux.

J'avais bricolé un ensemble de scripts python tout gros, tout moche, pas optimisé, qui me gobait des pages html fabriquées à la main,

et qui assemblait le tout pour en faire un site complet, directement hĂ©bergeable, sans prise de tĂȘte autre que celle de bien Ă©crire le html

(manuellement, Ă  chaque fois, sur chaque page).

Rustique, artisanal quoiqu'un peu dégueulasse, mais ça faisait le boulot.

M'enfin je me rendais bien compte que c'était pas terrible, ça me demandait aussi bien du temps pour la rédaction, que la mise en page.

Et oui, y'avait pas de templates ! Ni aucune fonction « moderne » pour itérer magiquement sur le contenu.

Sans compter les nombreux bugs qui freinaient le processus.

J'ai voulu tout réécrire de zéro, mais je me suis plutÎt demandé s'il n'existait pas quelque chose de déjà fait, et surtout mieux.

Vint alors Pelican sur la table.

C'était en python, mon langage phare de l'époque[^1], il y avait des templates, et ça semblait plutÎt facile à prendre en main.

Ni une, ni deux, j'adopte !

Et je lance le BWog-notes par la mĂȘme occasion.

Pourquoi changer de générateur ?

Et bien parce que c'Ă©tait cool, mais pas top !

MĂȘme si les virtualenvs, ça fait grave le cafĂ©, pour avoir un Pelican fonctionnel, il faut installer Pelican (pip install pelican),

et rapidement d'autres trucs.

Exemple, rien que pour rédiger en markdown, faut rajouter pip install Markdown.

Ensuite, pour les bouts de code pip install pygments, et lui faire générer un CSS à inclure sur le site.

Faut pas oublier d'activer le virtualenv avant ça d'ailleurs, et mĂȘme pour chaque rĂ©daction.

Et puis ça génÚre ouate mille fichiers de conf, d'automatisation de génération, etc.

Heureusement, il existe plein de plugins pour étendre les fonctionnalités, mais bon, c'est soit trop restreint (en termes de fonctionnalités),

soit overkill.

Et c'est pas pour jeter la pierre aux mainteneurs, je sais que ça prend du temps, mais ils sont souvent datés.

Par exemple pour les figures avec légende, et lien cliquable vers la grande version de l'image,

j'ai du

bidouiller le plugin figureAltCaption

.

Du coup, mĂȘme si j'ai passĂ© beaucoup de temps avec Pelican, en Ă©tant trĂšs content hein, j'ai fini par avoir des envies de changement.

Le changement de générateur

J'ai migrĂ© rĂ©cemment Pintes et Growls (lien dans la page « À propos »), et j'en ai profitĂ© pour tester Hugo.

AprĂšs tout, quitte Ă  faire des tests, autant partir sur un projet neuf, afin de bien faire le tour de l'outil.

Pourquoi ce générateur ?

Au delĂ  du bĂȘte « pourquoi pas », c'est surtout parce que dans mes flux RSS, il y a plusieurs personnes qui l'utilisent.

J'avais donc déjà sous le coude des exemples et des retours d'expérience.

Alors, l'installation par rapport Ă  Pelican ?

Et bien installer le binaire (pacman -Sy Hugo pour moi) et ... C'est tout !

Et maintenant, pour moi, Ă  l'utilisation, c'est bien plus simple.

Moins d'étapes (surtout dans mes scripts de synchro / publication), plus rapide, aucune dépendance, tout est inclus.

Et si on veut faire ajouter dans une page quelque qui n'est pas prĂ©vu Ă  la base par le Markdown (mĂȘme exemple, les figures cliquables) :

zou ! Un shortcode (sorte de mini template Ă  appeler dans les sources des articles via une balise qu'on dĂ©finit soi mĂȘme) et c'est parti !

Le nouveau processus

Avant c'Ă©tait :

- source .venv/bin/activate

- ./create_article.sh[^2]

- rédaction

- pelican build

- regarder le résultat

- cd content

- git add . && git commit -m "nouvel article" && git push origin master

- cd ..

- ./publish.sh

- vérifier en ligne le résultat

- deactivate

Maintenant c'est :

- hugo new post/nouvel-article.md

- rédaction

- hugo serve

- vérification

- git add . && git commit -m "nouvel article" && git push origin master

- ./publish.sh

- vérifier en ligne le résultat

Plus besoin du script de création d'article, hugo, via un systÚme de templates d'articles (appelés archetypes),

génÚre un fichier avec préambule et éventuellement début de contenu.

Le script de publication en ligne est Ă©galement plus court.

Et encore, je pourrais mĂȘme virer une Ă©tape en mettant un git hook pour publier dĂšs que je pousse les sources.

Conclusion

Alors sans mauvaise foi, ça va beaucoup plus vite, que ce soit dans mon processus de rédaction,

pour la génération des pages, ou la maintenance / évolution du site.

il faut noter que l'investissement technique (pour moi) est bien plus gros à l'entrée pour Hugo qu'avec Pelican.

Il a fallut recréer le thÚme et les templates[^3], des layouts dans le jargon Hugo, et c'est pas facile à prendre en main,

mĂȘme en reprenant une structure dĂ©jĂ  existante.

Il y a eu un gros temps d'adaptation aux fonctions des templates, Ă  la logique d'organisation des fichiers,

ainsi qu'un certain temps Ă  investir pour convertir / corriger les articles.

Maintenant que c'est fait, je ne regrette pas car je me sens plus Ă  l'aise dans l'utilisation.

A vous de jouer, vous avez tout en main pour choisir ! Alors, n'attendez plus, lancez vous !

[^1]: Entre nous, ça l'est toujours dÚs que je dois prototyper un truc, ou scripter un truc trop haut niveau pour Bash.

[^2]: Un script perso qui pré-génÚre un squelette d'article.

[^3]: Pas envie de prendre un thÚme tout fait, j'avais déjà le mien aprÚs tout.

-------------------------------

← Plus rĂ©cent : Erreur REF_NOT_FOUND avec Hugo

→ Plus ancien : Compresser ses pages : c'est le bien !

Aléatoire : Se passer de gestionnaire de plugin dans Vim

Retour Ă  l'accueil

Contenu sous licence CC-BY-SA