-
GRAM Alpha - Initial Release Pre-release
released this
2025-12-28 21:28:39 +01:00 | 609 commits to main since this release🎉 Gram Alpha - Initial Release
GRAM (General Recipe Abstract Markup) is a strictly typed, data-first recipe markup language designed for developers.
This initial Alpha release introduces the language specification, the reference parser, and the essential tools to begin treating recipes as code.
Key Features
The GRAM Language
GRAM captures the logic of cooking, not just the text:
- Data vs. Narrative Separation: Clear distinction between ingredients, cookware, and instructions.
- Advanced Quantity Management:
- Mise en place: Automatic generation of aggregated Shopping Lists vs. step-by-step Section Lists.
- Relative Quantities: Native support for percentages (e.g., Baker's Math).
- References & Composites: Reuse prepared ingredients and smart aggregation (e.g., "Lemon Zest" + "Lemon Juice" = "1 Lemon" in the shopping list).
The Ecosystem
This release includes the core project components:
gram-parser: The reference parser (built on OhmJS) converting.gramfiles into a strict AST and rich JSON structure.- Playground: A simple web-based IDE to write, visualize, and debug your recipes in real-time (includes JSON view, AST Tree, and Markdown Render).
- VSCode Extension: Syntax highlighting support for
.gramfiles.
Installation & Usage
Quick Start
Clone the repo and run the playground locally:
git clone https://github.com/abiwab/gram.git cd gram-language/playground npm install npx serveUsing the Parser
const { parse } = require('gram-parser'); const result = parse(myRecipeString);Documentation
Comprehensive technical documentation is available in the
docs/folder, including:License
This project is distributed under the GPL-3.0 license.
Note
: This is an Alpha version. The syntax and internal logic are subject to change. Feedback and contributions are highly welcome!
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads