1Introduction

Ce document porte les instructions techniques propres au projet Cooking. Il complète Kit — Projet — Prompt et ne le duplique jamais: les règles communes à tous les projets — formatage, protocoles de séance, convention de nommage, chaîne de validation — vivent dans le Prompt du Kit et ne sont pas reproduites ici.

Le projet publie le sous-site cooking.sliver.lu. Plusieurs natures de pages y coexistent: la documentation produite par le pipeline du Kit, les fiches des rubriques de référence, et les recettes. Fiches et recettes sortent des formes du Kit et disposent de leur propre spécification.

2Identité du projet

La source de vérité reste Cooking — Registry.js. Le tableau ci-dessous en donne le reflet au moment de la rédaction: en cas d'écart, c'est le Registry qui fait foi.

Paramètre Valeur
Préfixe projet Cooking
Domaine cible cooking.sliver.lu
project.docLanguage FR
project.documentAuthor Norbert Weber
project.webAuthor (vide) — pages web non signées
project.documentSiteBase https://cooking.sliver.lu
project.projectShareable false
project.allowNonKitTemplates true
familyDomains sliver.lu, hexi.lu
requires.coverSheet false (différé)
requires.readingGuide true
requires.glossary true
requires.brands false

L'auteur signe les documents et leurs PDF, jamais les pages web: project.documentAuthor porte son nom, project.webAuthor reste vide. Aucune page du sous-site, page d'accueil comprise, ne porte de signature.

Note:Norbert ne modifie jamais le Registry à la main: il demande la bascule dans le projet concerné, et l'IA l'effectue.

3Périmètre du projet

Le sous-site porte des flux de publication techniquement distincts.

Documentation kit-conforme.Pages issues du pipeline HTML du Kit. Identité visuelle, structure des rubriques et chaîne de validation du Kit s'appliquent sans écart.

Rubriques de fiches.Une page par sujet, hors du pipeline documentaire: /ingredients/ en premier, d'autres à venir — l'origine des morceaux de viande, par exemple. Toutes partagent une même spécification, parce qu'elles partagent une même forme.

Recettes.Une page par recette sous /recettes/, plus un PDF A4 imposé pour pliage en livret A5. L'imposition est propre aux recettes: elle justifie une spécification séparée de celle des fiches.

4Conventions rédactionnelles

Les règles de typographie française générales — guillemets chevrons, tirets cadratins, espace insécable avant la ponctuation haute — s'appliquent par défaut. Les conventions ci-dessous sont celles qui relèvent du domaine culinaire.

4.1Mesures et unités

Les unités adoptent les abréviations standard francophones, sans point final et précédées d'un espace insécable. Les fractions s'écrivent en chiffres.

Grandeur Abréviation Exemple
Gramme g 250 g
Kilogramme kg 1,5 kg
Millilitre ml 200 ml
Litre l 1 l
Cuillère à soupe c. à s. 2 c. à s.
Cuillère à café c. à c. 1 c. à c.
Pincée pincée 1 pincée

4.2Températures

Les températures de cuisson s'expriment en degrés Celsius, le symbole accolé au chiffre sans espace: 180 °C se note 180°C. Le thermostat est admis entre parenthèses quand il éclaire le lecteur.

4.3Durées

Les durées courtes se notent en minutes — 15 min, 45 min. Les durées intermédiaires combinent heures et minutes — 1 h 30, 2 h 15. Les durées rondes s'écrivent en heures seules — 3 h.

4.4Numéraux dans les ingrédients

Pour les aliments comptables — œufs, gousses d'ail, oignons, citrons —, les chiffres arabes s'emploient y compris pour les petits nombres: 2 œufs, 3 gousses d'ail.

4.5Pas de dénombrement

Aucun titre ni aucun texte ne compte ce qu'il annonce: ni les rubriques du site, ni les termes du glossaire, ni les blocs d'une fiche. Un compte vieillit à la première addition, et le lecteur le prend pour vrai. Les quantités qui appartiennent au sujet lui-même — poids, durées, températures d'une recette — n'en relèvent pas.

5Rubriques de fiches

Une rubrique de fiches est une rubrique générale du site: un module de données porte une entrée par sujet, et chaque entrée devient une page. La première est /ingredients/; les suivantes suivent les mêmes règles et n'ouvrent pas de chantier documentaire nouveau.

La mécanique de ces rubriques — déclaration, module de données, photos, rendu, liaison avec les recettes — est spécifiée dans Cooking — Documentation — Pipeline Fiches. Le présent chapitre ne porte que les règles de contenu.

5.1Chemins et noms

Les slugs et les noms de dossier ne portent pas d'accent: la rubrique des ingrédients vit sous /ingredients/. Les titres affichés et le texte courant gardent les leurs — la fiche s'intitule Ingrédients.

5.2Photos

Les photos sont fournies par l'auteur et rangées sous le dossier de l'entrée. Elles portent le nom de la forme qu'elles montrent, jamais un numéro: /ingredients/safran/safran-fils.jpg, safran-poudre.jpg, safran-fleur.jpg. Le format, jpg ou png, suit la photo. Une fiche réclame ses images par forme, ce qui laisse l'ordre d'affichage libre et supprime toute renumérotation.

5.3Gabarit d’une fiche

Une fiche se compose des blocs suivants, dans cet ordre. Ce qui varie d'un sujet à l'autre est l'étendue des formes et de l'usage; le reste se remplit toujours.

Bloc Contenu
Identité Nom latin quand il existe, et une ligne qui dit le caractère du sujet.
Ce que c’est Origine, fabrication ou récolte, goût, ce qui explique le prix ou la rareté.
Formes Une entrée par forme du commerce, avec ce qu'on juge à l'œil et ce qui s'y falsifie.
À l’usage Dosage, préparation, conservation — ce qui change le résultat en cuisine.
Où j’achète Adresses et marques, précédées de la note de non-rémunération.

5.4Sosie dangereux

Quand un sujet a un sosie dangereux, la fiche le nomme, dit le danger et ferme la cueillette. Elle ne donne pas de critères de distinction sur le terrain: les fournir reviendrait à suggérer qu'un lecteur sans formation peut trancher sur pied. La formule type: ne pas confondre avec tel végétal, vénéneux, sans antidote; le produit de cuisine s'achète, il ne se ramasse pas.

5.5Sources

Chaque fiche se termine par ses sources: marques, enseignes ou commerces où le sujet s'achète. Aucune n'est rémunérée et aucune n'est sollicitée. La rubrique existe pour éviter la déception d'un lecteur qui suivrait une recette avec un produit qui n'en a que le nom.

La note de non-rémunération ouvre le bloc des sources sur chaque page, et non une seule fois ailleurs sur le site: c'est la page qu'on lit, pas le site. Une mention de ce qu'il vaut mieux éviter, et pourquoi, a sa place au même endroit.

6Extension recettes

L'extension recettes rassemble les fichiers projet qui pilotent le flux des recettes. Leur présence se déclare dans la rubrique cooking de Cooking — Settings.js: un drapeau à false signifie que le fichier n'existe pas encore et que le générateur saute son chargement.

Fichier Rôle Drapeau
Cooking — Documentation — Pipeline Recipes Spec du rendu recettes : source, HTML A5, PDF A4 imposé recipesPipeline
Cooking — Recipes — Schema Contrat normatif d’une recette : champs, types, validation recipeSchema
Cooking — Recipes — Design Tokens Paramètres visuels isolés : couleurs, polices, marges, ratio photo designTokens
Cooking — Recipes — Photo Style Spec rédactionnelle de la prise de vue et de la retouche photoStyle

L'ordre de création verrouille d'abord les contrats normatifs — pipeline et schéma — avant les paramètres visuels. Les conventions de photographie des fiches rejoignent Photo Style, pour que fiches et recettes partagent une même charte.

7Page d’accueil hors Kit

La page d'accueil du sous-site est un modèle propre au projet, hors des formes du Kit: le Registry porte allowNonKitTemplates à true — Étendre le Kit §9. Le droit porte sur la forme, jamais sur les règles: fichier source d'abord, Registry qui fait foi, horodatage frais, générateur réécrit à neuf, chaîne de validation avant toute livraison.

La page mène à chacun des flux — documentation, fiches, recettes. Ce que le Kit cesse de garantir en retour: le rendu produit par ce modèle, et sa tenue lors d'une évolution de feuille de style. La séance d'absorption d'une mise à jour est le moment où cet écart se traite.

Direction retenue: fond ivoire, nom du site en display serif occupant la page, texte courant en Verdana comme les documents, filet d'accent le long du texte d'introduction. Les entrées — recettes, ingrédients, documentation — sont des cartes de même poids, aucune ne passe devant les autres. Les rubriques de documentation restent derrière leur entrée plutôt que remontées en page d'accueil. La page n'est pas signée.

La police de titrage retenue est Fraunces. Aucun autre sous-site de la famille ne charge de police au chargement: le fichier woff2 et sa licence vivent dans les assets du sous-site, servis depuis cooking.sliver.lu, et la déclaration porte un repli Georgia puis serif. Le texte courant reste en Verdana, comme les documents.

8Réglages propres au projet

Cooking — Settings.js porte ce qui appartient au projet et que le Registry ne peut pas accueillir. Le Kit ne le spécifie ni ne le lit. Chaque rubrique y est documentée ci-dessous: une clé non documentée est une clé perdue à la séance suivante.

Clé Effet à true Effet à false
cooking.recipesPipeline Le générateur charge la spec du rendu recettes Le fichier est absent, le chargement est sauté
cooking.recipeSchema Le générateur charge le contrat de recette Le fichier est absent, le chargement est sauté
cooking.designTokens Le générateur charge les paramètres visuels Le fichier est absent, le chargement est sauté
cooking.photoStyle Le générateur charge la spec de prise de vue Le fichier est absent, le chargement est sauté
fiches[].chemin Segment d’URL de la rubrique, sans accent Rubrique non publiée
fiches[].module Module de données lu pour la rubrique La passe échoue en nommant la rubrique
fiches[].titre Intitulé affiché, accentué La passe échoue en nommant la rubrique
fiches[].accroche Ligne rendue en tête de l’index de rubrique L’index se rend sans accroche

Un générateur qui lit un réglage échoue en le nommant s'il manque ou n'a pas le type attendu. Aucun défaut silencieux: une valeur absente arrête la passe plutôt que de produire un document faux sans le dire. Les valeurs en vigueur se lisent dans Cooking — Settings.js, rubrique cooking.