6 points par GN⁺ 2025-05-04 | 5 commentaires | Partager sur WhatsApp
  • Exemple de création d’un blog sans Jekyll, Ghost ni WordPress
  • Les exigences de base sont l’utilisation d’un domaine possédé, la génération d’un site statique, le respect du SEO et l’ajout simple d’articles
  • L’architecture centrale repose sur template.html, le script render.py et la rédaction d’articles en Markdown pour rendre automatiquement toutes les pages
  • La bibliothèque Python markdown2 est utilisée pour automatiser la conversion Markdown → HTML et la génération des pages
  • L’accent est mis sur une structure permettant d’ajouter facilement du contenu tout en respectant le SEO et les standards web modernes

Exigences du blog

  • Utiliser un domaine déjà possédé
  • Conserver des standards web modernes et une bonne compatibilité SEO
  • Ajouter des articles doit être très simple
  • Toutes les pages doivent être générées statiquement

Résumé de la mise en œuvre

  • Création du fichier template.htmlmise en place de la structure HTML de base
  • Installation de l’outil de rendu Markdown avec la commande pip install markdown2
  • Demande à O1 d’un script Python de rendu (render.py)
  • Rédaction des articles dans le dossier posts/ au format eng.md
  • Exécution de render.py pour convertir en HTML et générer le dossier de sortie

Modèle HTML principal (template.html)

  • La structure HTML est simple et minimaliste, avec insertion du rendu Markdown à l’emplacement de {{ content }}
  • Le CSS assure la lisibilité grâce à une police basée sur system-ui, un padding adaptatif et des réglages comme color-scheme

Script Python principal de rendu (render.py)

  • Utilise markdown2 pour convertir chaque article Markdown en HTML
  • Lors de la conversion, les chemins <img> sont automatiquement remplacés par /posts/{post_code}/
  • Le titre HTML est extrait du # de niveau 1 du Markdown
  • index.html est composé de greetings.md + de la liste des titres de chaque article
  • Le résultat est enregistré au format .html dans le dossier ./blog/

5 commentaires

 
ifmkl 2025-05-07

Moi aussi, j’exploite actuellement mon blog exactement de cette façon. J’utilise un SSG que j’ai créé pour répondre à mes besoins personnels. J’y ai ajouté des fonctionnalités personnalisées, notamment pour gérer les images de miniature, les catégories et les tags. Les images jointes sont automatiquement converties en webp et référencées comme telles, ce qui me donne une vitesse de rendu très satisfaisante.

 
winterjung 2025-05-07

Oh, donc vous ajoutez ce genre de fonctionnalités personnalisées en écrivant directement le code au fur et à mesure ? Moi aussi, j’essaie toujours de faire les choses en DIY, mais j’hésite à chaque fois à cause des fonctions d’extension et des plugins proposés par les frameworks de blog SSG que j’utilisais déjà.

 
ifmkl 2025-05-07

Il suffit de se débarrasser du superflu, et le reste n’est pas vraiment si difficile. Même avec ssg, si vous le demandez à une IA, elle écrit tout le code, et si vous lui demandez d’ajouter des fonctionnalités, elle peut en fait toutes les ajouter aussi, haha.

 
ndrgrd 2025-05-04

Quand on choisit juste une jolie police, ça devient assez agréable à lire.

 
GN⁺ 2025-05-04
Avis Hacker News
  • Au lancement du blog, utilisation d’un SSG, puis migration vers Wordpress pour gagner en liberté

    • Il est important d’éviter les outils qui gênent l’écriture
    • Il faut éviter de procrastiner afin de rester concentré sur l’écriture
  • Deux éléments nécessaires pour qu’un site puisse vraiment être considéré comme un blog

    • Les articles doivent être classés par date et afficher leur date de publication
    • Un flux RSS est nécessaire
  • Attachement aux sites web indépendants

    • Un site commencé il y a 25 ans en ASP fonctionne aujourd’hui avec Common Lisp
    • Démarrage avec un site aux fonctionnalités minimales, puis ajout progressif de fonctionnalités
    • Les nouvelles idées sont toujours tentantes, mais il faut veiller à ce que le projet ne devienne pas incontrôlable
  • Souhait d’un support natif dans le navigateur pour text/markdown et text/gemini

    • La prise en charge d’autres formats abaisse la barrière à la publication et redonne le contrôle aux utilisateurs
  • Signalement d’un bug où la chaîne « Minimum viable blog » est remplacée par le titre du post

  • Exploitation d’un blog avec de simples pages HTML auparavant, puis passage à Astro pour un site plus évolué

    • Astro est une plateforme optimisée pour les sites centrés sur le contenu
  • Expérimentation avec Bun JS et l’utilisation de HTML sous forme de chaînes JS

    • L’IDE IntelliJ détecte le HTML et prend en charge le formatage ainsi que la coloration syntaxique
  • Quelques astuces apprises en 15 ans d’expérimentation autour d’un blog minimaliste

    • JSX est utile comme générateur de chaînes côté serveur
    • GH Pages est plus simple à utiliser que Jekyll
    • highlight.js reste utile pour la coloration syntaxique du code
  • Facilité des frameworks standard de blogging statique avec Hugo/Zola et Cloudflare Pages

    • Utilisation du thème Hugo Blog Awesome
    • Maintien de la taille des pages sous 512kb
  • En remettant en route un ancien blog, expérience des difficultés de Hexo

    • Les thèmes ne fonctionnant pas correctement, réflexion en cours sur le développement d’un thème maison
    • La complexité peut augmenter, mais des efforts sont en cours pour résoudre le problème