Aller au contenu

Ingrédients

Les ingrédients constituent la matière première de toute recette Gram.

Pour déclarer un @ingrédient, utilisez le préfixe @. Si le nom de l’@ingrédient comporte des espaces ou exige une quantité précise, vous devez l’encapsuler avec des accolades {}. S’il s’agit d’un mot simple (sans espace) et sans quantité spécifique, les accolades deviennent facultatives (la quantité vaudra implicitement 1).

[Ajouter] @sel et @poivre noir moulu{} au goût.

[Piquer] Des trous dans les @pommes de terre{2}.

Pour préciser une unité de mesure (poids, volume, etc.), glissez-la directement après la valeur numérique au sein des accolades (l’espace entre le chiffre et l’unité est optionnel).

[Placer] Les @tranches de bacon{1 kg} sur une plaque de cuisson et glacer avec du @sirop{1/2 c.à.s}.

Par défaut, le compilateur Gram ajuste les quantités d’un @ingrédient de manière strictement linéaire en fonction du nombre de portions demandées. Si vous adaptez une recette de 2 à 4 portions, un @ingrédient avec {100 g} devient {200 g}.

Cependant, certains @ingrédients (sel, épices, piment) ne supportent pas bien l’ajustement linéaire des proportions. Vous pouvez verrouiller leur quantité grâce au modificateur =.

Assaisonner avec @=sel{1 c.à.c} au goût.

Cela maintient le sel à 1 c.à.c, peu importe le nombre de portions calculé par l’utilisateur.

Gram propose toute une batterie de modificateurs pour altérer le comportement d’un @ingrédient lors du parsing et dans la liste de courses. Ces modificateurs se collent immédiatement après le symbole @.

ModificateurNomEffet
&RéférenceFait référence à un @ingrédient précédemment déclaré. Ne l’ajoute PAS une seconde fois à la liste de courses.
=FixeMarque la quantité comme fixe (elle ne variera pas avec le nombre de portions).
?OptionnelMarque l’@ingrédient comme facultatif.
-MasquéMasque l’@ingrédient dans la liste de courses générée.
*% du BoulangerMarque l’@ingrédient comme référence (100 %) pour calculer les pourcentages du boulanger.

Utilisez ? pour estampiller un @ingrédient comme facultatif (idéal pour une garniture que le cuisinier peut choisir d’ignorer). Utilisez - pour masquer délibérément un @ingrédient de la liste de courses (pratique pour les denrées que l’on a toujours dans ses placards, comme l’eau ou le poivre).

[Garnir] Parsemer de @?thym{} et d'une pincée de @-sel{} selon le goût.

Le modificateur de référence est essentiel pour les recettes multi-étapes. Règle clé : à chaque fois que vous citez un @ingrédient après sa déclaration initiale, vous devez utiliser le modificateur &.

Le comportement du compilateur change selon que vous indiquez ou non une nouvelle quantité avec votre référence :

  1. Référence Pure (Sans Quantité) Lorsque vous demandez à l’utilisateur d’utiliser un @ingrédient déjà déclaré, utilisez @& pour éviter qu’il ne soit compté deux fois dans la liste de courses.
[Ajouter] La @farine{200 g} dans le bol.

[Fleurer] Le plan de travail avec la @&farine.
  1. Référence Additive (Avec Quantité) Parfois, il arrive de piocher plusieurs fois dans le même @ingrédient tout au long de la recette. La syntaxe @&ingrédient{quantité} chuchote au compilateur : “C’est bien le même @ingrédient, merci d’additionner cette nouvelle quantité au total de la liste de courses.”
[Ajouter] Le @beurre{100 g} à la pâte.

[Graisser] Utiliser le @&beurre{50 g} pour graisser le moule. // La liste de courses agrégera correctement 150 g de beurre.

En boulangerie, les recettes sont souvent construites autour du Pourcentage du Boulanger, où l’@ingrédient principal (généralement la farine) représente 100 %, et tous les autres éléments sont exprimés en pourcentage de ce poids.

Gram fournit un modificateur dédié pour marquer l’@ingrédient de référence. En plaçant un * après le symbole @, vous indiquez au Compilateur Gram : “Ceci est le point de référence à 100 %”.

[Ajouter] La @*farine{500 g}, l'@eau{350 g} et le @sel{10 g}.

Cela permet aux outils (comme le CLI ou les interfaces web) de calculer et d’afficher automatiquement les pourcentages du boulanger pour tous les autres éléments (ex : Eau : 70 %, Sel : 2 %) sans que vous n’ayez à les définir manuellement comme quantités relatives.

Souvent, un @ingrédient nécessite une préparation avant utilisation. Vous pouvez définir cela directement dans la déclaration à l’aide de parenthèses ().

[Mélanger] Le @beurre{1 plaquette}(à température ambiante) et l'@ail{2 gousses}(épluchées et hachées).

Vous pouvez surcharger le nom d’affichage d’un @ingrédient en utilisant les deux-points : juste après son nom d’origine. C’est une excellente pratique pour conserver une liste de courses rigoureuse tout en employant un libellé plus naturel dans les instructions.

Format : @Vrai Nom:Nom d'Affichage{Quantité}

Déglacer avec le @vin blanc sec:vin{100 ml}.

La liste de courses fera l’agrégation sous “vin blanc sec”, mais la recette affichée indiquera simplement “vin”.

Vous pouvez définir des alternatives acceptables pour un @ingrédient en utilisant l’opérateur pipe |.

Ajouter le @lait{100 ml}|@eau{95 ml}.

Cela fonctionne également avec les préparations courtes :

@oignon{1}(épluché et émincé)|@échalotes{2}(hachées)

La cuisine n’est pas toujours une science exacte. Vous pouvez spécifier une fourchette (plage de valeurs) grâce au trait d’union -.

Ajouter les @œufs{2-4}.

Verser l'@eau{1.5-2 L}.

Les quantités acceptent les fractions sous trois formes — fraction simple, nombre mixte, ou glyphe de fraction Unicode — toutes normalisées vers la même valeur décimale.

Ajouter le @sucre{1/2 tasse}.

Ajouter la @farine{1 1/2 tasse}.

Ajouter le @beurre{1½ plaquette}.

Le compilateur vérifie les erreurs sémantiques dans vos déclarations d’@ingrédient et produira des avertissements spécifiques :

  • Modificateur Invalide : Si vous combinez des modificateurs incompatibles (comme ?*), le compilateur avertit INVALID_MODIFIER_COMBINATION et les ignore.
  • Référence Non Définie : Si vous utilisez une référence (@&ingrédient) mais que cet élément n’a pas été déclaré précédemment dans la recette, le compilateur avertit UNDEFINED_REFERENCE.
  • Base de Données Manquante : Si vous compilez avec une base de données et que l’@ingrédient est introuvable, il avertit MISSING_INGREDIENT.
  • Macros Manquants : Si la base de données ne contient pas d’informations nutritionnelles pour l’@ingrédient, il avertit MISSING_MACROS.
  • Masse Inconnue : S’il ne peut pas convertir un volume ou une unité en grammes pour estimer la nutrition, il avertit UNKNOWN_MASS.