 Générateur de site statique minimaliste alimenté par des fichiers Markdown. Écrivez du contenu en `.md`, lancez `python3 build.py`, et roulez jeunesse. ## Fonctionnalités - Pages et articles en Markdown avec coloration syntaxique (imaginez créer des pages de votre site avec Obsidian !) - Page d'accueil générée automatiquement (5 derniers articles, du plus récent au plus ancien) - Catégorisation des articles avec arborescence de dossiers automatique (ou non) - Métadonnées par article : titre, date, auteur, catégorie, image de couverture - Dark mode : automatique selon l'heure (light 08h30–17h30) + toggle manuel mémorisé - Ancres cliquables sur les titres `h1`–`h4` - Possibilité d'integration de snippets HTML - Menu avec masquage automatique des liens invalides - Aucune dépendance JavaScript côté client ## Prérequis - Python 3 - `pip install markdown` ## Installation ```bash git clone https://git.azuze.fr/kawa/pagemark cd pagemark pip install markdown ``` Une image Docker arrive bientot© ## Structure du projet ``` pagemark/ ├── build.py # Générateur de site (lancer pour builder) ├── README.md ├── static/ │ ├── style.css # Styles (light + dark mode) │ └── theme.js # Gestion du dark mode (localStorage + heure) └── md/ ├── header.md # Nom du site (# Titre) + tagline (texte suivant) ├── footer.md # Pied de page ├── menu.md # Navigation (liste Markdown) ├── categories.md # Mapping catégories → dossiers de sortie ├── images/ # Images référençables via /images/fichier.jpg └── pages/ ├── index.md # Contenu optionnel affiché au-dessus des articles en page d'accueil └── *.md # Vos pages et articles ``` Les fichiers HTML sont générés à la racine du projet. ## Mise en route rapide ### 1. Configurer le site **`md/header.md`** — la première ligne `# Titre` devient le logo dans la nav, le reste la tagline : ```markdown # Mon Site Le blog d'un passionné de technologie ``` **`md/footer.md`** — pied de page en Markdown : ```markdown © 2026 Votre Nom - Propulsé par un 1.2l 16v ``` **`md/menu.md`** — liste de liens. Les liens internes sont filtrés automatiquement (masqués si la page n'existe pas), les liens externes s'ouvrent dans un nouvel onglet avec le suffixe `↗` : ```markdown - [Accueil](/) - [À propos](/racine/a-propos/) - [GitHub](https://github.com/vous) ``` > Le chemin d'un lien interne doit correspondre au chemin de sortie généré (voir section Catégories). ### 2. Créer une page ou un article Créez un fichier `.md` dans `md/pages/`. Les métadonnées se placent en tête de fichier : ```markdown ::Titre:Mon premier article ::Date:07/03/2026 ::Auteur:Votre Nom ::Categories:Blog ::Image:/images/cover.jpg Contenu de l'article en Markdown... ``` ### 3. Générer le site ```bash python3 build.py ``` ### 4. Tester en local ```bash python3 -m http.server 6969 ``` Puis ouvrez [http://localhost:6969](http://localhost:6969). --- ## Métadonnées Placez des métadonnées en début de fichier afin de beneficier des certaines fonctionnalités comme les categories et l'affichage d'une card en page d'accueil. | Métadonnée | Syntaxe | Rôle | |---|---|---| | `::Titre:` | `::Titre:Mon titre` | Affiché en `