110 lines
2.2 KiB
Markdown
110 lines
2.2 KiB
Markdown
|
# MEALS
|
||
|
|
||
|
This is my own personal recipe database and meal planner
|
||
|
|
||
|
STATUS: janky, proof of concept, unsafe, used in production
|
||
|
|
||
|
## ABOUT
|
||
|
|
||
|
recipes.rec contains two types: meals and recipes
|
||
|
|
||
|
a meal may contain many recipe components.
|
||
|
|
||
|
```
|
||
|
%rec: meal
|
||
|
%doc: a meal can consist of several recipes
|
||
|
%key: name
|
||
|
%type: recipe rec recipe
|
||
|
%type: name line
|
||
|
%mandatory: name recipe
|
||
|
%allowed: name recipe
|
||
|
```
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
name: Lemon Couscous w Salmon and roast broccoli
|
||
|
recipe: lemon couscous
|
||
|
recipe: frozen salmon patties
|
||
|
recipe: roast brocolli
|
||
|
```
|
||
|
|
||
|
|
||
|
and a recipe comprises several ingredients and steps.
|
||
|
|
||
|
```
|
||
|
%rec: recipe
|
||
|
%doc: a recipe for one thing
|
||
|
%key: name
|
||
|
%type: name,ingredient,step line
|
||
|
%mandatory: name ingredient step
|
||
|
%allowed: name ingredient step
|
||
|
```
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
name: lemon couscous
|
||
|
ingredient: couscous
|
||
|
ingredient: veggie stock
|
||
|
ingredient: lemon juice
|
||
|
ingredient: garlic
|
||
|
step: cook the couscous in the stock
|
||
|
step: drain
|
||
|
step: add lemon and garlic
|
||
|
```
|
||
|
|
||
|
menu.rec
|
||
|
contains meals for breakfast, lunch, and dinner for each day.
|
||
|
|
||
|
```
|
||
|
%rec: menu
|
||
|
%doc: a menu of meals
|
||
|
%type: breakfast rec meal
|
||
|
%type: lunch rec meal
|
||
|
%type: dinner rec meal
|
||
|
%type: day line
|
||
|
%type: date date
|
||
|
%allowed: day date breakfast lunch dinner
|
||
|
%mandatory: day date breakfast lunch dinner
|
||
|
```
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
day: Wednesday
|
||
|
date: 2024-02-07
|
||
|
breakfast: eggs n peanutbutter
|
||
|
lunch: chipotle bowl
|
||
|
dinner: Lemon Couscous w Salmon and roast broccoli
|
||
|
```
|
||
|
|
||
|
the justfile contains scrips for creating a `.rem` file for remind(1).
|
||
|
(from there you can use the `rem2ics` utility to create a calendar file,
|
||
|
or `rem2ps` to create a pdf.)
|
||
|
it also can create a simple pdf menu via groff and tbl.
|
||
|
finally it print a list of ingredients needed for next week's menu
|
||
|
so you can plan your shoping.
|
||
|
|
||
|
## YOU WILL NEED
|
||
|
|
||
|
- recutils
|
||
|
- groff
|
||
|
- zx
|
||
|
|
||
|
## GETTING STARTED
|
||
|
|
||
|
- add recipes and meals to db/recipes.rec
|
||
|
- plan your weekly menu in db/menu.rec
|
||
|
- `just menu` to create `.rem` and `.pdf` menus for the week
|
||
|
- `just shopping` to print a shopping list
|
||
|
|
||
|
## TODO
|
||
|
|
||
|
This might eventually become part of the backend for supervegan.neocities.org
|
||
|
|
||
|
- [ ] remove zx dep (i thought it would make dates easier in the beginning)
|
||
|
- [ ] parameterize the date for which the week should be calculated.
|
||
|
- [ ] quantity for recipe ingredient?
|
||
|
- [ ] yield for recipe?
|