• v0.1.0 f611e81c7c

    Ghost 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 .gram files 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 .gram files.

    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 serve
    

    Using 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