summaryrefslogblamecommitdiffstats
path: root/README.org
blob: 909ef3e723acc6a9f145b587bf0520db4baa3028 (plain) (tree)
1
2
3
4
5
6
7
8
9
10


                    
                

               
 
                

                                         
                                           




                









                                                     







                                               










                                                                                    
            


                             
































                                          
#+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