Susie
Le générateur de site statique sans superflu
Susie est un générateur de sites statiques et de blogs développé selon les principes de la philosophie suckless : sobriété, contrôle total, zéro dépendance et performance brute.
Conçu en PHP CLI et scripts Bash natifs, Susie élimine totalement le besoin d'outils lourds (npm, node_modules, Composer). Il permet d'éditer facilement son site en local et de compiler l'intégralité du contenu en pages HTML/CSS statiques pures et instantanées.
Fonctionnalités principales
- Zéro dépendance externe : Fonctionne uniquement avec PHP CLI et Bash. Aucun risque de casser le site lors d'une mise à jour de dépendances tierces.
- Gestion souple des formats :
- Articles : Écrits en Markdown (
.md) avec en-tête Frontmatter (Titre, Catégorie, Meta-description, ID du fil Mastodon). - Pages : Au choix en Markdown (
.md), HTML pur ou PHP.
- Articles : Écrits en Markdown (
- Templating PHP natif : Pas de moteur de rendu lourd (comme Twig ou Blade). Les templates utilisent la puissance et la simplicité du PHP natif.
- Configuration centralisée (
config.ini) : Gestion simple des métadonnées du site (Nom du site, bascule d'activation des commentaires, adresses de contact, liens LinkedIn, Mastodon, etc.). - Commentaires natifs via Mastodon : Intégration légère de l'API Mastodon pour transformer les réponses à un pouet en fil de commentaires d'article, sans traqueurs ni cookies tiers.
- Automatismes intégrés : Génération automatique du flux RSS et du fichier sitemap.xml à chaque build.
- Moteur de recherche plein texte par chunking & fuzzy search :
- Au build : Extraction du texte, filtrage des stop words (mots vides) et découpage de l'index par première lettre dans des micro-fichiers JSON (
/search/a.json,/search/b.json...). - Côté client : Script Vanilla JS ultra-léger qui lazy-load uniquement le chunk de la lettre tapée et applique l'algorithme de Levenshtein pour tolérer les fautes de frappe sans charger un gros index monolithique.
- Au build : Extraction du texte, filtrage des stop words (mots vides) et découpage de l'index par première lettre dans des micro-fichiers JSON (
Flux de travail (Workflow)
Le développement et la compilation s'effectuent via deux scripts simples à la racine du projet :
bash
# Lancer le serveur local de développement
./dev.sh
# Compiler le site statique pour la production
./build.sh Voici un lien vers mon projet.