Aller au contenu principal

Settings

Color Mode
Theme Skin
Background

Appearance preferences are saved in this browser only.

Environment
Current Environment Dev

Built with JEKYLL_ENV=development. Changes auto-reload under jekyll serve.

Theme & Build
Jekyll v3.10.0
Last BuildSep 01, 22:13
Page Location
Page Info
Layout default
Collection none
Path fr/docs/features/cookbook-collection.md
URL /fr/docs/features/cookbook-collection/
Cette page a été traduite automatiquement à partir de l'original en anglais. Voir l'original

Collection de recettes — Des recettes qui s'ajustent elles-mêmes

Publiez des recettes sous forme de front matter structuré — ingrédients, ratios, durées — rendues avec ajustement des portions, conversion US↔métrique et pourcentages du boulanger.

Collection Cookbook

La collection recipes transforme le front matter en une page de recette fonctionnelle. Vous décrivez la recette sous forme de données — ingrédients avec quantités et unités, étapes, temps, un rendement — et le thème affiche la barre de faits, la liste de contrôle des ingrédients, la méthode, un tableau de pourcentages du boulanger et une barre de contrôle qui redimensionne chaque quantité et bascule toute la page entre les unités dans lesquelles elle a été écrite, le système métrique et le système impérial américain.

Le thème est livré avec un cookbook de démonstration — The Zer0 Kitchen — qui met en œuvre tout ce qui figure sur cette page.

Ce que le lecteur obtient

  • Mise à l’échelle. Modifiez le rendement et toutes les quantités suivent, y compris les poids du tableau de ratios. Les pourcentages ne bougent pas, car un ratio ne dépend pas de la quantité que vous préparez.
  • Conversion. Les tasses deviennent des grammes et les grammes deviennent des tasses, en utilisant les densités de _data/ingredient_densities.yml. Les températures de four suivent le même changement.
  • Une formule, pas simplement une liste. Les recettes qui déclarent un ratio_basis: obtiennent un tableau de chaque ingrédient en pourcentage de celui-ci — la manière dont le pain, la pâtisserie et les sauces sont réellement consignés.
  • Une page qui fonctionne sans JavaScript. Chaque quantité est rendue par Jekyll exactement telle qu’elle a été écrite. Le redimensionneur est une amélioration progressive : sans scripting, les contrôles n’apparaissent jamais et la recette reste complète et correcte.

Activer la collection

Ajoutez la collection et ses valeurs par défaut de front matter au fichier _config.yml de votre site (la configuration du thème contient le même bloc) :

collections:
  recipes:
    output: true
    title: Cookbook
    icon: bi-egg-fried
    permalink: /:collection/:name/

defaults:
  - scope:
      path: pages/_recipes   # match your collections_dir
      type: recipes
    values:
      layout: recipe
      comments: false
      sidebar:
        nav: auto

Deux fichiers de données facultatifs affinent la présentation. Les deux se dégradent gracieusement — sans eux, les catégories reviennent à leur clé brute et les volumes ne se convertissent tout simplement jamais en poids.

Fichier Objectif
_data/recipe_courses.yml Sections de catégories sur l’index — titre, accroche, icône. Les sections s’affichent dans l’ordre des fichiers.
_data/ingredient_densities.yml Grammes par tasse américaine et par ingrédient, indexés par le nom slugifié. C’est ce qui rend possible la conversion volume↔poids.

Écrire une recette

Un fichier par recette sous pages/_recipes/ :

pages/_recipes/
  index.md                 # layout: cookbook — cover + recipe index
  no-knead-focaccia.md     # layout: recipe (the collection default)

Front matter de la recette

Clé Requis Objectif
title oui Nom de la recette (<h1> de la page)
description non Paragraphe d’introduction, texte de la carte et méta-description
cookbook non Slug liant cette recette à une page d’accueil layout: cookbook
course non Clé de section recherchée dans _data/recipe_courses.yml
cuisine, difficulty non Entrées de la barre de faits (difficulty : facile / intermédiaire / avancé)
yield non {amount, unit, singular}amount est la base à partir de laquelle le redimensionneur travaille
times non {prep, cook, rest, rest_label, total} en minutes ; le total est calculé s’il est absent
oven non {temp_f, temp_c, mode} — indiquez l’une des deux échelles, l’autre en est déduite
equipment non Liste de chaînes
ingredients non Liste d’éléments, ou de groupes {group, items} — voir ci-dessous
steps non Liste d’étapes, ou de sections {section, items} — voir ci-dessous
ratio, ratio_basis non ratio_basis désigne l’ingrédient à 100 % et active le tableau de ratios
notes non Liste de chaînes Markdown — « Notes du cuisinier »
nutrition non {basis, calories, protein, …} par portion
source, source_url non Ligne d’attribution sous le titre
scaler non false masque la barre de contrôle
units non false masque le sélecteur d’unités mais conserve la mise à l’échelle

Ingrédients

Un ingrédient est un hash. Seul item est requis :

ingredients:
  - group: Dough              # optional grouping; omit for a flat list
    items:
      - item: bread flour
        qty: 500
        unit: g
      - item: large eggs
        singular: large egg   # used when the amount scales down to one
        qty: 2
      - item: garlic
        qty: 4
        qty_max: 6            # renders and scales as a range: "4–6 cloves"
        unit: cloves
        prep: lightly smashed
        optional: true
      - item: kosher salt
        qty: 1
        unit: tsp
        grams_per_cup: 145    # pin a density the data file does not know
        note: Diamond Crystal — Morton's is nearly twice as dense.
Clé Objectif
item Nom de l’ingrédient (requis)
qty, qty_max Quantité, et la limite supérieure d’une plage. Des nombres, pas des chaînes — 0.5, pas "1/2"
unit Telle que vous l’écririez : g, cups, tbsp, cloves, ou rien du tout
prep Complément final : « finement haché »
note Sous-ligne sous l’ingrédient
singular Forme au singulier, utilisée dès que la quantité descend à un ou en dessous
optional true ajoute un badge « facultatif »
link Ajoute un lien au nom de l’ingrédient
grams_per_cup Densité personnalisée, prioritaire sur _data/ingredient_densities.yml
weigh false conserve cette quantité en volume même en système métrique
scale false fige la quantité lorsque la recette est redimensionnée
ratio false l’exclut du tableau de ratios
baker_percent Fige le pourcentage au lieu de le calculer

Les quantités s’affichent avec des fractions typographiques (0.5 → ½) pour les tasses, cuillères et éléments dénombrables, et sous forme de décimales pour les poids métriques — une balance affiche 40.5 g, pas 40½ g.

Étapes

Une étape est une simple chaîne ou un hash :

steps:
  - section: "The night before"    # optional; numbering continues across sections
    items:
      - title: Mix
        text: Stir until no dry flour remains. The dough will be **wet**.
        time: 5                     # minutes
        temp_f: 450                 # converts with the unit switch
        image: /assets/images/step-1.jpg
        image_alt: Shaggy dough in a bowl
        note: Do not knead it.

Le texte des étapes est converti en Markdown, donc les liens et l’emphase fonctionnent.

Conversion d’unités, avec précision

Basculer vers Métrique ou US réécrit chaque quantité de la page :

  • Masse ↔ masse, volume ↔ volume fonctionnent toujours : g ⇄ oz, ml ⇄ cups.
  • Volume ↔ poids ne fonctionne que lorsqu’une densité est connue — soit à partir du grams_per_cup: propre à l’ingrédient, soit à partir de _data/ingredient_densities.yml, mis en correspondance avec le nom d’ingrédient sous forme de slug (Bread flourbread-flour). Le système métrique convertit un volume connu en grammes ; le système américain reconvertit un poids connu en tasses et cuillères. Définissez weigh: false pour exclure un ingrédient.
  • Les unités sont choisies pour la lisibilité. 3 c. à thé deviennent 1 c. à soupe ; 1500 g deviennent 1,5 kg. Les quantités américaines s’arrondissent au quart au-dessus d’une tasse et au huitième en dessous, car c’est ce que les cuillères doseuses permettent.
  • Les températures affichent les deux échelles par défaut et se réduisent à celle sélectionnée.
  • La valeur nutritionnelle ne s’ajuste jamais. Une portion reste une portion, quel que soit le nombre que vous préparez.

Le choix d’unité du lecteur est mémorisé d’une recette à l’autre, et chaque recette conserve sa propre échelle. Un lien peut transporter l’un ou l’autre : ?servings=24 ou ?scale=2.

La table des ratios

Déclarez quel ingrédient représente 100 % :

ratio: "5 flour : 4 water"   # optional prose summary
ratio_basis: flour           # matched as a substring — covers every "… flour"

Chaque ingrédient pouvant être ramené à un poids obtient une ligne et un pourcentage ; ceux qui ne le peuvent pas (une gousse d’ail, un œuf, un volume sans densité) sont listés sans pourcentage plutôt que d’être estimés. La table totalise aussi la fournée et la divise par le rendement, qui est le chiffre que le boulanger recherche réellement — grammes par petit pain, par miche, par boule de pizza.

Les pourcentages sont calculés par Jekyll au moment de la génération : ils sont donc corrects même avec JavaScript désactivé et ne peuvent jamais s’écarter de la liste des ingrédients.

La page d’accueil du livre de recettes

---
title: The Zer0 Kitchen
layout: cookbook
cookbook: zer0-kitchen     # omit to index every recipe on the site
permalink: /recipes/
---

La page affiche une couverture, votre corps Markdown, une navigation rapide de ses catégories, et l’index des recettes groupé en sections par catégorie.

Composants

Placez n’importe lequel d’entre eux sur n’importe quelle page. Les pages en dehors de la mise en page recipe ont besoin de recipe_tools: true dans leur front matter pour charger le script de mise à l’échelle.

Include Objectif
components/recipe-index.html Grille de recettes, groupées par catégorie (cookbook, heading, grouped)
components/recipe-card.html Carte d’une recette (recipe, heading_level)
components/recipe-meta.html Barre d’informations (recipe)
components/recipe-scaler.html Contrôles de mise à l’échelle et d’unités (base_yield, yield_unit, units)
components/recipe-ingredients.html Liste de contrôle des ingrédients (ingredients, checklist, id_prefix)
components/recipe-steps.html Méthode numérotée (steps, heading)
components/recipe-ratio.html Table de pourcentage du boulanger (recipe, basis)
components/recipe-nutrition.html Valeur nutritionnelle par portion (recipe)
components/recipe-qty.html Une quantité ajustable (qty, unit, grams_per_cup, scale)
components/recipe-temp.html Une température convertible (f, c)

Un index de recettes sur une page d’accueil tient en une ligne :

{% include components/recipe-index.html heading="What we're cooking" %}

Et une température convertible s’insère directement dans le texte :

Heat the oven to {% include components/recipe-temp.html f=375 %}.

Données structurées

Chaque page de recette émet un bloc JSON-LD schema.org/Recipe — nom, image, auteur, durées au format ISO 8601, rendement, catégorie, cuisine, mots-clés, ingrédients, instructions et calories — de sorte que les recettes sont éligibles aux résultats enrichis de recherche sans aucune extension supplémentaire.

Fichiers

Chemin Rôle
_layouts/recipe.html, _layouts/cookbook.html Les deux mises en page
_includes/components/recipe-*.html L’ensemble de composants
assets/js/recipe-scaler.js Moteur de mise à l’échelle et de conversion (chargé uniquement sur les pages de recette)
_sass/components/_recipe.scss Styles, incluant une feuille de style pour l’impression
_data/recipe_courses.yml, _data/ingredient_densities.yml Métadonnées des catégories et densités

La table des unités dans recipe-scaler.js reflète celle de components/recipe-grams.html — la table au moment de la génération alimente les pourcentages de ratio, celle à l’exécution alimente la conversion. Modifiez-les ensemble.