Obsidian Bases transforme vos notes en bases de données visuelles. En quelques minutes, vous créez des tableaux et des cartes qui listent automatiquement vos notes, avec filtres, tris et colonnes calculées. Résultat : vous pilotez votre contenu, vos projets et votre savoir sans scripts ni configurations complexes.
Dans ce guide, vous allez activer le plugin, créer votre première base, configurer des vues utiles, ajouter des formules simples — et repartir avec des modèles prêts à l’emploi pour aller vite.
Dans une note : ![[NomDuFichier.base]] ou ![[NomDuFichier.base#Nom de la vue]].
En bloc base : collez la syntaxe YAML (voir §6).
Exemple : base « Contenus » avec vues « Idées / Brouillons / Publiés » filtrées par writing/idea, writing/draft, writing/published.
and, or, not (groupes imbriqués possibles).file (ex : file.hasTag(\"writing/draft\"), file.inFolder(\"Articles\")), frontmatter (ex : author, status, priority).if, now, link, image…), date, string, number, list, file, link, object, regexp.note.prop (frontmatter), file.ext/file.mtime/file.tags (propriétés de fichier), formula.nom (autres formules, sans boucle).```base
formulas:
formatted_price: 'if(price, price.toFixed(2) + " €")'
ppu: "(price / age).toFixed(2)"
# Exemples d'expressions
# if(isModified, "Modifié", "Non modifié")
# file.hasTag("writing/draft")
# link("[[NomDeNote]]", icon("arrow-right"))
```
On définit deux formulas (prix formaté, prix/âge) réutilisables dans toutes les vues. Les lignes en commentaire montrent des expressions typiques utilisables en filtres ou formules (if, file.hasTag, link).
baseUne base .base contient filters, formulas, properties, views (toutes réutilisables). Vous pouvez coller la même syntaxe dans un bloc base au sein d’une note.
Minimal (filtrer un tag + table) :
```base
filters:
and:
- file.hasTag("writing/idea")
views:
- type: table
name: "Idées à développer"
order:
- file.name
- file.mtime
```
Filtre les notes taguées writing/idea, puis les affiche en table triée par nom puis date de modification.
Plus avancé (formules + filtres multi‑conditions) :
```base
filters:
or:
- file.hasTag("writing/draft")
- and:
- file.hasTag("writing/idea")
- not:
- file.inFolder("Archive")
formulas:
age_days: "((now() - file.ctime) / 86400000).toFixed(0)"
priority_label: "if(priority >= 4, 'Haute', if(priority >= 2, 'Moyenne', 'Basse'))"
properties:
formula.age_days: { displayName: "Âge (jours)" }
formula.priority_label: { displayName: "Priorité" }
views:
- type: table
name: "Backlog"
limit: 50
order:
- formula.priority_label
- file.mtime
```
Affiche les brouillons ou les idées hors dossier Archive. Deux formules utiles : âge en jours et étiquette de priorité. Vue « Backlog » limitée à 50, tri par priorité puis dernière modification.
.base sont des fichiers texte : partageables entre coffres.![[Nom.base#Vue]].Filtrez file.hasLink(this) dans une base embarquée en sidebar pour lister les notes qui lient la note active — avec les colonnes qui comptent pour vous.
```base
filters:
or:
- file.hasTag("writing/idea")
- file.hasTag("writing/draft")
- file.hasTag("writing/published")
views:
- type: table
name: "Idées"
filters: { and: [ "file.hasTag('writing/idea')" ] }
- type: table
name: "Brouillons"
filters: { and: [ "file.hasTag('writing/draft')" ] }
- type: table
name: "Publiés"
filters: { and: [ "file.hasTag('writing/published')" ] }
```
Centralise le pipeline de contenus avec trois vues (Idées, Brouillons, Publiés), chacune filtrée sur un tag d’état.
```base
filters:
and:
- file.inFolder("Contacts")
views:
- type: table
name: "Prospects"
filters: { and: [ "stage == 'prospect'" ] }
- type: table
name: "Clients"
filters: { and: [ "stage == 'client'" ] }
```
Limite aux fichiers du dossier Contacts et segmente par stage (prospect/client) via deux vues.
```base
filters:
and:
- file.inFolder("Clippings")
views:
- type: table
name: "À lire"
filters: { and: [ "read != true" ] }
- type: table
name: "Lus"
filters: { and: [ "read == true" ] }
```
Deux vues sur vos captures (Clippings) : éléments à lire vs. déjà lus, selon la propriété booléenne read.
```base
filters:
and:
- file.hasTag("books")
views:
- type: table
name: "Tous les livres"
- type: table
name: "Année en cours"
filters: { and: [ "note.year == today().year" ] }
```
Filtre sur le tag books, puis propose une vue annuelle basée sur note.year et la fonction today().year.
file.links à file.backlinks (plus léger).results..base dans /_Bases pour ré‑usage.file.backlinks, limitez les résultats, simplifiez les formules.Prochaines étapes : standardisez 3–5 propriétés (ex : status, priority, owner, deadline), créez une base « CRM » et « Clippings », ajoutez une ou deux formules (âge en jours, étiquette de priorité).

Ne laissez plus le chaos vous ralentir. Recevez chaque mardi à 8h les systèmes mentaux pour penser en clair et bâtir votre second cerveau.