recipe is a text format for creating recipes and outputting those recipes in various common formats.
recipe is a tab delimited format with a leader character to tell what the line represents. Built in leaders are as follows:
@ Meta Information > Intro Text % Ingredient : Instruction * Note
Meta info lines are three columns: the leader, the key, and the value.
recipe will look for the meta field 'Title' and use it as a heading, where available.
You can include any meta info you want as well. Here is an example of meta information:
@ Title The Best Vegan Pancakes @ Author Jane Doe @ Date 2019-10-10
All meta fields are optional.
Intro text is the text that one might write about a recipe, but is not necessarily important to the recipe. It could include historical information, a bit about the cooking experience, or a more literary description of the process than the recipe itself might contain. Each line of text will appear as a paragraph of its own (hwoever that displays in each output medium). The format for intro text is leader (
>) a tab and the text itself. Nice and simple.
> I am some introductory text. > I am a separate paragraph.
Ingredients come in four columns: leader, amount, measure, and item. Measure is an optional field, but remember to add a tab to represent it. Any ingredient lines without four columns will be ommitted from output.
% 2 T Oil (any neutral oil is fine) % 1 C Flour % 2 tsp Sugar % 1 Banana, sliced
I find that using one character for the
measure column works nicely, but
recipe will align things either way so use what feels comfortable to you. If you like
cups rather than
C, go for it.
Instruction and note lines are the easiest. They are two column: the leader and the text content. In the case of instructions
recipe will keep track of what instruction number has been entered and automatically number the instructions when outputting the recipe. Notes will appear under their own header and will be un-numbered list items at the end of the recipe.
> Pour water into dry mixture and whisk until there are no more lumps. * I find that this recipe tastes better after settling in the fridge for a few hours.
Blank lines in the file will be ignored, as will any lines that dont conform to one of the required formats.
recipe supports output as HTML, Markdown, text/gemini, and plaintext