Retour aux projets
// 001
Fiche projet

Entraînements, un carnet Obsidian publié en site statique

Un carnet d'athlétisme écrit dans Obsidian, rendu en HTML et en PDF sans serveur.

Ce carnet rassemble des notes d'athlétisme, des plans de saison, des séances et des repères techniques. Un build Astro transforme les notes Obsidian en site statique, avec recherche, sommaire, export PDF et lecture hors ligne.

Page d'accueil du carnet d'entraînement avec la saison et les séances
Client
Projet personnel
Secteur
Sport et documentation personnelle
Année
2026
// 002
Contenu du projet

Le contexte

Ce carnet rassemble des notes d'athlétisme: plans de saison, séances, échauffements, exercices techniques, préparation physique, diététique, compétitions et blessures. Les notes sont écrites dans Obsidian, mais le carnet devait se lire comme un site, avec une recherche, un sommaire et une version imprimable.

Le site sert surtout à partager les séances et les repères de la saison avec les athlètes. Il transforme les notes en site statique au moment du build, sans serveur ni base de données. Une fois le build terminé, il ne reste que des fichiers.

Les notes comme source

Le contenu passe par une collection Astro qui lit les notes en dehors du dépôt. Un ensemble de plugins Sätteri gère la syntaxe Obsidian: liens wiki, transclusions, pièces jointes, encadrés, commentaires, identifiants de bloc, maths, Mermaid et Excalidraw.

La barre latérale suit l'ordre déclaré dans le frontmatter des notes. Le sommaire se construit à partir des titres extraits au rendu. Une note peut donc garder sa structure d'origine tout en devenant une page HTML lisible.

Les notes non listées restent hors de la navigation. Les liens wiki et les chemins du vault sont résolus vers les pages publiées, en préférant le fichier le plus proche de la note qui le référence.

Une note peut contenir des encadrés de consigne, des tableaux, des formules et des schémas. Le rendu conserve ces éléments au lieu de les aplatir en texte. Les notes non listées restent accessibles par lien direct, mais elles n'apparaissent pas dans la navigation. Le carnet sert de référence pendant la saison et reste lisible sur un téléphone au bord de la piste.

Les images et le PDF

Les images des notes sont liées au projet au démarrage, puis Astro génère des variantes WebP en 480, 960 et 1440 pixels. Le PDF garde le chemin original pour intégrer l'image en pleine résolution.

Chaque note listée a sa page HTML et son PDF généré avec takumi-pdf. Le PDF reprend la mise en page de la note, avec un style d'impression dédié. Une séance peut donc être imprimée ou envoyée telle quelle.

La recherche tient dans un fichier JSON statique, chargé côté client. Il n'y a pas de service de recherche à interroger. Le calcul de perche est un composant React 19 isolé. Le reste du site est du HTML statique.

Le mode hors ligne

Le service worker met en cache:

  • les notes et les images;
  • les polices et l'index de recherche;
  • les fragments Mermaid et Excalidraw.

Le tout pèse environ 21 Mo. Le carnet reste lisible hors ligne après la première visite. Les notes non listées et les vidéos rejoignent le cache à la demande. Un bouton d'installation apparaît quand le navigateur le propose.

Le cache est versionné à partir du contenu des fichiers. Un nouveau déploiement remplace donc l'ancien cache au lieu de laisser des notes périmées.

Le déploiement

Le déploiement passe par Vercel ou par l'image Docker avec nginx. Le build lit les notes en local, et l'hébergeur ne reçoit que les fichiers produits. Le vault n'est jamais copié dans le dépôt.

Pour un build Docker, le vault est monté comme contexte de build. Le conteneur final ne contient que le site généré et la configuration nginx.

Résultat

Le carnet se lit hors ligne, une note se retrouve par la recherche et une séance s'imprime en PDF. Les notes restent écrites dans Obsidian, avec leurs liens, leurs encadrés et leurs schémas.

Le carnet ne dépend pas d'un compte en ligne. Il ne demande ni connexion, ni synchronisation, ni service externe pour afficher une note. Cette autonomie correspond à l'usage prévu: consulter une séance sur le terrain, sans réseau fiable.

Les notes listées reçoivent une URL stable, réutilisable dans un signet ou dans un message. Le PDF porte le même nom de note, ce qui évite de chercher le fichier correspondant dans un dossier.

Séance Sprint long avec sommaire, consignes et téléchargement PDF

Version mobile du carnet d'entraînement

// 003

Prêt à construire quelque chose de solide ?

Parlons de votre projet. Sans engagement, sans pression — juste une conversation honnête sur ce dont vous avez besoin.