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.
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.