« Vers l'infini et au-delà »
Suivez la création de mon nouveau blog.
Publié le 12 novembre 2024Suivez la création de mon nouveau blog.
Publié le 12 novembre 2024Nouveau jour, nouveau projet. J'ai envisagé d'ajouter un blog à mes diverses activités pour documenter mes avancées et choix sur mes différents projets.
En pleine phase de test de mon nouveau VPS et Dokploy, une solution d'hébergement auto-gérée semblait idéale pour accroître ma flexibilité.
La simplicité était ma priorité, et comme j'aime écrire en markdown, et que j'avais déjà un système de site statique, il me fallait une solution qui intègre bien ces éléments.
J'ai initialement considéré Hugo, un générateur de site statique populaire, car il permet d'écrire facilement des articles et de choisir parmi plusieurs thèmes, ou même de les créer soi-même. Cependant, après quelques tests, j'ai trouvé que Hugo générait trop de fichiers superflus, ce qui ne correspondait pas à mon besoin d'épuration.
C'est alors que m'est venue l'idée, peut-être un peu audacieuse, de développer mon propre moteur de génération de blog. En fin de compte, j'ai choisi de programmer ce moteur en Python, un langage que je maîtrise bien et qui offre la flexibilité nécessaire pour intégrer diverses fonctionnalités personnalisées tout en restant léger.
Pour la mise en place de mon blog, j'ai créé des templates HTML : un pour l'accueil qui liste tous les posts par ordre décroissant et un autre pour les détails de chaque article. Pour le style, j'ai opté pour un CSS minimaliste, favorisant un design épuré et fonctionnel.
J'ai implanté des balises spécifiques dans les fichiers HTML pour que mon script puisse les reconnaître et remplacer les contenus dynamiques, comme les titres et les dates des articles. Les configurations globales du site, telles que le nom du blog et sa description, sont gérées via un fichier config.yaml
placé à la racine du projet.
Chaque article en markdown comprend une section pour les métadonnées essentielles comme le nom, la date, la description, et parfois une image.
Le script principal en Python automatise la transformation des fichiers Markdown en HTML, en utilisant les templates préparés. Ce script prend comme entrées les articles en Markdown, les images associées, et le fichier de configuration pour générer le dossier web/
avec le site mis à jour.
J'ai également développé un second script qui simplifie l'ajout de nouveaux articles en préparant automatiquement les bonnes métadonnées nécessaires pour chaque post. Ce système assure une cohérence dans la présentation des articles et élimine les erreurs manuelles potentielles lors de leur création.
Pour l'automatisation du déploiement, j'ai préparé un Dockerfile simple qui commence par récupérer toutes les sources nécessaires, installer lighttpd pour le service web, et copier les sources finales. Une étape préliminaire exécute le script Python pour générer le dossier web/
, s'assurant que le contenu est toujours à jour.
Après avoir configuré une application sur Dokploy et associé mon sous-domaine, j'ai relié mon dépôt GitHub pour une mise à jour automatique du site à chaque commit sur la branche principale.
Ce projet de blog a été avant tout un divertissement, une expérimentation amusante qui m'a permis de mettre en place rapidement un blog fonctionnel. Bien que le design nécessite quelques retouches, le blog remplit bien son rôle de journal pour mes projets.
C'est une solution personnalisée, faite en une journée, qui convient parfaitement à mes besoins de documentation.