Jekyll est un générateur de site statique qui transforme des fichiers Markdown en un site web pleinement fonctionnel. Tout est généré en HTML simple, ce qui facilite le déploiement sur des plateformes comme GitHub Pages.
Écriture avec Obsidian
J’utilise Obsidian pour l’écriture car :
- Il prend en charge Markdown, ce qui facilite la mise en forme des articles.
- Je peux organiser mes posts avec des balises et des métadonnées.
- Il centralise mes écrits avant publication.
Chaque article de blog contient des métadonnées indiquant s’il est prêt à être publié. Les brouillons sont exclus du traitement.
Utilisation des Templates dans Obsidian
Pour standardiser mes articles de blog, j’utilise des templates dans Obsidian. Ceux-ci permettent de maintenir une cohérence entre les posts et d’accélérer le processus d’écriture. Ainsi, à chaque fois que je veux commencer un nouvel article, je crée d’abord une note de planification avec des idées et des références. Ensuite, je crée une note d’article contenant le texte complet et les métadonnées.
En utilisant Dataview, un plugin Obsidian qui permet d’interroger et d’afficher dynamiquement du contenu en fonction des métadonnées, je peux suivre l’avancement de mes posts, identifier les traductions manquantes et voir les notes associées.
Jekyll-Multiple-Languages-Plugin
Le plugin jekyll-multiple-languages-plugin
me permet d’organiser mon contenu en plusieurs langues en créant des versions différentes de chaque article. Voici son fonctionnement :
-
Mon blog prend en charge l’anglais, le portugais et le français, configurés dans
_config.yml
:languages: - en - pt - fr default_lang: en
-
Chaque langue dispose de son propre répertoire dans
_i18n/
, par exemple :_i18n/en/_posts/2025-02-01-my-post.md _i18n/pt/_posts/2025-02-01-meu-post.md
-
Le plugin génère automatiquement des URLs spécifiques à chaque langue :
https://adrianogil.github.io/blog/en/2025/02/my-post/ https://adrianogil.github.io/blog/pt/2025/02/meu-post/
-
Les utilisateurs peuvent changer de langue à l’aide d’un sélecteur de langue dans l’interface du blog.
Automatisation du Traitement des Articles avec Python
Copier manuellement les fichiers Markdown, gérer les images et manipuler les métadonnées peut être fastidieux. Pour simplifier le processus, j’utilise un script Python qui automatise les tâches suivantes :
- Extraire les articles de mon coffre Obsidian.
- Copier et traiter les images.
- Formater les métadonnées pour Jekyll.
- Placer le post final dans le répertoire de mon blog sur GitHub Pages.
Récupération des Notes
D’abord, il rassemble les notes marquées avec une balise spécifique (GilLabs/posts/text
).
notes = get_notes_from_index(target_tags=["GilLabs/posts/text"], as_obsidian_notes=True)
notes = [note for note in notes if not note.metadata.get("draft", True)]
Cela garantit que seuls les articles publiés sont traités.
Génération du Fichier de Blog pour Jekyll
Chaque article est formaté selon la structure _posts
de Jekyll avec la bonne date, langue et catégories. Les métadonnées telles que le titre, la mise en page et les catégories sont conservées.
---
categories: git
date: '2025-02-01 16:41:00 '
lang: en
lang-ref: intro-git
layout: post
title: Premiers pas avec Git
updated: 2025-02-01T16:41
---
## Introduction
Salut ! Il m'arrive souvent d'expliquer Git à partir de zéro,...
4. Déploiement du Blog
Une fois que le script a mis à jour les fichiers HTML de mon projet Jekyll, je n’ai plus qu’à :
-
Construire le site avec :
jekyll build
-
Pousser les changements sur GitHub Pages avec :
git add . git commit -m "Nouveau post de blog" git push origin main
En quelques minutes, mon blog est en ligne !