Les bases
Le Markdown est le format idéal pour écrire dans un jardin numérique. Simple, portable, lisible en texte brut. Ces conventions sont celles utilisées dans Tordu Jardin.
Frontmatter
Chaque note commence par un bloc de métadonnées :
---
title: 'Ma note'
icon: 'emoji'
stage: seed | sprout | growing | evergreen # clés internes
tags: [tag1, tag2]
date: '2026-01-01'
xp: 25
---
Référence frontmatter : notes du jardin
Tous les champs disponibles pour les fichiers src/content/garden/*.md :
---
# Requis
title: 'Titre de la note' # string - affiché dans le header et les cartes
icon: 'icon-nom' # string - icône Lucide affichée sur la carte
stage: seed | sprout | growing | evergreen # enum - stade de maturité (clés internes, affichées en français)
tags: [tag1, tag2] # string[] - au moins 1 tag requis
date: '2026-01-01' # string ISO - date de création
# Optionnel
updated: '2026-03-14' # string ISO - dernière mise à jour
excerpt: 'Description courte' # string - affiché dans les cartes et le SEO
xp: 50 # number 0-100 - score de maturité
related: [slug-note-1, slug-note-2] # string[] - notes liées manuellement
---
Référence frontmatter : projets
Les fichiers src/content/projects/*.md utilisent un frontmatter plus riche :
---
# Requis
title: 'Nom du projet'
icon: 'icon-nom'
excerpt: 'Description courte'
date: '2026-01-01'
tags: [tag1, tag2]
# Stats du projet
stats:
status: active | archived | paused
started: '2025-06-01'
commits: 342
languages: [TypeScript, SCSS]
# Stack technique
stack: [Astro, Totem, Puppeteer, SCSS]
# Screenshots (chemins relatifs aux assets)
screenshots:
- src: './screenshots/desktop-home.png'
alt: 'Page accueil desktop'
- src: './screenshots/mobile-detail.png'
alt: 'Vue détail mobile'
# Architecture (bloc texte libre)
architecture: |
Description de l’architecture technique du projet.
# Journal de bord
journal:
- date: '2026-01-15'
entry: 'Setup initial du projet'
- date: '2026-02-01'
entry: 'Intégration du design system'
---
Référence frontmatter : carnet
Les billets du carnet (src/content/carnet/*.md) sont plus légers :
---
title: 'Titre du billet'
date: '2026-03-10'
readingTime: 5 # number - minutes de lecture estimées
project: 'slug-du-projet' # string - lien vers un projet (optionnel)
tags: [réflexion, dev]
excerpt: 'Aperçu du billet'
---
Astuces Astro pour le contenu
Composants dans le Markdown
Avec MDX, on peut injecter des composants Astro directement dans le contenu :
import XpBar from '../../components/XpBar.astro';
## Ma section
Voici une barre d’XP en live :
<XpBar value={65} />
Pour activer MDX, installer @astrojs/mdx et renommer le fichier en .mdx.
Importer des données dans le contenu
Astro permet d’importer du JSON ou des modules dans les pages :
---
import { getCollection } from 'astro:content';
const allNotes = await getCollection('garden');
const totalXp = allNotes.reduce((sum, n) => sum + (n.data.xp || 0), 0);
---
<p>XP total du jardin : {totalXp}</p>
À explorer
- Liens bidirectionnels entre notes
- Support des diagrammes Mermaid
- Transclusion de contenu