meals/README.md

110 lines
2.2 KiB
Markdown
Raw Normal View History

2024-02-02 20:39:32 +00:00
# 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?