Initialisation d'un blog avec Pelican sur GitLab Pages!
Tue 28 May 2024Introduction¶
Un des défis quand on cherche à partager du contenu, c’est de le faire simplement et avec efficience.
Je suis à la recherche d’un moyen d’écrire des articles autour du Devops et de publier ces articles sur un blog. L’idée est simplement de décrire comment on pratique l’installation d’applications et l’automatisation des tâches dans une DSI.
J’ai donc essayé diverses méthodes pour créer un blog :
- Blogger de Google en SaaS, mais la mise en forme du code et du texte n’est pas simple
- Wordpress dans des containers, mais il y a beaucoup de paramètres à configurer avant l’utilisation.
- Et enfin Pelican sur GitLab Pages, a découvrir
Voici un petit exemple de ce que ça peut donner sur blogger. Mais j’ai eu beaucoup de mal à réaliser la mise en forme :

Dans cet article, je vous propose de décrire l’installation de Pelican et l’utilisation pour développer.
Un blog as Code¶
Gérer le contenu de mon blog comme du code permettra de fusionner la puissance d’un gestionnaire de version comme Git (et les pipelines qui compileront le contenu) avec l’efficience d’un site web statique (html).
- Workflow efficace : Git permet de gérer les modifications du contenu du blog et de les partager avec d’autres contributeurs, tandis que Pelican génère automatiquement les pages web statiques à partir du contenu.
- Développement agile : Les branches Git permettent de tester de nouvelles fonctionnalités ou de corriger des bugs sans affecter le contenu principal du blog.
- Hébergement flexible : Git permet d’héberger le blog sur des plateformes comme Gitlab Pages, tandis que Pelican génère des pages web statiques compatibles avec ces plateformes.
Création du dépôt Git¶
Gitlab propose des modèles de projet déjà prévu pour Pelican. Il suffit de créer un nouveau projet Gitlab et de sélectionner le modèle : Pages/Pelican.
Ce template va initialiser le dépôt git et tout le code nécessaire pour utiliser Pelican.

Cette action a créé l’arborescence du dépôt comme décrite ci-dessous, il faudra maintenant cloner sur la station de travail le code pour l’éditer en local.
git clone https://gitlab.com/<USERNAME>/<REPO_NAME>.git
Les fichiers¶
Voici un petit descritifs des fichiers initialisés :
/
- content/ # Fichier de contenu du site web: articles markdown, images, ...
- pelicanconf.py # Fichier de configuration de pelican
...
Sous gitlab voici ce que ca donne :

Ajout d’un themes¶
Après quelques recherches, j’ai choisi d’utiliser le thème pelican-hyde suffisamment épuré et élégant pour mon besoin.
Pour l’installer, on télécharge le thème, on l’ajoute au dépôt git :
curl -L -O https://github.com/jvanz/pelican-hyde/archive/refs/heads/master.zip
unzip master.zip
git add pelican-hyde-master
rm -r master.zip
echo "THEME = 'themes-hyde'" >> pelicanconf.py
git add pelicanconf.py
git commit -m "Add pelican-hyde-master themes"
git push origin master:feat/add-pelican-hyde-master
On ira ensuite sur Git pour créer la merge-request et la merger sur la branche master
Ajout de domaines pour les pages¶
On peut ajouter dans gitlab-pages des mapping de domaines. Cela permet de servir nos pages statiques sur nos domaines sans utiliser une URL trop compliqué.
De mon côté, j’ai configuré le domaine comme ci-dessous :

Contribuer¶
Et voilà, il suffit maintenant de rédiger des articles au format markdown et de les pousser dans Git. On peut très bien utiliser les relectures et contributions (PullRequest) pour bénéficier de toute la puissance de Git.
Cloud Ops Chronicles