par

Mon expérience après 4 ans d’Obsidian

Article

J’avais dit, en 2020, que j’allais faire un article de blog entièrement consacré à mon utilisation d’Obsidian. On est en 2024 et il serait temps que je m’y mette : voici donc mon rapport à Obsidian. (Le titre de cet article est un mensonge, j’ai pas de date exacte sous la main mais il me semble avoir commencé Obsidian dans la deuxième moitié de 2020. On survivra.)

Intro à Obsidian

Obsidian, au sens strict, c’est un éditeur de fichiers au format markdown, ce qui veut dire qu’on peut l’ouvrir dans n’importe quel éditeur de fichiers au format markdown (tant qu’on ne s’appuie pas trop sur les extensions, mais on y viendra plus tard).

Pasted image 20240520092133.png

Pasted image 20240520092019.png

Là où Obsidian devient un peu plus impressionnant, c’est :

  • L’éditeur visuel : comme vous pouvez le voir dans les deux captures d’écran, le markdown se voit immédiatement dans la zone d’édition (il est possible de changer ce réglage pour voir le texte source comme dans la capture d’écran Sublime Text si c’est ce que vous préférez).
  • Les liens bidirectionnels : je peux faire un lien vers une autre page depuis une page donnée, et depuis l’autre page retrouver que celle-ci y renvoie. C’est très pratique pour créer ou trouver un lien entre deux sujets dont on pourrait croire qu’ils n’ont rien en commun. Je m’en sers aussi, on le verra plus tard, pour facilement retrouver tous les textes que j’ai sauvegardés et qui ont été écrits par une même personne ou sur un même thème.
  • Les plugins, notamment Dataview qui permet de faire des recherches en traitant le dossier comme une base de données. Je parlerai de mes plugins et fournirai mes bouts de code plus bas.

Sur mon Obsidian perso, voilà à quoi ressemble mon « vault », mon répertoire des fichiers Markdown :

En haut à gauche, on voit trois onglets : la liste des fichiers et dossiers (actuellement ouverte), ma page d’accueil (je la montrerai plus bas) et la recherche. En bas à gauche, on a mes favoris ainsi que le graphe local, qui montre les relations de la page actuellement ouverte avec le reste des pages (via les liens). Je trouve ça très joli mais pas forcément super utile :

Pasted image 20240520092856.png

Le graphe local d’une page avec pas mal de liens internes.

En haut à droite, 4 onglets cette fois :

  • Le calendrier (un point sous la date = 150 mots dans ma note quotidienne)
  • Les liens entrants (depuis d’autres fichiers)
  • Les liens sortants (vers d’autres fichiers)
  • Les notes de documentation à revoir (j’en parlerai plus bas)

Dans la partie centrale de la barre de droite, il y a le plan de l’article en cours, et en bas à droite, la liste des tags que j’ai utilisés sur des pages (on voit donc que j’ai 1546 pages qui incluent le , et 975 ont /triage, c’est-à-dire que je ne les ai pas encore relues et mises en forme).

Pourquoi Obsidian

J’utilise Obsidian pour beaucoup de raisons, qui incluent :

  • J’accumule les informations et il faut bien que je les écrive quelque part ;
  • C’est joli et facile à prendre en main (sauf si on décide de se construire des process avancés) ;
  • La possibilité de faire une seule recherche dans l’ensemble de mon « deuxième cerveau » pour retrouver tout ce que j’ai pensé, lu ou écrit sur ce thème ;
  • Le fait que ça n’appartienne pas à une grosse entreprise ;
  • Le fait que si un jour ça se casse la gueule ou je trouve un concurrent plus sympa, il ne s’agit que de fichiers markdown donc je ne perdrai rien ;
  • Le fait que si quelque chose me manque, quelqu’un a probablement déjà fait un plugin pour l’ajouter, ou pourrait le faire ;
  • Le fait que c’est hors-ligne.

J’ai en tout trois coffres :

  • Un pour ma vie personnelle, de loin le plus gros ;
  • Un pour mon travail ;
  • Un pour l’entreprise à laquelle je fournis des services freelance, à peu près identique à celui du travail (avec moins de réunions et plus de trucs en orange).

Obsidian au travail

J’utilise Obsidian au travail depuis 2021. J’y ai mis plein de choses qui m’aident à m’y retrouver dans mes projets, et j’y gère surtout toutes mes tâches à faire.

Mon setup

Un coffre au nom de mon employeur, sur le Drive du boulot pour être relativement synchronisé entre le téléphone et l’ordinateur − dans les faits, je ne l’utilise à peu près que sur l’ordi, mais ça me fait une sauvegarde en cas de problème avec ledit ordinateur.

Pour mon employeur freelance, un coffre sur mon ordinateur fixe avec un backup sur mon cloud personnel.

Thème : Blue Topaz.

Extensions :

  • Calendar, pour la vue en calendrier de ma barre de droite
  • Dataview
  • Emoji shortcodes, pour facilement insérer des emojis
  • Homepage
  • Markdown prettifier, parce que j’oublie des sauts de ligne
  • Natural Language Dates (obligatoire pour faire fonctionner les Tasks)
  • Omnisearch pour chercher le corps des pages efficacement
  • Periodic Notes pour mes notes hebdomadaires
  • Tasks pour la gestion de tâches
  • Templater pour des meilleurs templates

Ma page d’accueil

J’ai une page d’accueil qui inclut :

  • Les liens vers quelques documents de référence pour le travail
  • Une to-do list avec deux listes de tâches :
    • Tâches rangées par date de fin
    • Tâches rangées par projet (et par date de fin dans chaque projet)

Je sors ces tâches à l’aide d’une recherche Dataview ; les tâches sont gérées via le plugin Tasks. Mon utilisation des tâches est essentielle à mon organisation au travail, mais j’ai pas envie de l’expliquer vu qu’Anthony a la même, qu’il explique admirablement bien sur son blog.

Pasted image 20240521084154.png

Les documents de référence en haut de la page d’accueil, et la première tâche (très en retard).

Pasted image 20240521084256.png

La fin des tâches triées par date et le début des tâches par projet (en l’occurrence, deux tâches sans projet particulier, et le titre du projet LQP / Vendor Education).

Notes de réunion

Mes notes de réunion sont dans un dossier Meetings avec le tag (je suis jamais très bon pour décider entre tags et dossiers). Elles sont créées avec un simple raccourci clavier qui crée un fichier Zettelkasten (plugin non communautaire d’Obsidian), avec la date au début du titre.

Dans le frontmatter, j’indique le thème de la réunion, les personnes qui y ont assisté, et la date de la réunion (automatique). J’ai vu des collègues qui arrivaient à automatiquement créer des notes à partir de leur calendrier Apple, mais aucun n’a fait quelque chose de compatible avec Outlook / Windows, donc tant pis.

Le thème et les personnes me permettent de faire une requête Dataview plus tard qui me sort toutes les réunions récentes que j’ai eues avec une personne donnée et de trier mes tâches sur ma page d’accueil.

Pendant la réunion, je prends des notes normales. S’il y a des actions à prendre, je les note sous forme de tâches : elles apparaîtront dans toutes mes recherches de tâches, mais aussi à la fin de la note de cette réunion dans une section « Next Steps » grâce à une requête javascript dans Dataview.

Voici le template entier d’une note de réunion :

---
"<% tp.file.rename((mytitle = tp.date.now() + ' - ' + await tp.system.prompt( 'Meeting Name', 'Meeting', false) )) %>title": <% mytitle.trim() %>
date: <% tp.date.now() %>
tags:
- meeting
theme: []
attendees:
---
# Préparation

# Notes

# Next steps 
```dataviewjs
dv.taskList(
dv.current().file.tasks
)
```

Notes hebdomadaires

Chaque vendredi, je publie un rappel de ce que j’ai fait de ma semaine pour que mes collègues aient la vision d’ensemble (et que j’aie moins de recherches à faire pour retrouver ce que j’ai accompli quand vient l’heure des évaluations annuelles).

Dans ces notes, je mets la liste des projets en dur (un projet = une section), et à l’intérieur de chaque projet, deux recherches :

  • les tâches closes cette semaine pour ce projet
  • les réunions créées cette semaine pour ce projet

Pasted image 20240521084436.png

Comme ça, le travail de regroupement est très simple. J’ai une section « Autres » en bas pour compléter manuellement si j’ai eu des réunions ou fait des tâches plus transverses.

Ma note hebdomadaire a un template relativement simple, voilà à quoi elle ressemblerait si je n’avais qu le projet Production Optimization :

# Weekly recap - 
[How to work with me](https://www.internalfb.com/intern/wiki/Users/asirac/)
🔋 Recharge in XX days − [Coverage plan](https://www.internalfb.com/intern/wiki/Users/asirac/2024_coverage_plan/)
## tl;dr

* This
* This
* This

```dataview
TABLE attendees, theme
FROM #meeting
WHERE !contains(theme, "Production Optimization") AND date <= date(eow) AND date >= date(sow)
LIMIT 10
```
```dataview
TASK
WHERE !contains(theme, "Production Optimization") AND completion <= date(eow) AND completion >= date(sow)
GROUP BY theme
```

# Production Optimization
```dataview
TABLE attendees
FROM #meeting
WHERE contains(theme,"Production Optimization") AND date <= date(today) AND date > date(today) - dur(7 day)
LIMIT 10
```
```dataview
TASK
WHERE contains(theme,"Production Optimization") AND completion <= date(today) AND completion > date(today) - dur(7 day)
```

Task management

Si j’ai une idée perso ou que je lis un post intéressant, et que je veux créer une tâche, je fais une note vide, je l’intitule « YYYY-MM-DD Idée », je mets le thème dans le frontmatter pour que ça ressorte où il faut, et je balance la tâche dedans. J’avais essayé de construire un format un peu plus propre, mais ça devenait trop rapidement une machine à gaz.

Mon coffre personnel

Mon coffre personnel, c’est celui qui contient une grosse partie de ma vie et de mes réflexions. J’y fais plein plein de choses, donc c’est à lui que je vais consacrer l’essentiel de cet article.

C’est aussi le coffre que j’utilise pour illustrer cet article, donc si quelque chose vous plaît, c’est ici que vous trouverez comment le faire, normalement !

Mon setup

  • Sur mon ordinateur fixe, avec un backup sur mon Nextcloud et Obsidian Sync pour synchroniser proprement avec mon ordinateur pro et mon téléphone

Thème : Everforest avec pas mal de snippets de CSS glanés ici pour la plupart.

Extensions :

  • Calendar, pour la vue en calendrier de ma barre de droite
  • Dataview
  • Emoji shortcodes, pour facilement insérer des emojis
  • Excalidraw pour faire des visualisations graphiques facilement
  • Homepage
  • Markdown prettifier, parce que j’oublie des sauts de ligne
  • Omnisearch pour chercher le corps des pages efficacement
  • Periodic Notes pour mes notes quotidiennes et mensuelles
  • Podcast note pour créer des notes de documentation sur des épisodes de podcat
  • Spaced Repetition, j’en parle plus loin en détail
  • Table of Contents pour les notes longues
  • Tag Wrangler pour déplacer les tags facilement (ex. archiver un hobby)
  • Todoist Sync, j’en parle juste en-dessous
  • Wikipedia, j’en parle dans « concepts »
  • WordPress pour publier mes articles en un clic (et des poussières)

Je n’utilise pas le fabuleux système de tâches que j’aime tant pour mon coffre du travail : j’ai besoin d’avoir cette liste sous les yeux à chaque fois que je déverrouille mon téléphone, et il n’y a à ce jour pas de widget de ce type pour Obsidian. Donc j’ai installé le plugin Todoist d’Obsidian, qui permet d’intégrer la liste de tâches dans ma page d’accueil.

Page d’accueil

Ma page d’accueil est relativement simple et en 4 parties :

Pasted image 20240520140050.png

La première section est « À faire ». En l’agrandissant, je tombe sur ma liste Todoist.

La seconde section est « À écrire », avec une requête Dataview qui sort 5 brouillons sélectionnés par hasard et un lien vers ma page [[✍️ Vue d’ensemble des articles à écrire]], où je peux trouver la liste complète.

La troisième section, « Curiosités », me ressort des articles où j’ai mis le tag #référence/review qui m’indique que je me suis intéressé à quelque chose et que je n’ai pas pris le temps de le fouiller. Hobbies potentiels, questions philosophiques, grands questionnements moraux, gens que j’ai l’impression que je devrais connaître : c’est là-dedans.

La dernière section est celle de mes documents à lire. Je fais beaucoup de fiches de lecture, et cette section inclut un lien vers toutes mes fiches de lecture ([[📑 Documentation à trier]]) ainsi que la liste de ce que je dois relire aujourd’hui (aujourd’hui, j’écris cet article après avoir tout relu, donc c’est vide).

Daily notes

J’utilise une note quotidienne dans mon Obsidian perso. Dans cette note, j’ai plusieurs sections :

  • Titre : YYYY-MM-DD
  • Lien vers la veille et le lendemain
  • Anniversaires (requête Dataview sur les pages )
  • Notes, l’essentiel de la page
  • L’instant nostalgie, une requête Dataview qui sort mes notes des années précédentes le même jour (il y en a depuis 2014, parce que j’ai importé toute mon archive Twitter !), avec un résumé en une phrase (via le frontmatter « annuel: »)
  • Les jours où je nettoie ma liseuse, il y a aussi une section Documentation, dans laquelle j’inclus les liens vers les notes de lecture créées ce jour-là
Pasted image 20240521084514.png

Une note quotidienne pas encore très remplie.

Le champ annuel est laissé vide le jour même : il sert un an plus tard, pour avoir le recul sur ce qui a effectivement marqué ma vie.

Voilà le code de mon template de note quotidienne :

---
annuel:
---

[[<% tp.date.now("YYYY-MM-DD", -1) %>|Hier]] | [[<% tp.date.now("YYYY-MM-DD", 1) %>|Demain]]

## Anniversaires
```dataview
LIST
FROM #people and -#people/nc and -#people/connaissances
WHERE dateformat(birthday, "MM-dd") = dateformat(this.file.day, "MM-dd")
SORT file.name ASC
```

# Notes


# L'instant nostalgie
<%*
tR += `\`\`\`dataviewjs
let title = dv.current().file.name;
let filedate = moment(title, "YYYY-MM-DD");

let day = moment(filedate).format("DD");
let month = moment(filedate).format("MM");
let year = moment(filedate).format("YYYY");
let date = moment(filedate).date();

function isSameMonthDay(page) {
let filemoment = moment(page.file.name, 'YYYY-MM-DD')
let fileday = moment(filemoment).format("DD");
let filemonth = moment(filemoment).format("MM");
let fileyear = moment(filemoment).format("YYYY");

if (month === filemonth && day === fileday && fileyear < year) {
return true;
}
}

dv.table(["Date", "Years", "Review"], dv.pages('"Daily notes"')
.filter(isSameMonthDay)
.sort(b => b.file.name, 'asc')
.map(b =>[dv.fileLink(b.file.name, false, moment(b.file.name,'YYYY-MM-DD').format("YYYY-MM-DD")), moment(b.file.name,'YYYY-MM-DD').fromNow(true), ,
"<span id='summary1'>"+b.annuel+"</span>"])
)
\`\`\``
%>

Rédaction d’articles

Quand j’écris un article, j’utilise mon template article (ehhhh ouais). Il inclut :

  • La plateforme, généralement mon blog perso
  • La date de création du brouillon
  • Une case à cocher une fois que c’est publié
  • Une petite section « Intention » pour quand j’ai l’idée de l’article : en dehors du titre où « je me comprends », je peux écrire quelques idées, balancer un lien ou faire un vrai paragraphe pour donner du contexte, ce qui sera très apprécié par le moi du futur
  • La section « Article »
  • Une section « Sources » en bas pour mes liens internes et externes

C’est probablement mon template le plus simple. Le voici :

---
tags:
- article
Platform: 
publié:
date created: <% tp.date.now("YYYY-MM-DD") %>
---

> [!DANGER] Intention
> Intention

# Article

# Sources

Note de lecture (et comment ne pas les oublier)

La partie de mon coffre dont je suis le plus fier, c’est la documentation. Quand je lis, regarde, ou écoute quelque chose d’intéressant, de pertinent, qui pourrait me servir de piste de réflexion un jour, je lui crée une note avec le tag /triage.

J’inclus dans le frontmatter la date d’ajout (pas celle de publication), l’auteur·ice, la source (lien et média ou revue académique pour l’officiel, lien seulement pour les blogs personnels) et les thèmes (pour les retrouver facilement avec une requête, vous l’aurez compris, Dataview).

Dans le corps de la note, j’ai trois sections :

  • Notes
  • Notes à trier, là où je mets mes surlignages ou ma prise de notes
  • Lié

Avant, j’avais aussi « Sert à écrire » où je renvoyais vers un article en brouillon. Avec le temps, j’ai décidé de simplement mettre ça dans « Lié ».

Voici mon template documentation :

---
tags:
- documentation/triage
thèmes:
auteurice:
source:
added: [[<% tp.date.now("YYYY-MM-DD") %>]]
---

# Notes

> [!SUMMARY] Résumé
>

# Notes à trier

# Lié

Ma documentation ne sert à rien en elle-même : encore faut-il que je sache chercher dedans, que je me souvienne qu’elle existe, et que je l’utilise. Pour ça, j’ai installé le plugin Spaced Repetition, qui ravira les fans d’Anki. Mais d’abord, je nettoie mes notes.

Je passe dans mon document [[📑 Documentation à trier]], dont voici le template.

Section par section, on a « Sans thème indiqué », « Pommes » (les articles de moins de 1000 caractères), « Chonks » (les articles de plus de 10 000 caractères), et « All » triés par ordre de dernière modification.

---
date created: 2022-12-23 11:49
aliases:
- triage
---
# Sans thème indiqué

```dataview
LIST
FROM #documentation/triage AND -"Templates"
WHERE !thèmes
SORT file.cdate DESC
LIMIT 10
```

# 🍎 Pommes

```dataview
TABLE file.size as "Size", thèmes as "Thèmes"
FROM #documentation/triage AND -"Templates"
WHERE file.size < 1000
SORT file.size ASC
LIMIT 20
```

# ⛰ Chonks

```dataview
TABLE file.size as "Size", thèmes as "Thèmes"
FROM #documentation/triage AND -"Templates"
WHERE file.size > 10000
SORT file.size DESC
LIMIT 20
```

# All

```dataview
TABLE file.size as "Size", thèmes as "Thèmes"
FROM #documentation/triage AND -"Templates" 
WHERE sr-due = FALSE
SORT file.mday ASC
LIMIT 20
```

J’essaie d’y prendre quelques articles tous les jours et de nettoyer mes notes, de les traduire en français si elles sont en anglais (pour n’avoir à faire mes recherches que dans une langue), d’ajouter les thèmes et les liens vers d’autres documents sur le sujet quand leur rapport est évident. Quand c’est fait, je change le tag en (sans le /triage derrière).

Ensuite, j’utilise le plugin Spaced Repetition (que les fans d’Anki prendront très vite en main), qui va me faire ressortir l’article le lendemain, puis 3 jours après, puis une semaine après, puis deux semaines, puis un mois, etc. jusqu’à ce que j’aie bien intégré que la note existe, fait des modifications avec le recul si nécessaire, et que je puisse enfin me passer de cette répétition.

Avec le gros volume de notes de lecture que je crée et ma mémoire très limitée, c’est un élément vraiment essentiel de mon organisation !

Pasted image 20240520093119.png

Mes notes à revoir aujourd’hui

People notes

J’ai des notes pour les gens, dans lesquelles j’indique leur date de naissance, leur ville / région, leurs pronoms (ça fait jamais de mal) et leurs relations avec d’autres gens que je connais. J’ajoute le nom de leur conjoint·e, enfants, chiens, jeu vidéo préféré, employeur… bref, tout ce dont je devrais me souvenir.

J’essaie de limiter le facteur cringe de ces notes en me contentant de ce genre d’informations et en n’y mettant pas d’informations « non publiques ». J’aime beaucoup l’approche de ce sujet par Nicole van der Hoeven, mon influenceuse Obsidian préférée.

Concepts

Mes pages concept incluent des concepts, des lieux (comme des pays), et les pages Personnalités, qui ne sont pas les pages People présentées ci-dessus mais des gens que je ne connais pas personnellement.

Elles me permettent de facilement retrouver toutes les notes de lectures que j’ai prises sur un sujet, avec les concepts liés, la documentation liée, et les articles en brouillon qui y font référence.

J’utilise aussi le plugin Wikipédia pour insérer une description « officielle » (le résumé introductif de la page Wikipédia) sur les concepts plus répandus et personnalités publiques.

Pasted image 20240521084710.png

La page concept de bell hooks, avec une description de Wikipédia mais pas beaucoup de liens.

Mon template ressemble à ça :

---
aliases:
tags:
- référence
---

> [!TLDR] Définition

# 🧠 Concepts liés

```dataview
TABLE 
FROM [[]] AND -#documentation
```


# 📖 Documentation liée

```dataview
TABLE 
FROM #documentation AND [[]]
```

# 📝 Sert à écrire

```dataview
TABLE 
FROM #article AND [[]]
```

Hobbies

Enfin, j’ai des pages pour toutes sortes de hobbies, que je pratique ou que je pourrais vouloir pratiquer un jour (et dans le cas de Melee, que j’ai pratiqués il y a longtemps).

Dans mon tag classique, j’ai un autre tag, /scanner, où je mets une page pour chaque activité qui me fait envie et dont je ne connais pas grand-chose.

J’y accumule les liens que je n’ai pas triés (parce que je ne m’intéresse pas au sujet) : je trouve très réconfortant de me dire « eh, si un jour je me décide à faire de l’aviron / coudre mes propres vêtements / ouvrir une librairie, j’aurai déjà toutes ces ressources parce que je sais que ça pourrait m’intéresser un jour ».

Si un jour je m’y intéresse suffisamment, comme c’est le cas actuellement pour la course à pied, la natation, ou l’informatique, je pourrai créer un tag sous et avoir plusieurs pages de notes, mais en attendant ça m’évite de « polluer ».

Et un jour, comme pour Melee ou le régime keto, j’en aurai peut-être assez, alors je déplacerai le tag de à /archive.

Sync et Publish

Sur mon coffre personnel, j’ai un backup sur mon Nextcloud, mais j’utilise aussi et surtout Obsidian Sync, que j’aime beaucoup. Au départ, je payais parce qu’Obsidian était un tout petit projet et que c’était le seul moyen de les soutenir financièrement, et maintenant je n’ai simplement plus envie de m’en passer (et je suis encore tout à fait ok avec ce que je paie par rapport à tous les bénéfices que j’en retire).

En raison des règles de sécurité de mon employeur, je n’utilise pas Obsidian Sync pour mon coffre de travail : je mets tous les fichiers sur le Google Drive fourni par mon employeur pour que les informations ne se baladent pas sur des serveurs inconnus. (On pensera ce qu’on voudra du fait qu’elles se baladent sur les serveurs d’un concurrent, mais ça, c’est le service informatique qui gère.)

J’ai testé Obsidian Publish quelques jours sur mon coffre personnel, mais je n’ai pas vraiment aimé le manque de personnalisation, l’absence totale de solutions SEO, et la prise en main. J’ai aussi et surtout eu du mal à trier un par un mes fichiers pour décider de ce qui pouvait être en ligne et ce qui devait rester perso, et je n’avais pas envie de jongler entre les coffres (trois, c’est déjà trop.)

Discuter et s’améliorer sur Obsidian

J’ai appris l’essentiel de ce que je fais sur Obsidian avec :

  • Le Discord, quitté il y a bien longtemps mais dont je garde un bon souvenir
  • Le tout à fait excellent forum officiel
  • Quelques chaînes Youtube et surtout celle de Nicole van der Hoeven
  • Des échanges informels, notamment via le groupe des utilisateur·ices d’Obsidian à mon travail.

J’espère que cet article est intéressant, utile, ou les deux, et n’hésitez pas à partager vos propres astuces et remarques, c’est comme ça qu’on peut s’améliorer ensemble !

❤️

Commentaire / Comment

Commenter

  1. @alexture Super article ! Faudra que j’essaye d’implémenter cet « instant nostalgie », faudrait que j’arrive à exporter mes vieilles notes de Day One et consort, ça pourrait être sympa 😊 (et merci pour le shoutout 💜)

  2. @alexture
    Merci pour le partage de vos configurations. C’est très utile pour améliorer mon utilisation.
    Le seul bémol que j’ai avec #Obsidian est qu’il n’est pas opensource. Par contre, sa structure #markdown, bien qu’elle aie des petites particularités (comme les admonitions), elle est tout à fait gérable hors Obsidian et donc en fait une solution pérenne si le développement s’arrête.
    J’utilise aussi un #Nextcloud perso pour synchroniser. C’est parfait et facile.

    markdown
    nextcloud
    obsidian