Markdown Recipe Syntax Reference¶
Recipe Grid extends Markdown syntax to provide a convenient way of describing recipes within a document. The CommonMark Markdown standard is supported with a small number of extensions described below.
Embedded recipes¶
Recipes descriptions should be embedded either in indented code blocks or
fenced codeblocks with recipe
given as the ‘info string’. For example:
A Sample Markdown File
======================
The following will be compiled as a recipe:
fry(
1 egg,
1tsp oil,
)
So will:
```recipe
fry(
1 egg,
1tsp oil,
)
```
To create an ordinary code block, use a fenced block without recipe
as
the info string.
Recipe descriptions may be split between several blocks with later blocks being able to reference sub recipes in earlier blocks. For example:
Pizza
=====
First make pizza sauce:
pizza sauce = boil down(tomatos, herbs)
Next put it on a pizza:
top(1 pizza base, pizza sauce, cheese)
If for some reason you wish to start a new recipe part way through your
document (and prevent sub recipes being inadvertently redefined), start this
new recipe with a fenced code block with new-recipe
as the info string.
Scaleable values¶
In addition to embedding recipes within a Markdown document, it is also
possible to mark up numbers within the document which will be scaled along with
ingredient quantities when the recipe is scaled. This is achieved by enclosing
number-containing text within curly braces ({
and }
), as is supported
by the recipe description language. For example:
Burgers for 4
=============
Makes {4} delicious burgers, but can also be used to make {16} meat balls.
...
In the example above, the ‘4’ and ‘16’ in the opening paragraph will be scaled with the recipe. For example, when the recipe is scaled to 50%, the paragraph would be rewritten to contain ‘2 delicious burgers’ and ‘8 meat balls’.
Numbers may be integers (e.g. 123
), decimals (e.g. 1.23
) or fractions
(e.g. 4/3
or 1 1/3
). Other text within the curly braces will remain
unchanged.
To write a literal curly brace, use \{
for an opening brace and \}
for
a closing brace.
Titles¶
If a Markdown document starts with a H1-level heading containing no special formatting, the title of the document will be inferred from this.
When this heading ends with one of the following forms (where <N>
is the
number of servings):
to serve <N>
to make <N>
serves <N>
for <N>
makes <N>
serving <N>
The title will be inferred to be whatever came before this and the recipe will be assumed to be scaled to produce the specified number of servings.