Obsidian Bases — Vues, Propriétés, Design des données & Bonnes Pratiques
Page technique (en français) pour designer vos vues, organiser vos propriétés et tenir des bases performantes. Inclut des recettes prêtes à copier et des checklists de mise en prod.
Vues : Table & Cartes
Table : lignes = fichiers, colonnes = propriétés. Cartes : grilles visuelles avec image de couverture optionnelle (propriété image → URL/attachment/hex).
Réglages cartes : imageProperty (ex.
cover), imageFit (cover/contain), imageRatio (ex. 1.5). Configurez depuis l’UI de la vue.
Design des propriétés
- Conventions : noms courts, explicites, snakeCase/kebab-case stables (ex.
status,priority,owner). - Typage : respect des types (texte, nombre, date, booléen) → filtres fiables et tris cohérents.
- note vs file vs formula : utilisez
file.*pour les métadonnées (ext, mtime),note.*pour le métier,formula.*pour la présentation/agrégat. - this : pratiques contextuelles (sidebar/embarqué) :
file.hasLink(this.file).
Recettes de vues (copiables)
Catalogue (tri par « prix/âge »)
```base
formulas:
formatted_price: "if(price, price.toFixed(2) + ' €')"
ppu: "(price / age).toFixed(2)"
views:
- type: table
name: "Catalogue"
order: [ formula.ppu, file.name ]
```
Library (cartes avec couverture)
```base
filters:
and:
- file.hasTag("books")
views:
- type: cards
name: "Library"
# configurer dans l'UI selon votre propriété image (ex. cover)
# imageProperty: cover
# imageFit: cover
# imageRatio: 1.5
```
Pipeline éditorial (Idée → Brouillon → Publié)
```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')" ] }
```
CRM léger (Prospects/Clients)
```base
filters:
and:
- file.inFolder("Contacts")
views:
- type: table
name: "Prospects"
filters: { and: [ "stage == 'prospect'" ] }
- type: table
name: "Clients"
filters: { and: [ "stage == 'client'" ] }
```
Read‑it‑later (À lire/Lus)
```base
filters:
and:
- file.inFolder("Clippings")
views:
- type: table
name: "À lire"
filters: { and: [ "read != true" ] }
- type: table
name: "Lus"
filters: { and: [ "read == true" ] }
```
Books — année en cours
```base
filters:
and:
- file.hasTag("books")
views:
- type: table
name: "Année en cours"
filters: { and: [ "note.year == today().year" ] }
order: [ file.name ]
```
Performance & gouvernance
- Limiter les résultats (ex. 50) dans les vues gourmandes.
- Éviter
file.backlinkssur gros volumes ; préférerfile.links+ filtres. - Centraliser vos modèles
.base(ex./_Bases) pour diffusion/maintenance. - Nommer les vues avec préfixes fonctionnels (ex. Édito/…, CRM/…).
Checklist mise en prod
- Conventions de propriétés validées (noms/types).
- Filtres testés (jeu d’essai représentatif).
- Tri & limites définis (UX + performance).
- Recettes documentées (où copier/coller, à quoi sert la vue).
Besoin de la syntaxe ? Voir les recettes express