1.5 KiB

Recipes for Engineers

Store recipes in a nerdy JSON tree format and use that to generate Cooking for Engineers-style tabular recipe cards in HTML.

Right now this project is just a set of scripts.

Requirements

These scripts require the anytree Python library.

create_recipe_json.py

This is a fairly naive script that walks you through the process of turning a recipe into a tree structure. It has you list out ingredients, and then add tasks to perform on those ingredients. You end up with a tree that is something like this:

shake and grill for 20 more mins
+-- grill for 20 mins
    +-- wrap in foil
        +-- season to taste
            |-- salt and pepper
            |-- dice
            |   |-- rosemary
            |   |-- thyme
            |   +-- basil
            +-- lightly coat
                |-- olive oil
                +-- chop into quarters
                    +-- red potatoes

Leaves are raw ingredients, other nodes are tasks. The tree is output to a JSON file.

recipe_json_to_html.py

This script takes that JSON file and does a recursive depth-first search to render a webpage with an HTML-table-based recipe card.

Known Issues

  • A single node cannot have multiple tasks done on it (nerdy reason: because a node cannot have two parents). So this cannot represent, for example, mixing cinnamon and sugar, then splitting that mixture up and doing separate subsequent operations with the two batches.