Recette

unlisted

by Pierre

Affiche dans la barre latérale les ingrédients à acheter (surlignés ==...==) de la recette active.

Updated 13d ago
View on GitHub

Plugin Obsidian — Recette

Affiche dans la barre latérale droite les ingrédients à acheter de la recette active.

Fonctionnement

Le plugin lit la note active et extrait tous les passages surlignés avec la syntaxe ==...==. Chaque passage surligné est considéré comme un ingrédient à acheter.

Exemple dans une note :

==Saumon frais==
Riz sushi + ==vinaigre de riz==
==Avocat==
Sel, poivre
==Feuilles de nori==

Résultat dans la barre latérale :

  • Saumon frais
  • vinaigre de riz
  • Avocat
  • Feuilles de nori

Les cases à cocher permettent de barrer les ingrédients au fur et à mesure des achats. L'état des cases n'est pas persisté — il se remet à zéro à chaque changement de note.

Un bouton "Ajouter à la liste d'achats" en haut de la sidebar permet d'envoyer tous les ingrédients dans une note de liste de courses configurable (par défaut : 050 - Cuisine/À acheter.md). Chaque ingrédient est ajouté sous la forme - [ ] ingrédient à la fin du fichier.

Convention de surlignage

Seuls les ingrédients à acheter spécialement sont surlignés, c'est-à-dire ceux qui ne font pas partie du garde-manger courant.

Non surlignés (toujours en stock) : sel, poivre, huile, beurre, farine, sucre, ail, oignons, épices communes, conserves de base.

Surlignés (à acheter) : protéines fraîches, produits frais périssables, ingrédients de spécialité (vinaigre de riz, lait de coco, feuilles de nori, fromage Philadelphia, graines de sésame, fèves edamames, etc.).

Configuration

Dans Obsidian → Options → Plugins communautaires → Recette, un paramètre est disponible :

ParamètreDéfautDescription
Fichier liste d'achats050 - Cuisine/À acheter.mdChemin de la note où les ingrédients sont envoyés via le bouton
Dossier des recettes050 - Cuisine/Recette/Les notes dans ce dossier s'ouvrent automatiquement en mode lecture

Structure des fichiers

recette/
├── main.ts          # Source TypeScript
├── main.js          # Compilé par esbuild (ne pas modifier)
├── styles.css       # Styles de la barre latérale
├── manifest.json    # Métadonnées du plugin
├── esbuild.config.mjs
├── tsconfig.json
├── package.json
└── README.md

Développement

Prérequis

  • Node.js ≥ 18 (testé avec Node.js 22)

Installation des dépendances

npm install

Compilation (production)

node esbuild.config.mjs production

Mode watch (développement)

node esbuild.config.mjs

Le mode watch recompile automatiquement à chaque modification de main.ts. Recharger le plugin dans Obsidian (Ctrl+P → Reload app without saving) pour voir les changements.

Évolutions possibles

  • Persister l'état des cases à cocher (localStorage ou fichier)
  • Bouton pour tout décocher d'un coup
  • Copier la liste dans le presse-papier
  • Filtrer uniquement les notes avec cssclasses: recette dans le frontmatter

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.