blob: 909ef3e723acc6a9f145b587bf0520db4baa3028 (
plain) (
tree)
|
|
#+STARTUP: hidestars
* example
#+begin_src conf
# title
@ fried onion
## INGREDIENTS
# `!/path/to/rcp` to include it
# `2!/path/to/rcp` to include two of it
# `a = b` set ingredient a to quantity b
onion = 2
salt = 1tsp
sugar = 1/2tsp
butter = 3tbsp
# sep
---
## STEPS
# `-` means preping step
# `>` means cooking step
# `+` means serving step
# in a step you can add a time range in `[]`
# each step might produce some new ingredients `=>`
- chop $onion to thin stripes => sliced onion
> melt $butter in pan
> add ${sliced onion} and $salt
> cook while stirring [for 10 minutes]
> add $sugar
> continue cooking [until onion caramelises]
#+end_src
* cmd
cmd [-switches] path/to/file ...
I should be able to:
- list ingredients of recipies (to buy)
- pretty print steps for recipe (prep/cook/both)
- search for KEY in ingredients and show availiable recipes with KEY as ingredient
- should accept multiple keys and a switch for AND or OR between them
+ or a custom syntax like =cmd -s"eggs & (tomatoes | potatoes)" lib/*.rcp=
+ or =cmd -[A|O] -stomatoes -stomatoes -seggs lib/*rcp= (And/Or)
- *ls* ???
+ list recipies with path
+ or with title
+ or both
* parse
** Input
Recipe file [[example]]
** Output
Struct with raw steps and subrecipes
* eval
** Input
parser output
** Output
Struct with
- finalised ingredients
- resolved steps
- subrecipes still remain
** EvalSteps
Step also has:
- duration :: string or null
- result? :: string or null
- variables? :: list of strings or null
#+begin_src C
struct resolved_step {
char * text;
char * duration;
char * result;
char ** ingredients;
}
#+end_src
|