Obsidian Bases — Vues, Propriétés, Design des données & Bonnes Pratiques

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.backlinks sur gros volumes ; préférer file.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

  1. Conventions de propriétés validées (noms/types).
  2. Filtres testés (jeu d’essai représentatif).
  3. Tri & limites définis (UX + performance).
  4. Recettes documentées (où copier/coller, à quoi sert la vue).
Besoin de la syntaxe ? Voir les recettes express

Vos idées méritent mieux
qu'un simple oubli.

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.