-mkdir recipes
.venv/bin/python sous.py
+helper : .venv/touchfile
+ .venv/bin/python helper.py
+
.venv/touchfile : requirements.txt
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
--- /dev/null
+HELP = """
+(c) Will Greenwood 2025
+
+For converting over bread recipies with different and volumetric units.
+
+You are asked to give the ingredients of the recipe line by line, and from this
+the bakers percentage will be calculated. There are some additional commands:
+
+ "reset" - clears the history
+ "generate" - generates the toml code for the recipe page
+ "help" - prints this help text
+
+The syntax for an ingredient is the following:
+
+ <number> <unit> of <ingredient> <optional: "base">
+
+- The number may be a decimal
+- The unit should always be plural if not in shorthand ("pounds" not "pound")
+- the ingredient should be formatted as in the toml, with no spaces
+- "base" includes the ingredient as the 100% that makes up the flour usually
+
+It can the following units:
+
+ g, grams
+ kg, kilograms
+ l, litres
+ lb, pounds
+ oz, ounces
+ tsp, teaspoons
+ tbsp, tablespoons
+ cups
+ pints
+ gallons
+ quarts
+ large-eggs
+ eggs, medium-eggs
+ small-eggs
+
+And the following materials
+
+ wholemeal-flour
+ white-flour
+ rye-flour
+ water
+ yeast
+ milk
+ sugar
+ butter
+ salt
+ yougurt
+ egg
+"""
+
+# CONSTANTS
+
+VOLUMETRIC = { # this converts the units into ml of water
+ "tsp": 4.929,
+ "teaspoons": 4.929,
+ "tbsp": 14.79,
+ "tablespoons": 14.79,
+ "cups": 236.6,
+ "pints": 473.2,
+ "gallons": 3785,
+ "quarts": 946.4
+ }
+
+WEIGHTED = {
+ "g": 1,
+ "grams": 1,
+ "kg": 1000,
+ "kilograms": 1000,
+ "l": 1000,
+ "litres": 1000,
+ "lb": 453.6,
+ "pounds": 453.6,
+ "oz": 28.35,
+ "ounces": 28.35,
+ "large-eggs": 68,
+ "medium-eggs": 58,
+ "eggs": 58,
+ "small-eggs": 50
+ }
+
+INGREDIENTS = { # this converts ml to g (fallback is 1:1)
+ "water": 1,
+ "milk": 1.035,
+ "wholemeal-flour": 0.478,
+ "flour": 0.55,
+ "white-flour": 0.55,
+ "rye-flour": 0.478,
+ "egg": 1.04,
+ "yeast": 0.95,
+ "yougurt": 1.06,
+ "salt": 1.201,
+ "potato": 0.769,
+ "butter": 0.959,
+ "olive-oil": 0.92,
+ "oil": 0.92,
+ "sugar": 0.849,
+ "brown-sugar": 0.823,
+ "syrup": 1.43,
+ "honey": 1.42,
+ "seeds": 0.62
+ }
+
+ingredients = []
+base_ingredients = []
+
+while True:
+ try:
+ line = input("ingredient > ")
+ except KeyboardInterrupt:
+ print("\nHappy baking!")
+ quit()
+
+ # if the user has inputted a commands
+ if len(line.split()) == 1:
+ if line == "reset": # reset function
+ ingredients = []
+ base_ingredients = []
+ continue
+
+ elif line == "help": # reset function
+ print(HELP)
+ continue
+
+ elif line == "generate": # generate the recipe
+ if len(base_ingredients) == 0:
+ print(f"Cannot generate, no base ingredients")
+ continue
+
+ base_total = sum([i["units"] for i in base_ingredients])
+
+ all_ingredients = base_ingredients + ingredients
+ for i in all_ingredients:
+ i["units"] = i["units"] * (100/base_total)
+ if i["units"] > 20:
+ i["units"] = round(i["units"])
+ else:
+ i["units"] = round(i["units"], 2)
+
+ all_ingredients.sort(key=lambda i: i["units"], reverse=True)
+ for i in all_ingredients:
+ print(f"{i['name']} = {i['units']}")
+ continue
+
+ else: # if the command is not valid...
+ print(f"Incorrect syntax")
+ continue
+
+ # if the user has entered a non-base ingredient:
+ if len(line.split()) == 4:
+ qty, measure, _, ingredient = line.split()
+ base = False
+
+ # if the user has entered a base ingredient:
+ elif len(line.split()) == 5:
+ qty, measure, _, ingredient, base = line.split()
+ if base != "base": # check that this is not a mistake
+ print(f"Incorrect syntax '{base}'")
+ continue
+ base = True
+
+ else: # if the user has made a mistake with the entry
+ print("Incorrect syntax")
+ continue
+
+ if measure not in WEIGHTED and measure not in VOLUMETRIC:
+ # if the unit has been misspelled
+ print(f"No record for '{measure}' as a unit")
+ continue
+
+ # calculate the g of water in this case and multiply by the density
+ if measure in WEIGHTED:
+ g = float(qty) * WEIGHTED[measure]
+
+ if measure in VOLUMETRIC:
+ g = float(qty) * VOLUMETRIC[measure]
+ if ingredient in INGREDIENTS:
+ g *= INGREDIENTS[ingredient]
+ else: # if the ingredient is not recorded
+ print(f"'{ingredient}' not found, using 1 g <-> 1 ml")
+
+ # add to the list
+ record = {"units": g, "name": ingredient}
+ if base:
+ base_ingredients.append(record)
+ else:
+ ingredients.append(record)
### All recipes
+=> recipes/calvel-imitation-panettone.gmi Panettone Imitation (Imitation Panettone from 'Taste of Bread'.)
=> recipes/calvel-pain-au-levain.gmi Pain Au Levain (Pain Au Levain recipe from 'Taste of Bread'.)
=> recipes/kaiser-rolls-vegan.gmi Kaiser rolls (vegan) (Under development.)
-=> recipes/levain-de-pate-wholemeal.gmi Levain De Pâte (wholemeal) (Levain De Pâte ajusted for cheap chapatti flour. Under development.)
=> recipes/kaiser-rolls.gmi Kaiser rolls (Chainbaker kaiser rolls.)
-=> recipes/levain-de-pate.gmi Levain De Pâte (Levain De Pate recipe from 'Taste of Bread'.)
=> recipes/polish-white-v4.gmi White yeasted with polish pre-ferment v4 (Less acidic flavor than the v4 sourdough.)
=> recipes/sourdough-white-v4.gmi Sourdough white v4 (Sourdough sandwich loaf, similar to french bread.)
-=> recipes/challah.gmi Challah (Jewish sweet-bread.)
-=> recipes/challah-polish.gmi Challah with pre-ferment (Jewish sweet-bread with polish.)
+=> recipes/calvel-levain-de-pate.gmi Levain De Pâte (Levain De Pate recipe from 'Taste of Bread'.)
+=> recipes/challah.gmi Challah (Polish sweet-bread.)
+=> recipes/challah-polish.gmi Challah with pre-ferment (Polish sweet-bread with polish.)
=> recipes/calvel-polish.gmi Polish pre-ferment (Recommended polish recipe from 'Taste of Bread'.)
=> recipes/seeded-rye.gmi Seeded Sourdough Rye (Sourdough rye with seeds. Can be used as a guide for other seeded breads.)
=> recipes/straight-white-v4.gmi Straight white yeasted v4 (Regular white yeasted bread.)
-=> recipes/panettone-imitation.gmi Panettone Imitation (Imitation Panettone from 'Taste of Bread'.)
=> recipes/panettone-v3.gmi Panettone v3 (Panettone.)
=> recipes/ciabatta-polish.gmi Ciabatta with pre-ferment (Light Italian bread with polish.)
+=> recipes/floris-polish-rye.gmi Polish rye bread (Polish rye bread from Maria Floris' 'Bakery, cakes and simple confectionery')
+=> recipes/calvel-levain-de-pate-wholemeal.gmi Levain De Pâte (wholemeal) (Levain De Pâte ajusted for cheap chapatti flour. Under development.)
=> recipes/ciabatta.gmi Ciabatta (Light Italian bread.)
### Keywords
-Sourdough
-
-=> recipes/calvel-pain-au-levain.gmi Pain Au Levain (Pain Au Levain recipe from 'Taste of Bread'.)
-=> recipes/levain-de-pate-wholemeal.gmi Levain De Pâte (wholemeal) (Levain De Pâte ajusted for cheap chapatti flour. Under development.)
-=> recipes/levain-de-pate.gmi Levain De Pâte (Levain De Pate recipe from 'Taste of Bread'.)
-=> recipes/sourdough-white-v4.gmi Sourdough white v4 (Sourdough sandwich loaf, similar to french bread.)
-=> recipes/seeded-rye.gmi Seeded Sourdough Rye (Sourdough rye with seeds. Can be used as a guide for other seeded breads.)
-=> recipes/panettone-imitation.gmi Panettone Imitation (Imitation Panettone from 'Taste of Bread'.)
-=> recipes/panettone-v3.gmi Panettone v3 (Panettone.)
-
White
+=> recipes/calvel-imitation-panettone.gmi Panettone Imitation (Imitation Panettone from 'Taste of Bread'.)
=> recipes/calvel-pain-au-levain.gmi Pain Au Levain (Pain Au Levain recipe from 'Taste of Bread'.)
=> recipes/kaiser-rolls-vegan.gmi Kaiser rolls (vegan) (Under development.)
=> recipes/kaiser-rolls.gmi Kaiser rolls (Chainbaker kaiser rolls.)
-=> recipes/levain-de-pate.gmi Levain De Pâte (Levain De Pate recipe from 'Taste of Bread'.)
=> recipes/polish-white-v4.gmi White yeasted with polish pre-ferment v4 (Less acidic flavor than the v4 sourdough.)
=> recipes/sourdough-white-v4.gmi Sourdough white v4 (Sourdough sandwich loaf, similar to french bread.)
-=> recipes/challah.gmi Challah (Jewish sweet-bread.)
-=> recipes/challah-polish.gmi Challah with pre-ferment (Jewish sweet-bread with polish.)
+=> recipes/calvel-levain-de-pate.gmi Levain De Pâte (Levain De Pate recipe from 'Taste of Bread'.)
+=> recipes/challah.gmi Challah (Polish sweet-bread.)
+=> recipes/challah-polish.gmi Challah with pre-ferment (Polish sweet-bread with polish.)
=> recipes/straight-white-v4.gmi Straight white yeasted v4 (Regular white yeasted bread.)
-=> recipes/panettone-imitation.gmi Panettone Imitation (Imitation Panettone from 'Taste of Bread'.)
=> recipes/panettone-v3.gmi Panettone v3 (Panettone.)
=> recipes/ciabatta-polish.gmi Ciabatta with pre-ferment (Light Italian bread with polish.)
=> recipes/ciabatta.gmi Ciabatta (Light Italian bread.)
+Sourdough
+
+=> recipes/calvel-imitation-panettone.gmi Panettone Imitation (Imitation Panettone from 'Taste of Bread'.)
+=> recipes/calvel-pain-au-levain.gmi Pain Au Levain (Pain Au Levain recipe from 'Taste of Bread'.)
+=> recipes/sourdough-white-v4.gmi Sourdough white v4 (Sourdough sandwich loaf, similar to french bread.)
+=> recipes/calvel-levain-de-pate.gmi Levain De Pâte (Levain De Pate recipe from 'Taste of Bread'.)
+=> recipes/seeded-rye.gmi Seeded Sourdough Rye (Sourdough rye with seeds. Can be used as a guide for other seeded breads.)
+=> recipes/panettone-v3.gmi Panettone v3 (Panettone.)
+=> recipes/floris-polish-rye.gmi Polish rye bread (Polish rye bread from Maria Floris' 'Bakery, cakes and simple confectionery')
+=> recipes/calvel-levain-de-pate-wholemeal.gmi Levain De Pâte (wholemeal) (Levain De Pâte ajusted for cheap chapatti flour. Under development.)
+
Vegan
=> recipes/calvel-pain-au-levain.gmi Pain Au Levain (Pain Au Levain recipe from 'Taste of Bread'.)
=> recipes/kaiser-rolls-vegan.gmi Kaiser rolls (vegan) (Under development.)
-=> recipes/levain-de-pate-wholemeal.gmi Levain De Pâte (wholemeal) (Levain De Pâte ajusted for cheap chapatti flour. Under development.)
-=> recipes/levain-de-pate.gmi Levain De Pâte (Levain De Pate recipe from 'Taste of Bread'.)
=> recipes/polish-white-v4.gmi White yeasted with polish pre-ferment v4 (Less acidic flavor than the v4 sourdough.)
=> recipes/sourdough-white-v4.gmi Sourdough white v4 (Sourdough sandwich loaf, similar to french bread.)
+=> recipes/calvel-levain-de-pate.gmi Levain De Pâte (Levain De Pate recipe from 'Taste of Bread'.)
=> recipes/straight-white-v4.gmi Straight white yeasted v4 (Regular white yeasted bread.)
=> recipes/ciabatta-polish.gmi Ciabatta with pre-ferment (Light Italian bread with polish.)
+=> recipes/calvel-levain-de-pate-wholemeal.gmi Levain De Pâte (wholemeal) (Levain De Pâte ajusted for cheap chapatti flour. Under development.)
=> recipes/ciabatta.gmi Ciabatta (Light Italian bread.)
Yeasted
=> recipes/kaiser-rolls-vegan.gmi Kaiser rolls (vegan) (Under development.)
-=> recipes/levain-de-pate-wholemeal.gmi Levain De Pâte (wholemeal) (Levain De Pâte ajusted for cheap chapatti flour. Under development.)
=> recipes/kaiser-rolls.gmi Kaiser rolls (Chainbaker kaiser rolls.)
-=> recipes/levain-de-pate.gmi Levain De Pâte (Levain De Pate recipe from 'Taste of Bread'.)
-=> recipes/challah.gmi Challah (Jewish sweet-bread.)
-=> recipes/challah-polish.gmi Challah with pre-ferment (Jewish sweet-bread with polish.)
+=> recipes/calvel-levain-de-pate.gmi Levain De Pâte (Levain De Pate recipe from 'Taste of Bread'.)
+=> recipes/challah.gmi Challah (Polish sweet-bread.)
+=> recipes/challah-polish.gmi Challah with pre-ferment (Polish sweet-bread with polish.)
=> recipes/seeded-rye.gmi Seeded Sourdough Rye (Sourdough rye with seeds. Can be used as a guide for other seeded breads.)
=> recipes/straight-white-v4.gmi Straight white yeasted v4 (Regular white yeasted bread.)
=> recipes/ciabatta-polish.gmi Ciabatta with pre-ferment (Light Italian bread with polish.)
+=> recipes/floris-polish-rye.gmi Polish rye bread (Polish rye bread from Maria Floris' 'Bakery, cakes and simple confectionery')
+=> recipes/calvel-levain-de-pate-wholemeal.gmi Levain De Pâte (wholemeal) (Levain De Pâte ajusted for cheap chapatti flour. Under development.)
=> recipes/ciabatta.gmi Ciabatta (Light Italian bread.)
Brioche
=> recipes/kaiser-rolls-vegan.gmi Kaiser rolls (vegan) (Under development.)
=> recipes/kaiser-rolls.gmi Kaiser rolls (Chainbaker kaiser rolls.)
-Wholemeal
-
-=> recipes/levain-de-pate-wholemeal.gmi Levain De Pâte (wholemeal) (Levain De Pâte ajusted for cheap chapatti flour. Under development.)
-
Pre-Ferment
=> recipes/polish-white-v4.gmi White yeasted with polish pre-ferment v4 (Less acidic flavor than the v4 sourdough.)
-=> recipes/challah-polish.gmi Challah with pre-ferment (Jewish sweet-bread with polish.)
+=> recipes/challah-polish.gmi Challah with pre-ferment (Polish sweet-bread with polish.)
=> recipes/calvel-polish.gmi Polish pre-ferment (Recommended polish recipe from 'Taste of Bread'.)
=> recipes/ciabatta-polish.gmi Ciabatta with pre-ferment (Light Italian bread with polish.)
Rye
=> recipes/seeded-rye.gmi Seeded Sourdough Rye (Sourdough rye with seeds. Can be used as a guide for other seeded breads.)
+=> recipes/floris-polish-rye.gmi Polish rye bread (Polish rye bread from Maria Floris' 'Bakery, cakes and simple confectionery')
+
+Floris
+
+=> recipes/floris-polish-rye.gmi Polish rye bread (Polish rye bread from Maria Floris' 'Bakery, cakes and simple confectionery')
+
+Wholemeal
+
+=> recipes/calvel-levain-de-pate-wholemeal.gmi Levain De Pâte (wholemeal) (Levain De Pâte ajusted for cheap chapatti flour. Under development.)
-=> https://git.ozva.co.uk/?p=bread;a=commit;h=HEAD Last compiled at 2025-08-30 17:28:14.092317
\ No newline at end of file
+=> https://git.ozva.co.uk/?p=bread;a=commit;h=HEAD Last compiled at 2026-01-17 22:37:14.182681
\ No newline at end of file
<h3>All recipes</h3>
<ul>
+ <li><a href="recipes/calvel-imitation-panettone.html">Panettone Imitation</a> <em>Imitation Panettone from 'Taste of Bread'.</em></li>
+
<li><a href="recipes/calvel-pain-au-levain.html">Pain Au Levain</a> <em>Pain Au Levain recipe from 'Taste of Bread'.</em></li>
<li><a href="recipes/kaiser-rolls-vegan.html">Kaiser rolls (vegan)</a> <em>Under development.</em></li>
- <li><a href="recipes/levain-de-pate-wholemeal.html">Levain De Pâte (wholemeal)</a> <em>Levain De Pâte ajusted for cheap chapatti flour. Under development.</em></li>
-
<li><a href="recipes/kaiser-rolls.html">Kaiser rolls</a> <em>Chainbaker kaiser rolls.</em></li>
- <li><a href="recipes/levain-de-pate.html">Levain De Pâte</a> <em>Levain De Pate recipe from 'Taste of Bread'.</em></li>
-
<li><a href="recipes/polish-white-v4.html">White yeasted with polish pre-ferment v4</a> <em>Less acidic flavor than the v4 sourdough.</em></li>
<li><a href="recipes/sourdough-white-v4.html">Sourdough white v4</a> <em>Sourdough sandwich loaf, similar to french bread.</em></li>
- <li><a href="recipes/challah.html">Challah</a> <em>Jewish sweet-bread.</em></li>
+ <li><a href="recipes/calvel-levain-de-pate.html">Levain De Pâte</a> <em>Levain De Pate recipe from 'Taste of Bread'.</em></li>
+
+ <li><a href="recipes/challah.html">Challah</a> <em>Polish sweet-bread.</em></li>
- <li><a href="recipes/challah-polish.html">Challah with pre-ferment</a> <em>Jewish sweet-bread with polish.</em></li>
+ <li><a href="recipes/challah-polish.html">Challah with pre-ferment</a> <em>Polish sweet-bread with polish.</em></li>
<li><a href="recipes/calvel-polish.html">Polish pre-ferment</a> <em>Recommended polish recipe from 'Taste of Bread'.</em></li>
<li><a href="recipes/straight-white-v4.html">Straight white yeasted v4</a> <em>Regular white yeasted bread.</em></li>
- <li><a href="recipes/panettone-imitation.html">Panettone Imitation</a> <em>Imitation Panettone from 'Taste of Bread'.</em></li>
-
<li><a href="recipes/panettone-v3.html">Panettone v3</a> <em>Panettone.</em></li>
<li><a href="recipes/ciabatta-polish.html">Ciabatta with pre-ferment</a> <em>Light Italian bread with polish.</em></li>
+ <li><a href="recipes/floris-polish-rye.html">Polish rye bread</a> <em>Polish rye bread from Maria Floris' 'Bakery, cakes and simple confectionery'</em></li>
+
+ <li><a href="recipes/calvel-levain-de-pate-wholemeal.html">Levain De Pâte (wholemeal)</a> <em>Levain De Pâte ajusted for cheap chapatti flour. Under development.</em></li>
+
<li><a href="recipes/ciabatta.html">Ciabatta</a> <em>Light Italian bread.</em></li>
</ul>
<h3>Keywords</h3>
- <h4>Sourdough</h4>
+ <h4>White</h4>
<ul>
+ <li><a href="recipes/calvel-imitation-panettone.html">Panettone Imitation</a> <em>Imitation Panettone from 'Taste of Bread'.</em></li>
+
<li><a href="recipes/calvel-pain-au-levain.html">Pain Au Levain</a> <em>Pain Au Levain recipe from 'Taste of Bread'.</em></li>
- <li><a href="recipes/levain-de-pate-wholemeal.html">Levain De Pâte (wholemeal)</a> <em>Levain De Pâte ajusted for cheap chapatti flour. Under development.</em></li>
+ <li><a href="recipes/kaiser-rolls-vegan.html">Kaiser rolls (vegan)</a> <em>Under development.</em></li>
+
+ <li><a href="recipes/kaiser-rolls.html">Kaiser rolls</a> <em>Chainbaker kaiser rolls.</em></li>
- <li><a href="recipes/levain-de-pate.html">Levain De Pâte</a> <em>Levain De Pate recipe from 'Taste of Bread'.</em></li>
+ <li><a href="recipes/polish-white-v4.html">White yeasted with polish pre-ferment v4</a> <em>Less acidic flavor than the v4 sourdough.</em></li>
<li><a href="recipes/sourdough-white-v4.html">Sourdough white v4</a> <em>Sourdough sandwich loaf, similar to french bread.</em></li>
- <li><a href="recipes/seeded-rye.html">Seeded Sourdough Rye</a> <em>Sourdough rye with seeds. Can be used as a guide for other seeded breads.</em></li>
+ <li><a href="recipes/calvel-levain-de-pate.html">Levain De Pâte</a> <em>Levain De Pate recipe from 'Taste of Bread'.</em></li>
+
+ <li><a href="recipes/challah.html">Challah</a> <em>Polish sweet-bread.</em></li>
- <li><a href="recipes/panettone-imitation.html">Panettone Imitation</a> <em>Imitation Panettone from 'Taste of Bread'.</em></li>
+ <li><a href="recipes/challah-polish.html">Challah with pre-ferment</a> <em>Polish sweet-bread with polish.</em></li>
+
+ <li><a href="recipes/straight-white-v4.html">Straight white yeasted v4</a> <em>Regular white yeasted bread.</em></li>
<li><a href="recipes/panettone-v3.html">Panettone v3</a> <em>Panettone.</em></li>
+ <li><a href="recipes/ciabatta-polish.html">Ciabatta with pre-ferment</a> <em>Light Italian bread with polish.</em></li>
+
+ <li><a href="recipes/ciabatta.html">Ciabatta</a> <em>Light Italian bread.</em></li>
+
</ul>
- <h4>White</h4>
+ <h4>Sourdough</h4>
<ul>
- <li><a href="recipes/calvel-pain-au-levain.html">Pain Au Levain</a> <em>Pain Au Levain recipe from 'Taste of Bread'.</em></li>
-
- <li><a href="recipes/kaiser-rolls-vegan.html">Kaiser rolls (vegan)</a> <em>Under development.</em></li>
-
- <li><a href="recipes/kaiser-rolls.html">Kaiser rolls</a> <em>Chainbaker kaiser rolls.</em></li>
-
- <li><a href="recipes/levain-de-pate.html">Levain De Pâte</a> <em>Levain De Pate recipe from 'Taste of Bread'.</em></li>
+ <li><a href="recipes/calvel-imitation-panettone.html">Panettone Imitation</a> <em>Imitation Panettone from 'Taste of Bread'.</em></li>
- <li><a href="recipes/polish-white-v4.html">White yeasted with polish pre-ferment v4</a> <em>Less acidic flavor than the v4 sourdough.</em></li>
+ <li><a href="recipes/calvel-pain-au-levain.html">Pain Au Levain</a> <em>Pain Au Levain recipe from 'Taste of Bread'.</em></li>
<li><a href="recipes/sourdough-white-v4.html">Sourdough white v4</a> <em>Sourdough sandwich loaf, similar to french bread.</em></li>
- <li><a href="recipes/challah.html">Challah</a> <em>Jewish sweet-bread.</em></li>
+ <li><a href="recipes/calvel-levain-de-pate.html">Levain De Pâte</a> <em>Levain De Pate recipe from 'Taste of Bread'.</em></li>
- <li><a href="recipes/challah-polish.html">Challah with pre-ferment</a> <em>Jewish sweet-bread with polish.</em></li>
-
- <li><a href="recipes/straight-white-v4.html">Straight white yeasted v4</a> <em>Regular white yeasted bread.</em></li>
-
- <li><a href="recipes/panettone-imitation.html">Panettone Imitation</a> <em>Imitation Panettone from 'Taste of Bread'.</em></li>
+ <li><a href="recipes/seeded-rye.html">Seeded Sourdough Rye</a> <em>Sourdough rye with seeds. Can be used as a guide for other seeded breads.</em></li>
<li><a href="recipes/panettone-v3.html">Panettone v3</a> <em>Panettone.</em></li>
- <li><a href="recipes/ciabatta-polish.html">Ciabatta with pre-ferment</a> <em>Light Italian bread with polish.</em></li>
+ <li><a href="recipes/floris-polish-rye.html">Polish rye bread</a> <em>Polish rye bread from Maria Floris' 'Bakery, cakes and simple confectionery'</em></li>
- <li><a href="recipes/ciabatta.html">Ciabatta</a> <em>Light Italian bread.</em></li>
+ <li><a href="recipes/calvel-levain-de-pate-wholemeal.html">Levain De Pâte (wholemeal)</a> <em>Levain De Pâte ajusted for cheap chapatti flour. Under development.</em></li>
</ul>
<li><a href="recipes/kaiser-rolls-vegan.html">Kaiser rolls (vegan)</a> <em>Under development.</em></li>
- <li><a href="recipes/levain-de-pate-wholemeal.html">Levain De Pâte (wholemeal)</a> <em>Levain De Pâte ajusted for cheap chapatti flour. Under development.</em></li>
-
- <li><a href="recipes/levain-de-pate.html">Levain De Pâte</a> <em>Levain De Pate recipe from 'Taste of Bread'.</em></li>
-
<li><a href="recipes/polish-white-v4.html">White yeasted with polish pre-ferment v4</a> <em>Less acidic flavor than the v4 sourdough.</em></li>
<li><a href="recipes/sourdough-white-v4.html">Sourdough white v4</a> <em>Sourdough sandwich loaf, similar to french bread.</em></li>
+ <li><a href="recipes/calvel-levain-de-pate.html">Levain De Pâte</a> <em>Levain De Pate recipe from 'Taste of Bread'.</em></li>
+
<li><a href="recipes/straight-white-v4.html">Straight white yeasted v4</a> <em>Regular white yeasted bread.</em></li>
<li><a href="recipes/ciabatta-polish.html">Ciabatta with pre-ferment</a> <em>Light Italian bread with polish.</em></li>
+ <li><a href="recipes/calvel-levain-de-pate-wholemeal.html">Levain De Pâte (wholemeal)</a> <em>Levain De Pâte ajusted for cheap chapatti flour. Under development.</em></li>
+
<li><a href="recipes/ciabatta.html">Ciabatta</a> <em>Light Italian bread.</em></li>
</ul>
<li><a href="recipes/kaiser-rolls-vegan.html">Kaiser rolls (vegan)</a> <em>Under development.</em></li>
- <li><a href="recipes/levain-de-pate-wholemeal.html">Levain De Pâte (wholemeal)</a> <em>Levain De Pâte ajusted for cheap chapatti flour. Under development.</em></li>
-
<li><a href="recipes/kaiser-rolls.html">Kaiser rolls</a> <em>Chainbaker kaiser rolls.</em></li>
- <li><a href="recipes/levain-de-pate.html">Levain De Pâte</a> <em>Levain De Pate recipe from 'Taste of Bread'.</em></li>
+ <li><a href="recipes/calvel-levain-de-pate.html">Levain De Pâte</a> <em>Levain De Pate recipe from 'Taste of Bread'.</em></li>
- <li><a href="recipes/challah.html">Challah</a> <em>Jewish sweet-bread.</em></li>
+ <li><a href="recipes/challah.html">Challah</a> <em>Polish sweet-bread.</em></li>
- <li><a href="recipes/challah-polish.html">Challah with pre-ferment</a> <em>Jewish sweet-bread with polish.</em></li>
+ <li><a href="recipes/challah-polish.html">Challah with pre-ferment</a> <em>Polish sweet-bread with polish.</em></li>
<li><a href="recipes/seeded-rye.html">Seeded Sourdough Rye</a> <em>Sourdough rye with seeds. Can be used as a guide for other seeded breads.</em></li>
<li><a href="recipes/ciabatta-polish.html">Ciabatta with pre-ferment</a> <em>Light Italian bread with polish.</em></li>
+ <li><a href="recipes/floris-polish-rye.html">Polish rye bread</a> <em>Polish rye bread from Maria Floris' 'Bakery, cakes and simple confectionery'</em></li>
+
+ <li><a href="recipes/calvel-levain-de-pate-wholemeal.html">Levain De Pâte (wholemeal)</a> <em>Levain De Pâte ajusted for cheap chapatti flour. Under development.</em></li>
+
<li><a href="recipes/ciabatta.html">Ciabatta</a> <em>Light Italian bread.</em></li>
</ul>
</ul>
- <h4>Wholemeal</h4>
- <ul>
-
- <li><a href="recipes/levain-de-pate-wholemeal.html">Levain De Pâte (wholemeal)</a> <em>Levain De Pâte ajusted for cheap chapatti flour. Under development.</em></li>
-
- </ul>
-
<h4>Pre-Ferment</h4>
<ul>
<li><a href="recipes/polish-white-v4.html">White yeasted with polish pre-ferment v4</a> <em>Less acidic flavor than the v4 sourdough.</em></li>
- <li><a href="recipes/challah-polish.html">Challah with pre-ferment</a> <em>Jewish sweet-bread with polish.</em></li>
+ <li><a href="recipes/challah-polish.html">Challah with pre-ferment</a> <em>Polish sweet-bread with polish.</em></li>
<li><a href="recipes/calvel-polish.html">Polish pre-ferment</a> <em>Recommended polish recipe from 'Taste of Bread'.</em></li>
<li><a href="recipes/seeded-rye.html">Seeded Sourdough Rye</a> <em>Sourdough rye with seeds. Can be used as a guide for other seeded breads.</em></li>
+ <li><a href="recipes/floris-polish-rye.html">Polish rye bread</a> <em>Polish rye bread from Maria Floris' 'Bakery, cakes and simple confectionery'</em></li>
+
+ </ul>
+
+ <h4>Floris</h4>
+ <ul>
+
+ <li><a href="recipes/floris-polish-rye.html">Polish rye bread</a> <em>Polish rye bread from Maria Floris' 'Bakery, cakes and simple confectionery'</em></li>
+
+ </ul>
+
+ <h4>Wholemeal</h4>
+ <ul>
+
+ <li><a href="recipes/calvel-levain-de-pate-wholemeal.html">Levain De Pâte (wholemeal)</a> <em>Levain De Pâte ajusted for cheap chapatti flour. Under development.</em></li>
+
</ul>
<li>Add rye and other ancient grain breads</li>
</ul>
- <p>Last compiled at <a href="https://git.ozva.co.uk/?p=bread;a=commit;h=HEAD">2025-08-30 17:28:14.109140</a></p>
+ <p>Last compiled at <a href="https://git.ozva.co.uk/?p=bread;a=commit;h=HEAD">2026-01-17 22:37:14.200446</a></p>
</main>
</body>
</html>
\ No newline at end of file