Créer une interface (UI) personnalisée à partir du JSON
Si vous construisez une application web moderne (avec React, Vue, Svelte ou Next.js, par exemple), vous avez tout intérêt à consommer directement le JSON compilé par Gram et à le mapper sur vos propres composants d’interface utilisateur (UI).
Bien que le parser produise d’abord un Arbre Syntaxique Abstrait (AST) brut, les packages @gram-lang/kitchen et @gram-lang/analyzer transforment cet AST en un JSON hyper-structuré, prêt à l’emploi. Ce guide vous montre comment l’extraire programmatiquement et comment il est architecturé, afin que vous puissiez l’exploiter librement.
-
Récupérer le JSON
Section intitulée « Récupérer le JSON »Gram est conçu pour s’exécuter n’importe où (Node.js, environnements Edge ou directement dans le navigateur). Pour récupérer le JSON intégralement enrichi d’une recette, vous devez combiner ses trois packages fondamentaux :
-
Comprendre la Structure du JSON
Section intitulée « Comprendre la Structure du JSON »L’objet JSON retourné encapsule toute la recette de manière structurée. C’est votre matière première pour bâtir votre UI.
Voici les champs les plus importants dans l’objet racine :
title(string) : Le nom de la recette (issu du# Titre).meta(object) : Paires clé-valeur pour les métadonnées (ex :author,yield).shopping_list(array) : Une liste agrégée de tous les ingrédients de toutes les sections.sections(array) : Les instructions elles-mêmes, découpées par section de recette.
À l’intérieur d’une Section
Section intitulée « À l’intérieur d’une Section »Chaque
sectiondans le tableausectionspossède ses propresingredients,cookware(matériel), etsteps(étapes). -
Logique de Rendu
Section intitulée « Logique de Rendu »Puisque le JSON de Gram est hautement prévisible, générer l’UI n’est souvent qu’une affaire de simples boucles ou de
.map()dans votre framework front-end.Exemple : Rendu des Étapes en React
Section intitulée « Exemple : Rendu des Étapes en React »Voici une implémentation théorique illustrant comment itérer sur le tableau
stepsavec React :En mappant intelligemment la propriété
typesur vos propres composants, vous gardez un contrôle total sur le design, l’interactivité et l’accessibilité de votre application !