Chapitre 07
Le confort : Tasks, Kanban, schémas… et Obsidian Git
Objectifs du chapitre
- Suivre des tâches réparties dans tout le vault avec le plugin Tasks.
- Situer Kanban, les outils de schéma, Advanced Tables et Style Settings : ce qu'ils apportent, ce qu'ils coûtent.
- Synchroniser un vault par git sans y penser, avec Obsidian Git.
- Connaître les deux limites d'Obsidian Git qui décident de l'architecture de la partie II.
1. Tasks
Les cases à cocher markdown sont partout dans le vault : dans les notes quotidiennes, dans les fiches projet. Le problème n'est pas de les écrire, c'est de les retrouver. Tasks ajoute une syntaxe de métadonnées et un langage de requête dédié.
- [ ] Vérifier la rétraction du bras 3 📅 2026-08-15 ⏫
- [ ] Relancer l'intégrateur 🔁 every week
- [x] Envoyer le rapport FAT ✅ 2026-08-01
Les émojis sont la syntaxe du plugin : 📅 échéance, ⏫ priorité haute, 🔁 récurrence, ✅ date de complétion, 🛫 date de début. Ils se saisissent par une commande dédiée plutôt qu'à la main.
```tasks
not done
due before in 7 days
sort by due
```
Tasks et Dataview se recouvrent partiellement. La règle simple : TASK en
Dataview suffit pour « lister les cases non cochées d'un dossier ». Tasks devient utile dès
qu'il y a des échéances, des récurrences et des priorités — il sait les lire,
les trier, et cocher une tâche récurrente en régénère l'occurrence suivante.
Si tes tâches n'ont pas de date, tu n'as pas besoin de Tasks.
2. Kanban
Un tableau à colonnes, glisser-déposer, stocké dans un fichier markdown ordinaire — une liste par colonne. C'est sa qualité : le tableau reste lisible et versionnable même sans le plugin.
Un kanban est un état, pas une connaissance. Les cartes y sont du texte court, hors du modèle de notes : pas de front-matter, donc invisibles aux requêtes du chapitre 5. Un vault où l'information importante vit dans des cartes de kanban a deux systèmes qui ne se parlent pas.
Usage raisonnable : un tableau temporaire pour piloter une phase, qu'on jette ensuite. Pas un référentiel.
3. Les schémas
Trois façons de mettre un dessin dans un vault, et le critère de choix n'est pas le confort de tracé : c'est sous quelle forme le dessin est stocké. Un vault versionné hérite de ce format à chaque modification.
| Outil | Stockage | Sous git | Dépendance |
|---|---|---|---|
| Mermaid | Bloc ```mermaid dans la note |
Le diff est le changement | Aucune, natif |
| Canvas | Fichier .canvas, JSON ouvert |
Diffable, bruité par les coordonnées | Plugin cœur |
| Excalidraw | .excalidraw.md : texte extrait +
JSON compressé en base64 | Blob réécrit en entier | Plugin tiers |
Mermaid — le diagramme comme code
Natif, sans rien installer. On décrit la structure, le moteur dessine :
```mermaid
flowchart LR
PLC[S7-1500] -->|PROFINET| IO[IO Device]
PLC -->|OPC-UA| EDGE[Edge Debian]
EDGE -->|TimescaleDB| SUP[Supervision]
```
Organigrammes, séquences, machines à états, Gantt, entité-association. Le fichier reste une note ordinaire, indexée par la recherche, et une modification produit un diff qu'on lit. Sa limite : la mise en page est décidée par le moteur, donc inadapté à un schéma dont la disposition spatiale porte du sens — un synoptique d'installation, un plan d'armoire.
Canvas — penser dans l'espace
Plugin cœur. Un nœud de canvas peut être une carte de texte, une image, ou une note
du vault affichée en vrai. C'est ce qui le distingue d'un outil de dessin : un canvas
devient une carte de ton vault plutôt qu'une illustration à côté. Le format
.canvas suit une spécification JSON publiée, donc lisible par d'autres outils.
Excalidraw — et pourquoi le vault de référence l'a retiré
Dessin à main levée. Le fichier .excalidraw.md est hybride : le texte des
éléments est extrait en clair — donc cherchable — mais la géométrie est du JSON
compressé en base64 par défaut. Chaque retouche réécrit le blob entier :
git diff affiche une ligne illisible remplacée par une autre, et le dépôt stocke
une copie complète à chaque sauvegarde. Les images collées sont encodées dans le fichier, ce
qui fait grossir vite.
Le vault de référence l'a installé, puis retiré au profit de Mermaid. Deux raisons : ses réglages pesaient à eux seuls 26 Ko de JSON — presque uniquement des valeurs par défaut réécrites à chaque mise à jour — et un vault dont une partie du contenu est un blob opaque contredit le principe même de la partie II.
Retiens le chiffre : il justifie une décision de conception au chapitre 8, et il reste valable pour n'importe quel plugin bavard.
Si le croquis à main levée est indispensable, désactive la compression dans les réglages du plugin : le JSON devient lisible et diffable, au prix d'un fichier plus gros.
4. Advanced Tables et Style Settings
Advanced Tables rend les tableaux markdown éditables : la tabulation passe de cellule en cellule, les colonnes se réalignent toutes seules. Sans lui, un tableau de plus de trois colonnes se maintient à la main, et personne ne le fait.
Style Settings expose sous forme de réglages les variables CSS que les thèmes déclarent : largeur de ligne, taille de police, couleurs d'accent. Utile si ton thème le supporte, inerte sinon.
Ces deux-là ne stockent rien : les retirer ne perd aucune donnée. C'est le meilleur profil de risque pour un plugin tiers.
5. Obsidian Git
Le vault est un dossier de fichiers texte : git est le mécanisme de synchronisation naturel. Historique complet, sauvegarde, et rien à payer. Le plugin Obsidian Git l'automatise depuis l'application.
{
"autoSaveInterval": 10,
"autoPullOnBoot": true,
"commitMessage": "vault: {{date}}"
}
Traduction : tirer les modifications distantes à l'ouverture, puis commiter et pousser automatiquement toutes les dix minutes. En usage courant, tu n'y penses jamais — tu écris, ça se sauvegarde.
Deux commandes valent d'être connues dans la palette : Commit-and-sync pour forcer une synchronisation immédiate avant de fermer le portable, et Open source control view pour voir les fichiers modifiés et commiter sélectivement.
Limite 1 — pas de hooks git
Obsidian Git n'utilise pas le binaire git de ton système : il embarque une
implémentation JavaScript. Conséquence directe, les hooks git ne s'exécutent
pas. Un pre-commit qui vérifierait le contenu avant chaque commit est
contourné par tous les commits venant d'Obsidian.
Cette limite est structurante. Si tu veux un contrôle bloquant — refuser un commit qui contient une information à ne pas publier, par exemple — il faut désactiver l'auto-commit et faire passer les commits par un script. C'est un arbitrage entre confort et garantie, et il n'a pas de solution qui donne les deux.
Limite 2 — l'auto-commit ne distingue pas ton travail
L'auto-commit prend tout ce qui a changé dans le dépôt, sur la branche courante. Tant que tu écris des notes, c'est ce que tu veux. Si tu modifies en parallèle du code dans le vault — l'outillage de la partie II vit dedans — l'auto-commit balaie ton travail en cours au milieu d'une modification.
C'est arrivé pendant la construction du vault de référence : un commit
vault backup: 2026-08-02 16:20:22 a emporté sept fichiers de code à moitié testés.
Sans dégât — il a suffi de vérifier le contenu et d'amender le commit — mais la leçon est
simple.
Ferme Obsidian avant de travailler sur le code du vault. Sur un vault avec auto-commit, un arbre de travail non commité appartient aux dix prochaines minutes.
Conflits
Deux machines qui modifient la même note sans se synchroniser produisent un conflit git
ordinaire, avec ses marqueurs <<<<<<< insérés dans la note.
Le plugin ne sait pas les résoudre : il faut ouvrir la note et trancher.
La prévention tient en une habitude : laisser autoPullOnBoot actif, et
synchroniser avant de fermer plutôt qu'après avoir rouvert ailleurs.
6. Le coût d'un plugin
Chaque plugin tiers ajoute quatre dettes :
- Du code tiers qui s'exécute dans ton application, avec accès à tous tes fichiers.
- Une dépendance de version : il peut casser à une mise à jour d'Obsidian, et personne ne garantit la réparation.
- Un format : s'il stocke dans une structure qui lui est propre, le retirer emporte les données.
- Une reconstruction : sur une machine neuve, il faut le réinstaller à la bonne version, avec ses réglages. C'est tout l'objet de la partie II.
| Plugin | Si tu le retires demain |
|---|---|
| Dataview | Les vues affichent leur code source. Aucune donnée perdue. |
| Templater | Plus d'évaluation à la création. Les notes existantes intactes. |
| QuickAdd | Plus de capture rapide. L'inbox reste lisible. |
| Tasks | Les émojis redeviennent des émojis. Les cases restent des cases. |
| Advanced Tables, Style Settings | Rien. |
| Kanban | Le tableau redevient des listes markdown. Lisible, moins pratique. |
| Mermaid, Canvas | Rien : le premier est natif, le second est un plugin cœur. |
| Excalidraw | Le texte des dessins reste lisible ; la géométrie demande de décompresser le JSON à la main. Récupérable, mais pas sans outil. |
Un seul plugin de la liste emporte des données en partant. C'est un critère de choix plus utile que le nombre d'étoiles sur le dépôt : demande-toi toujours ce qui reste si le plugin disparaît.
Récapitulatif
- Tasks n'est justifié que si tes tâches ont des échéances ou des récurrences ; sinon
TASKen Dataview suffit. - Un kanban est un état passager, hors du modèle de notes : ne l'utilise pas comme référentiel.
- Pour un schéma, le critère est le format de stockage : Mermaid (texte) d'abord, Canvas quand l'espace compte, Excalidraw seulement pour le croquis.
- Obsidian Git automatise la synchronisation, mais n'exécute pas les hooks git et commite tout ce qui traîne sur la branche courante.
- Le bon critère pour adopter un plugin : ce qui reste le jour où il disparaît.
Exercices
Exercice 1 — Tasks ou Dataview ?
Pour chacun, dis quel outil tu emploies : (a) lister les cases non cochées des fiches projet ; (b) voir ce qui est en retard cette semaine ; (c) une revue mensuelle qui se régénère.
Voir la solution
(a) Dataview, TASK FROM "30-projets" WHERE !completed.
Aucune notion de date : le plugin cœur du problème est la sélection, pas l'échéance.
(b) Tasks, not done + due before today. Il
faut comprendre 📅 et savoir comparer à aujourd'hui, ce que Dataview ne fait pas sans
travail.
(c) Tasks, avec 🔁 every month. Cocher l'occurrence en
recrée une le mois suivant — c'est le comportement propre au plugin, impossible à obtenir
par requête.
Exercice 2 — Le commit surprise
Tu modifies un script dans 90-meta/tooling/, tu lances les tests qui échouent,
tu pars déjeuner. En revenant, ton travail est commité et poussé sous le message
vault: 2026-08-02. Que s'est-il passé, et comment reprends-tu proprement ?
Voir la solution
Ce qui s'est passé : Obsidian est resté ouvert, et l'auto-commit à dix minutes a pris tout ce qui avait changé — sans distinguer une note d'un script à moitié écrit. Il a poussé dans la foulée.
Reprise, selon que c'est poussé ou non :
- Pas encore poussé — le plus simple est d'amender une fois le travail
terminé :
git commit --amendavec un vrai message. C'est ce qui a été fait dans le cas réel. - Déjà poussé, et tu es seul sur le dépôt : même chose, suivie d'un
git push --force-with-lease. Sur un dépôt partagé, ne réécris pas : fais un commit de correction par-dessus.
Prévention : ferme Obsidian avant de toucher au code. Le réflexe inverse — désactiver l'auto-commit — coûte plus qu'il ne rapporte pour l'usage courant, qui est d'écrire des notes.
Exercice 3 — Un contrôle bloquant
Tu veux qu'aucun commit ne parte si une note contient une chaîne interdite — un nom de
client, par exemple. Tu écris un hook pre-commit. Marchera-t-il ? Sinon, quelles
options te restent ?
Voir la solution
Il ne marchera pas pour les commits venant d'Obsidian : le plugin utilise une implémentation JavaScript de git, qui n'exécute pas les hooks. Le hook ne couvrira que tes commits en ligne de commande — c'est-à-dire précisément ceux que tu contrôles déjà.
Trois options, aucune parfaite :
- Désactiver l'auto-commit et faire passer tous les commits par un script qui vérifie puis commite. Garantie réelle, au prix d'un geste manuel quotidien.
- Contrôle après coup : un contrôle côté serveur ou une vérification périodique. Détecte, mais ne prévient pas — et sur un dépôt distant, la donnée est déjà partie.
- Accepter le risque et le documenter, en s'appuyant sur un dépôt privé et une discipline de rédaction.
Le vault de référence a d'abord conçu l'option 1, puis l'a écartée au profit de la 3 : le confort de l'auto-commit l'a emporté sur la garantie. Ce qui compte n'est pas le choix, c'est qu'il soit explicite — et que la limite soit écrite quelque part plutôt que supposée résolue.