Merge branch 'main' into 225-ebook-situation

This commit is contained in:
Ced
2024-04-27 17:33:41 +01:00
44 changed files with 1042 additions and 348 deletions

View File

@@ -0,0 +1,11 @@
name: Test building book and website
on:
pull_request:
jobs:
test-building-book-website:
uses: ./.github/workflows/test-book-website.yml
with:
docker-image: ghcr.io/${{ github.repository }}:latest

View File

@@ -0,0 +1,10 @@
name: Test building book and website with default image
on:
push:
jobs:
test-building-book-website:
uses: ./.github/workflows/test-book-website.yml
with:
docker-image: ghcr.io/${{ github.repository }}:latest

View File

@@ -1,17 +1,14 @@
name: Test building book and website
name: Test book and website for given image
on:
pull_request:
env:
IMAGE: ghcr.io/${{ github.repository }}:${{ github.event.pull_request.head.ref }}
workflow_call:
inputs:
docker-image:
required: true
type: string
jobs:
build-and-push-image:
uses: ./.github/workflows/docker-build-push.yml
test-building-book-website:
needs: build-and-push-image
test-book-website:
runs-on: ubuntu-latest
steps:
- name: Set up git repository
@@ -19,7 +16,7 @@ jobs:
- name: Print dependency versions
uses: addnab/docker-run-action@v3
with:
image: ${{ env.IMAGE }}
image: ${{ inputs.docker-image }}
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
@@ -27,7 +24,7 @@ jobs:
- name: Print build variables
uses: addnab/docker-run-action@v3
with:
image: ${{ env.IMAGE }}
image: ${{ inputs.docker-image }}
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
@@ -35,7 +32,7 @@ jobs:
- name: Test baking the release versions
uses: addnab/docker-run-action@v3
with:
image: ${{ env.IMAGE }}
image: ${{ inputs.docker-image }}
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
@@ -51,7 +48,7 @@ jobs:
- name: Test building website
uses: addnab/docker-run-action@v3
with:
image: ${{ env.IMAGE }}
image: ${{ inputs.docker-image }}
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book

2
.gitignore vendored
View File

@@ -1,3 +1,4 @@
.DS_Store
*.xbb
*.aux
*.fdb_latexmk
@@ -14,6 +15,7 @@
*.dlog
*.bak
*.opf
.DS_Store
book/book.out
.vscode/
book/bookch*

View File

@@ -55,6 +55,11 @@ RUN wget https://github.com/mgieseki/dvisvgm/releases/download/3.1.2/dvisvgm-3.1
make && \
make install
RUN git clone https://github.com/michal-h21/make4ht.git && \
cd make4ht && \
make && \
make install
# Make sure everything is UTF-8
RUN echo "export LC_ALL=en_US.UTF-8" >> /root/.bashrc && \
echo "export LANG=en_US.UTF-8" >> /root/.bashrc

View File

@@ -69,7 +69,7 @@ acid? How would the taste change?
methods. In this case I~used a Dutch oven and an apple as dough
replacement. All the apples were coming from the fridge. The temperature
was measured using a barbecue thermometer. The more steam, the faster
the surface temperature increases.}
the apple's surface temperature increases.}
\end{figure}
As the temperature increases further the crust thickens. The Maillard reaction
@@ -245,7 +245,7 @@ as the size of the Dutch oven is limited.
In many cases, it makes sense to bake multiple
loaves in one go. It makes the whole process more
efficient as you have to knead less per loaf. The time it
takes to make one loaf is significantly reduced. Furthermore,
takes to make one loaf is significantly reduced on average. Furthermore,
you don't require as much energy. You don't have
to preheat your oven twice for each loaf.

View File

@@ -211,9 +211,11 @@ tweak just by adjusting the speed of your dough's fermentation.
\section{Yeast}
Yeasts are single-celled microorganisms belonging to the fungi kingdom, and
spores that are hundreds of millions of years old have been identified by
scientists. There are a wide variety of species --- so far, about \num{1500}
Yeasts are single-celled microorganisms belonging to the fungi kingdom. They
can reproduce through either budding or by building spores. The spores are
incredibly tiny and resistant to external factors. Scientists have found undamaged
spores that are hundreds of million years old. There are a wide variety of
species --- so far, about \num{1500}
have been identified. Unlike other members of the fungi kingdom such as mold,
yeasts do not ordinarily create a mycelium
network~\cite{molecular+mechanisms+yeast}.\footnote{For one interesting
@@ -341,8 +343,8 @@ breads~\cite{shelflife+acidity}.
\begin{figure}
\includegraphics[width=1.0\textwidth]{bacteria-microscope}
\caption[Bacteria under the microscope]{Fructilactobacillus Sanfranciscensis
under the microscope.}%
\caption[Bacteria under the microscope]{Fructilactobacillus
sanfranciscensis under the microscope.}%
\label{lactobacillus-franciscensis-microscope}
\end{figure}

View File

@@ -7,3 +7,12 @@
object-fit: contain;
width: auto;
}
.float {
max-width: 100%;
}
.float img {
max-width: 100% !important;
height: auto;
object-fit: contain;
width: auto;
}

View File

@@ -41,8 +41,8 @@ To make a flatbread no oven is required; all you need is a stove.
\end{figure}
This type of bread is super simple to make as you can skip
a lot of the technique that is normally required. The flatbread
can be made with all kinds of flours. You can even use
a lot of the technique that is normally required to make wheat doughs.
The flatbread can be made with all kinds of flours. You can even use
flour without gluten, such as corn or rice flour, to make the
dough. To make the flatbread a little more fluffy, you
can use a little bit of wheat flour. The developing gluten
@@ -231,7 +231,8 @@ bake. A similar strategy is used when making corn tortillas.
You can safely store the baked flatbreads or pancakes in your fridge
for weeks. When storing make sure to store them in an airtight plastic bag so that
they do not dry out.
they do not dry out. If they dry out, spray them with some water and toast them.
They will be almost as good as when they were freshly baked.
Keep a little bit of your unbaked dough. You can use it to make the next
batch of bread or pancakes for the next day. If you want to bake a few days later, add
@@ -344,10 +345,9 @@ evaporating moisture will stay inside.
A good trick to make excellent loaf pan bread is to make a very
sticky dough. You can opt for a hydration of \qtyrange{90}{100}{\percent}, almost
resembling a default sourdough starter. Just like with flatbread,
the high humidity helps to make a more airy, fluffy crumb. At
the same time the bread will be a bit chewier. This
type of bread made with rye is my family's favorite style of bread.
The hearty rye flavor paired with the sticky consistency really
the high humidity helps to make a more airy, fluffy crumb. The bread will
also be a bit chewier. This type of bread made with rye is my family's favorite
style of bread. The hearty rye flavor paired with the sticky consistency really
makes an excellent sandwich bread.
To improve the structure you can also consider using around \qty{50}{\percent}
@@ -385,13 +385,12 @@ and tools are required.
\end{center}
\end{figure}
Normally you mix your dough, when using wheat you make sure that you mix
enough to develop a gluten network. You allow the dough to reach a certain
size increase during the fermentation, afterwards you divide and pre-shape the
dough into the desired visual shape that you like. Each shape requires a
different technique. Sometimes achieving exactly the right shape can be
challenging, making a baguette for instance, requires you to perform more
steps. Mastering this technique takes several attempts.
When using wheat, make sure to mix your dough enough to develop a gluten network.
Allow the dough to reach a certain size increase during the fermentation.
Afterward, divide and pre-shape the dough into the desired visual shape you
would like. Each shape requires a different technique. Sometimes achieving
the right shape can be challenging. Making a baguette, for instance,
requires performing more steps. Mastering this technique takes several attempts.
Once the dough is shaped, it is proofed again for a certain
period of time. Once the dough is ready, a sharp tool such
@@ -403,5 +402,5 @@ performed perfectly, without mistakes.
But after baking you will be rewarded with a beautiful bread
with great taste and consistency.
There is a fully dedicated recipe and tutorial
for this type of bread in the~''\nameref{chapter:wheat-sourdough}''~Chapter.
There is a dedicated recipe and tutorial for this type of bread in the
\nameref{chapter:wheat-sourdough} chapter.

View File

@@ -46,7 +46,7 @@
\draw[line width=1pt] (\textwidth,0.1) -- (\textwidth,-0.1);
% Full timeline width for billion years
\draw[stealth-stealth, line width=1pt] (0,-3.8) -- node[midway, timeline_timespan] {5.45 billion years} (\textwidth,-3.8);
\draw[stealth-stealth, line width=1pt] (0,-3.8) -- node[midway, timeline_timespan] {4.45 billion years} (\textwidth,-3.8);
% Indicator for the period of 3 months = 1.1 billion years
\draw[stealth-stealth, line width=1pt] (0,-1.0) -- node[midway, timeline_timespan] {1.11 billion years} ({\segmentwidth * 3},-1.0);

View File

@@ -1,5 +1,5 @@
\begin{tikzpicture}[node distance = 3cm, auto]
\node [decision_start] (init) {Room temperature proofing?};
\node [decision_start] (init) {Room temperature-proofing?};
\node [decision, right of=init, node distance=8cm] (retard_bake_decision) {Bake in less than \qty{10}{\hour} from now?};
\node [block, below of=init, node distance=4cm] (poke) {Poke the dough};
\node [block, left of=poke] (wait_poke) {Wait\\ 15~minutes};

View File

@@ -141,7 +141,7 @@ This also provides a larger surface that your microbes can use to attack the mol
and start the fermentation process.
I~am still
yet to find a good way of milling my own flour at home. Even after trying to
yet to find a good way of milling my own wheat flour at home. Even after trying to
mill the flour 10~times with short breaks, I~was not able to achieve the same
properties as with commercially milled flour. The doughs I~would make felt
good, maybe a bit coarse. However, during baking the doughs would start to

View File

@@ -15,6 +15,17 @@ acid bacteria and acetic acid bacteria during fermentation. It gives sourdough b
its characteristic tangy flavor and helps to preserve the bread by lowering its pH.
The flavor of acetic acid has a more vinegary profile.
\item[Aliquot jar] A small piece of dough extracted after creating initial
dough strength. The aliquot jar is used to monitor the dough's fermentation progress.
It's important to ensure the dough's water temperature in the aliquot matches
your room temperature for accurate readings. Be mindful that the aliquot
jar may not be as effective if there are significant temperature
fluctuations in your kitchen. This is because the small dough sample in
the aliquot can heat up or cool down faster than the main dough mass,
potentially impairing its ability to accurately monitor fermentation.
It's crucial to use a cylindrical-shaped aliquot container to properly judge
the dough's size increase.
\item[All Purpose Flour] A general flour thats balanced to make breads and also
cakes. In Germany this is type~550.
@@ -104,6 +115,14 @@ proof. The bannetons are typically made out of rattan or wood pulp. An alternati
DIY solution is to use a bowl with a kitchen towel inside. While resting inside of
the banneton the doughs surface dries out and becomes easier to score before baking.
\item[Bassinage method] A bread making technique involving the staged addition of water
to the dough. Initially, the dough is mixed to a lower hydration level,
allowing gluten bonds to form more effectively. Once these gluten structures
are established, additional water is gradually incorporated through further
kneading. This method enhances the dough's extensibility, especially beneficial
when working with lower-gluten flours. By employing the bassinage method,
bakers can achieve a dough that is both strong and extensible.
\item[Bench Rest] A short resting period given to the dough after preshaping
allowing the gluten to relax a little bit and making shaping easier. Most people
bench rest for 10 minutes up to an hour. The bench rest becomes especially important
@@ -194,6 +213,39 @@ of starter is used for the fermentolyse. The flour, water and starter are mixed
together. By adding the starter early the dough becomes more extensible and easier
to handle.
\item[Finger poke test] The finger poke test is a simple yet effective way to
check if your sourdough bread is ready to bake. After the final rise, lightly
flour your finger and gently press about half an inch into the dough.
If the dough springs back slowly and leaves a slight indentation, it's perfect
and ready for the oven. If it springs back quickly, it needs more time to rise.
However, if the dough collapses or doesn't spring back at all, it may be
over fermented.
\item[Float test] The float test is a technique for assessing the readiness
of a sourdough starter. To perform this test, take a small sample of
your starter and gently place it in a glass of water. The outcome
of this test can provide insights into your starter's fermentation stage.
\begin{itemize}
\item[] \emph{Positive result:} If your starter effortlessly floats on the
surface of the water, it's a clear indication that it has reached its peak
of fermentation and is ready to be used as a leavening agent in your dough.
This buoyancy is a result of the carbon dioxide gas produced during
the active fermentation process.
\item[] \emph{Negative result:} Conversely, if your starter sinks to the
bottom of the glass, it suggests that it's not quite ready yet.
This indicates that the fermentation process has not progressed
sufficiently for optimal leavening power.
\end{itemize}
It's worth noting that while the float test is a reliable indicator
for wheat-based sourdough starters, it may not be as effective for non-wheat
starters. This is because the gas generated during fermentation in non-wheat
starters tends to escape more readily, making it less buoyant. For non-wheat
starters, a more accurate approach involves observing the presence of
bubbles in your starter jar and assessing its aroma. A mature starter should
emit a mildly sour, but not overly pungent, scent.
\item[Fools Crumb] A term used to describe a crumb structure that has several
large pockets or holes, rather than an even distribution of smaller holes. This
isn't necessarily a desired feature, as it can indicate uneven fermentation or
@@ -225,6 +277,8 @@ to prevent clumping and burning it.
fermentation. It imparts a mild tangy yogurty flavor to sourdough bread and, along
with acetic acid, contributes to the bread's overall acidity.
\item[Levain] See Sourdough starter.
\item[Maillard Reaction] The Maillard reaction is one of the causes of food browning
during cooking. The reaction occurs between reducing sugars and amino acids, and
depending on the initial reactants and cooking conditions can produce a wide variety
@@ -324,7 +378,8 @@ stage by placing the dough in a colder environment, typically a refrigerator. Th
bakers in scheduling, allowing them to have more control over when to bake their breads,
especially in large-scale bakeries where timing is essential to serve freshly baked bread
to early morning customers. While scheduling is the main reason, some bakers also assert
that retarding can enhance the bread's overall flavor profile.
that retarding can enhance the bread's overall flavor profile. Also known as
fridge-proofing.
\item[Rye] A type of grain used in baking. Due to its low gluten content, breads
made solely from rye flour tend to be dense. However, rye has a unique flavor and
@@ -340,10 +395,6 @@ quality. The scalding technique can also enhance the overall flavor and aroma of
the bread, bringing out more pronounced grainy notes and reducing bitterness
sometimes found in certain whole grains.
\item[Scalding] A method where boiling water is poured over flour and then cooled
down to room temperature. This process gelatinizes the starches in the flour,
resulting in a dough that retains moisture better and has an improved shelf life.
\item[Scoring] Cutting the surface of the bread dough before it's baked. This
allows the dough to expand freely in the oven, preventing it from bursting in
unpredictable ways. It also provides a controlled aesthetic to the finished loaf.
@@ -351,9 +402,10 @@ unpredictable ways. It also provides a controlled aesthetic to the finished loaf
\item[Sift] To pass flour or another dry ingredient through a sieve to
remove lumps and aerate it.
\item[Soaker] A mixture of grain and water that is left to soak overnight (or for a
\item[Soaker] A mixture of grains or seeds with water that is left to soak overnight (or for a
specified amount of time) before being incorporated into bread dough. This helps to
soften and hydrate the grains, making them easier to integrate into the dough and
soften and hydrate the grains or seeds (sesame, pumpkin, etc.), making them
easier to integrate into the dough and
providing a moister crumb in the finished bread.
\item[Sponge] A type of preferment, a sponge is a wet mixture of flour, water, and
@@ -389,8 +441,17 @@ with the plant providing a shield against pathogens and receiving sugars from th
photosynthesis of the plant in return. When the plant becomes weak the wild yeasts
can become parasitic and consume the host.
\item[W-Value] A parameter representing the strength of flour in terms of its
baking quality. The W-value, derived from the Chopin Alveograph test,
measures the energy required to blow a bubble with the dough until it bursts.
It is a direct indicator of the flour's ability to withstand the fermentation
and baking processes. A higher W-value typically indicates a stronger
flour, suitable for breads with high volume and longer fermentation times.
Conversely, a lower W-value suggests a weaker flour, better suited for
products requiring less structure, like cakes and pastries.
\item[Yeast] Microorganisms that ferment the sugars present in the dough, producing
carbon dioxide and alcohol and thereby causing the dough to rise.
carbon alcohol, carbon dioxide and heat; thereby causing the dough to rise.
\item[Yudane] A Japanese method of bread-making which involves the preparation
of a starter by mixing boiling water with bread flour in a specific ratio, typically 1:1

View File

@@ -1,4 +0,0 @@
\chapter{Foreword}%
\label{ch:Foreword}
Hopefully one day there is going to be an awesome foreword
by another bread baker!

View File

@@ -46,7 +46,8 @@ seemingly
healthy bread consisted of so many other things aside from flour and water.
The black color was not coming from the flour, but from caramelized sugar.
The packaging stated it was a sourdough bread, but then why was there additional yeast?
I~thought that if it was really sourdough, it shouldn't require additional yeast, and I~soon
I~thought that if it was really sourdough, it shouldn't require additional
yeast. I~soon
realized that something was wrong with the bread I~was buying.
I~proceeded to check the other supermarket breads, only to discover that they, too,
contained ingredients I'd never heard of. That was the day I~lost trust
@@ -162,8 +163,8 @@ and more. It should provide a detailed understanding as to why certain steps are
and how to adapt them when things go wrong while making bread.
It is my desire for this knowledge to be accessible to everyone around the world, regardless
of budget, and as such, I~do not want to charge for the book. That's why I've decided to make
it open source and have asked the community to support my work financially via my ko-fi page
\url{https://ko-fi.com/thebreadcode}. The community's feedback has been amazing so far, and
it open source and have asked the community to support my work with
donations. The community's feedback has been amazing so far, and
I've already raised much more money than initially expected. The digital version of this book
will always remain free. There is also a hardcover version of the book available for purchase.
You can read more details here: \url{https://breadco.de/physical-book}

View File

@@ -49,9 +49,11 @@ images += $(foreach directory, $(chapters), $(wildcard $(directory)/*/*.png))
# images to lower resolution and greyscale
bw_images := $(addprefix bw-book-epub/OEBPS/, $(images))
src_all := $(src_tex) $(src_figures) $(src_tables) tex4ebook.cfg book.mk4 $(images)
src_all := $(src_tex) $(src_figures) $(src_tables) $(images)
website_src := $(src_all) website.cfg
ebook_src := $(src_all) tex4ebook.cfg book.mk4 book-ebook.css
website_src := $(src_all) website.cfg style.css
website_assets := $(wildcard ../website/assets/*)
ruby_src := ../website/modify_build.rb $(website_assets)
@@ -89,7 +91,7 @@ book_sans_serif/book_sans_serif.pdf: $(src_all)
.PHONY: copy_ebook_files
epub/%.epub: %.tex $(src_all) cover/cover-page.xbb
epub/%.epub: %.tex $(ebook_src) cover/cover-page.xbb
$(EBOOK) $<
copy_ebook_files: build_ebook
@@ -221,9 +223,9 @@ clean: clean_ebook_build clean_figures clean_website_build
$(CLEAN) -output-directory=book_serif book.tex
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
-rm book*/*.{bbl,loc,.run.xml}
-rm -rf book*-epub/META-INF
-rm -rf book*-epub/OEBPS
-rm book*-epub/mimetype
-rm -rf *book-epub/META-INF
-rm -rf *book-epub/OEBPS
-rm *book-epub/mimetype
mrproper: clean
$(CLEAN) -C $(src_figures)
@@ -236,7 +238,7 @@ mrproper: clean
-rm -rf release/
-rm -rf book_serif/
-rm -rf book_sans_serif/
-rm -rf book-epub/
-rm -rf *book-epub/
-rm -rf $(website_dir)
# top level releases rules

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 KiB

BIN
book/mix-ins/beer-bread.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

BIN
book/mix-ins/broa.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 KiB

View File

@@ -1,183 +1,315 @@
\chapter{Mix-ins}%
\label{ch:mix-ins}
\begin{quoting}
This work-in-progress chapter will describes altering and additions you
could make to your dough to create beautiful or different tasting loafs.
In this chapter, you will learn about the fascinating world of sourdough
mix-ins. Discover how these additions can elevate your bread, enhancing
flavor, adding vibrant colors, and creating delightful textures that make
each loaf a culinary masterpiece.
\end{quoting}
\begin{figure}[htb!]
\includegraphics[width=\textwidth]{pumpkin-sourdough}
\caption[Pumpkin sourdough softbuns]{These soft pull-apart sourdough
buns have been made with the addition of pumpkin purée. The mashed pumpkin
adds flavor and hydration to the dough.}%
\end{figure}
A loaf of wheat sourdough has a very pure aesthetic. Good craftsmanship and
precision transforms the ingredients into simple, but delicious food. With
precision transform the ingredients into simple, but delicious food. With
mix-ins, the basic recipe can become the starting point for a whole world of
modifications to try and combine. Think of the loaf of bread as a blank canvas
to express yourself.
One approach to sort through the options is to categorize mix-ins by shape
(the transition between these categories is somewhat fuzzy):
\section{Categories}
\begin{figure}[htb!]
\includegraphics[width=\textwidth]{pumpkin-on-flour}
\caption[Pumpkin puré]{A common mix-in technique is to replace some of
the dough's water with another liquid. In this case, puréd pumpkin replaced
some of the water. When adding puré to the dough only slowly add
additional water as the puré slowly releases additional water to the
dough.}%
\end{figure}
One approach to categorizing the mixins is to look at their respective shape.
However, the transition between these categories is somewhat fuzzy:
\begin{itemize}
\item Liquids: Integrate homogeneously into the dough, may replace some of
the water. Examples: Milk, oil, spinach juice.
or all of the water. Examples: Milk, butter, oil, spinach juice, tomato
juice, eggs
\item Powders: Integrate homogeneously into the dough, may replace some of
the flour. Examples: Rye flour, semolina, cocoa, ground spices.
the flour. Examples: Milk powder, semolina, cocoa, spices
\item Small bits: Individually visible in the final loaf, small enough to
distribute somewhat evenly throughout the dough. Examples: Seeds (poppy
seeds, sesame, pumpkin seeds), whole spices (coriander).
distribute somewhat evenly throughout the dough. Examples: Seeds (wheat
berries, rye berries, poppy seeds, sesame, pumpkin seeds,
flax seeds), whole spices (coriander)
\item Chunks: Larger pieces that will only be present in the occasional bite
when eating a slice of your bread. Examples: dried tomatoes, chunks of
cheese,
cheese, chunks of chocolate
\end{itemize}
Another categorization approach looks at the changes to the bread. Most
mix-ins actually impact multiple aspects.
Another categorization approach looks at the changes to the bread:
\begin{itemize}
\item Flavor: Significantly changes the taste of the bread. Examples: rye
flour, spices.
flour, corn flour, spices, sugar.
\item Color: Significantly changes the look of the bread. Examples: cocoa,
squid ink, beetroot juice.
squid ink, beetroot juice, tomato juice.
\item Texture: Significantly changes the feeling in the mouth when eaten.
Examples: Cheese (gummy), seeds (crunchy), olives (squishy chunks).
\end{itemize}
Many of the above-listed mix-ins can't be pinpointed to a single category. They
change multiple aspects of the final bread at the same time.
\begin{figure}[htb!]
\includegraphics[width=\textwidth]{seeded-sourdough}
\caption[Seeded sourdough]{In this case a combination of flax, sunflower and
sesame was added to the dough. The seeds will slightly dehydrate the dough
during fermentation and thus adding a bit more water (\qtyrange{1}{2}{\percent}) is advised.}%
\end{figure}
Mix-ins affect the structure of the dough. One aspect is the impact on
hydration. Some mix-ins absorb a lot of water when added to the dough, so you
have to increase the amount of water to achieve the same dough consistency.
The other impact is on the gluten network. Bits and chunks disrupt the gluten
network, and may reduce the rise. All of this depends on the amount of mix-ins
network and may reduce oven spring during baking. All of this depends on the amount of mix-ins
used. A good rule of thumb is to add \qtyrange{10}{20}{\percent} of the amount
of flour in most mix-ins, reduced to around \qtyrange{1}{5}{\percent} of the
amount of flour for spices.
An important factor is also the mix-in's behavior during baking. Particularly
chunks may bake differently than dough, and either melt (cheese) leaving holes
inside, or char when peeking through the crust (\eg, vegetables). These
problems can be mitigated to some degree with the right preparation (\eg,
chopping into smaller pieces, soaking dry ingredients in water or oil first,
inside, or char when peeking through the crust (\eg~vegetables). These
problems can be mitigated to some degree with the right preparation (\eg~chopping
into smaller pieces, soaking dry ingredients in water or oil first,
or squeezing out excess moisture).
% potential reference to link: https://food52.com/blog/25521-additions-to-sourdough-bread-ideas
\section{Examples}
The following is a list of common mix-ins and their peculiarities:
The following is a list of common mix-ins and their peculiarities. They can be
combined depending on your preference.
\subsection{Flours}
These are powders. Usually you want to just replace some fraction of the
These are powders. Usually, you want to just replace some fraction of the
regular bread flour. Different flours change the taste of the bread and
usually moderately affect the color.
\begin{figure}[htb!]
\includegraphics[width=\textwidth]{broa}
\caption[Broa de milho]{Broa de milho is a traditional Portuguese bread
made out of half rye and half corn flour.}%
\end{figure}
\begin{itemize}
\item Whole wheat flour (substitute any amount, makes the bread taste more
complex, nutty)
\item Rye flour (very hearty, nutty, malty taste)
\item Semolina (supports mediterranean flavors)
\item Enzymatic malt (malty taste, improves enzymatic activity). The malt is
a great addition when making quicker yeast-based doughs.
\item Semolina (supports Mediterranean flavors)
\item Cocoa (replace \qty{10}{\percent} of the flour for a black loaf, goes
great with sweet toppings)
\item Other non-wheat flours such as: Chickpea, corn, hemp, potato etc.
\end{itemize}
\subsection{Liquids}
Substitute some of the water with a different liquid, affecting taste and
texture.
Instead of using water, you can substitute it with a different liquid,
affecting taste and texture.
\begin{figure}[htb!]
\includegraphics[width=\textwidth]{beer-bread}
\caption[Stout beer bread]{Dark hearty stouts work excellently as a water replacement
when making sourdough bread. The resulting loaf features a hearty malty taste}%
\end{figure}
\begin{itemize}
\item Coffee
\item Beer
\item Olive oil (mediterranean)
\item Milk (for sweet, soft breads)
\item Butter
\item Buttermilk
\item Cereal milk (the leftover milk from eating cereals)
\item Coffee
\item Eggs
\item Fruit/vegetable juices (also see Section~\ref{section:colors})
\item Milk (for sweet, soft breads)
\item Milk alternatives such as: Almond, oat, soy etc.
\item Mashed potatoes
\item Mashed sweet potatoes. Bolo do caco is a typical bread from Madeira,
made from \qty{50}{\percent} wheat flour and \qty{50}{\percent} mashed potatoes.
\item Olive oil (Mediterranean)
\item Other mashed vegetables such as: Beets, pumpkin, etc.
\end{itemize}
\subsection{Colors}
These drastically change the color of the bread.
\label{section:colors}
Some mix-ins will change the color and flavor of your bread. Common colorings
include:
\begin{itemize}
\item Activated charcoal powder (black)
\item Beetroot juice (red)
\item Blueberry juice (blue)
\item Blue butterfly pea flower powder (blue)
\item Carrot juice (orange)
\item Pear juice (pink)
\item Spinach juice (green)
\item Squid ink (black)
\item Strawberry juice (red)
\item Tomato juice (red)
\end{itemize}
\subsection{Seeds and nuts}
These are small bits, with some almost crossing into the chunk category. Most
seeds benefit from being baked for about 10~minutes before adding them to the
These are small bits, with some almost crossing into the chunk category. Some
seeds benefit from being boiled for about 10~minutes before adding them to the
dough.
\begin{figure}[htb!]
\includegraphics[width=\textwidth]{stollen-close-up}
\caption[Stollen closeup]{The Stollen is a traditional German sweet Christmas
bread featuring a variety of mix-ins. The dough typically contains candied lemon,
candied orange, and raisins. The mix-ins are soaked in rum before being added to
the dough. While the stollen matures after baking (up to \num{6} months) the candied ingredients release
their aroma to the baked product.}%
\end{figure}
\begin{itemize}
\item Pumpkin seed
\item Cacao nibs
\item Chia seed
\item Flaxseed (soak these in water first)
\item Hemp seed (very crunchy, a personal favorite)
\item Chopped or whole nuts such as: Almonds, hazelnuts and walnuts
\item Flaxseeds
\item Hemp seed
\item Poppy seed
\item Pumpkin seed
\item Sesame
\item Sunflower seed
\item Poppy seed
\item Cacao nibs
\item Chopped or whole walnuts
\item Chopped or whole hazelnuts
\item Whole rye berries (boil 10 minutes)
\item Whole wheat berries (boil 10 minutes)
\end{itemize}
\begin{figure}[htb!]
\includegraphics[width=\textwidth]{seeds-bread}
\caption[Whole-rye with rye berries]{A sourdough bread made with half whole-rye flour and half rye berries. The
berries are typically boiled for 10~minutes to allow them to soften a bit. When baking a loaf
it is advised to use a thermometer to measure whether it is done baking. The final bread
features a hearty tangy flavor and has a moist crumb.}%
\end{figure}
\subsection{Spices and flavor mix-ins}
These are mostly powders or small bits.
\begin{itemize}
\item Mediterranean herbs (oregano, thyme, rosemary, marjoram)
\item Bread spice (coriander, cumin, fennel, anise)
\item Grated hard cheese: Gruyère, parmesan
\item Blueberry skins (press through sieve to remove juice, raw blueberries
would add too much water)
\item Lemon zest (alternatively orange or lime)
\item Blueberry skins (press through a sieve to remove juice, raw blueberries
\item Browned onions
\item Molasses
\item Candied fruits such as: Lemon, orange, pineapple, etc.
\item Cinnamon
\item Grated hard cheese such as: Gruyère, parmesan, etc.
\item Mediterranean herbs such as: Marjoram, oregano, rosemary, thyme, etc.
\item Miso
\item Molasses
\item Sugar
\item Spices such as: Anise, fennel, cinnamon, coriander, cumin, etc.
\item Zests such as: Lime, Lemon, orange, etc.
\end{itemize}
\subsection{Highlights}
Mostly chunks, that add a big contrast and flavorful highlight to the basic
bread. Usually you want to use only one (or maximum two) of these. Often can
be complemented well by some flavor mix-in or flour.
bread. Usually, you want to use only one (or a maximum of two) of these. The suggestions
can often be complemented by some flavor or flour mix-in.
\begin{itemize}
\item Chocolate chunks or drops
\item Chunks of black garlic
\item Chunks of cheese such as: Cheddar, feta, etc.
\item Cornflakes
\item Dried fruits such as: Cranberries, dates, raisins, etc.
\item Olives
\item Pickled pepperoni
\item Sundried tomatoes (squeeze out the oil if using pickled ones, or soak
dried ones in water)
\item Pickled pepperoni
\item Cornflakes
\item Dried fruit (\eg, cranberries, raisins)
\item Chunks of cheese (\eg, cheddar, feta)
\item Chunks of black garlic
\item Chocolate chunks or drops
\end{itemize}
\subsection{Combinations}
A few combinations where multiple mix-ins complement each other:
\begin{itemize}
\item Semolina, mediterranen herbs, olives, sundried tomatoes.
\item Cranberry and walnuts.
\item Cheddar and pepperoni.
\item Cocoa, cacao nibs, whole hazelnuts.
\item Butter and milk. Then add cinnamon and brown sugar before shaping
\item Cheddar and pepperoni
\item Cheddar and jalapeño
\item Cocoa, cacao nibs, whole hazelnuts
\item Cranberry and walnuts
\item Semolina, Mediterranean herbs, olives, sundried tomatoes
\item Tomato juice instead of water with \qty{20}{\percent} rye flour
\end{itemize}
\section{Techniques}
Adding mix-ins into the dough is just the simplest approach. There are other,
more advanced ways to include them into a loaf.
\subsection{Covering the crust}
This works best for either powders or small bits. Spread the mix-in in a flat
container, wet the surface of the loaf, and dip it into the mix-in right
before baking.
Adding mix-ins to the dough is just the simplest approach. Add the mix-ins
directly when you knead the dough. After the first kneading wait for 30 minutes to see
if the dough has enough or too much water. In the case of whole-soaked berries
(\eg~rye or wheat) chances are that the berries will release some water and make the dough
wetter. In this case, you will want to add a bit more flour to the dough to
compensate for the high hydration.
This does not work for all mix-ins, as some can't handle the high temperatures
during baking and char. Most commonly done with seeds (\eg, sesame).
\subsection{Adding before shaping}
\begin{figure}[htb!]
\includegraphics[width=\textwidth]{apple-swirl}
\caption[Apple swirl buns]{A great technique is to add some of your mix-ins
directly before shaping. In this case, a mixture of apples, cinnamon and brown
sugar was applied. Proceed and roll the dough together. Afterward cut the roll
into smaller pieces using a sharp knife, dough scraper or dental floss. Place
each piece of dough next to each other in a greased bowl to allow them to be proofed.
Proceed and bake as you would normally do. The benefit of this technique is that
the mix-ins will not be fermented. This is typically required in the case of sugar
since you want the final baked goods to feature sweetness. If included upon
initial mixing most of the sugar would be fermented and the bread would not taste sweet.}%
\end{figure}
Another approach is to lay the dough out flat after the bulk fermentation.
Then using a spatula spread your ingredient over the flat dough. Continue with
your regular shaping and/or roll up the dough. When creating a roll you can
use a sharp knife to cut the dough, dental floss works great too. Afterward,
place the tiny swirls in a container to let them proof and become fluffier. This is an
excellent way to add sweet mixins as the microbes will not ferment them. When
adding sugar to the initial dough it will be fermented and the resulting dough
will not taste sweet (depending on the fermentation duration). This approach
is excellent for garlic/cheese rolls, garlic/herb rolls, and cinnamon rolls
\subsection{Covering the surface}
\begin{figure}[htb!]
\includegraphics[width=\textwidth]{surface-seeds}
\caption[Surface seeds]{These are chop buns which are created by chopping
up a retarded dough into smaller pieces before baking. Then each piece of
dough is quickly dumped in water and then rolled in a bowl of seeds.
Afterward, the dough is directly baked in the preheated oven. These
coverings add superb additional flavor and can be adjusted depending on
your preference. I love adding a mixture of sunflower, flax, and
sesame seeds.}%
\end{figure}
This works best for either powders or small bits. After shaping wrap your
coverings on the dough's surface. This works great too when covering your
banneton or loaf pan with seeds or oats. When using a loaf pan or banneton
these coverings also help to make the container stick less.
Another approach commonly used with buns is to wet the surface or dump the
dough in water. Afterward, dip the wetted piece of dough into your bowl of
mixins. This does not work for all mix-ins, as some can't handle the high temperatures
during baking and char. Most commonly done with seeds (\eg~sesame, oats, flax-seed).
\subsection{Swirled colors}
Mix-ins that change the color of the dough bring the opportunity for even more
creativity.
creativity by merging the dough before shaping.
Separate the dough before adding a colorful ingredient. Combine the two (or
Proceed and separate your base dough before adding a colorful ingredient. Bulk
ferment the dough in separate containers. Then Combine the two (or
more) differently colored doughs by laminating and stacking the colored sheets
of dough before the last folding, just before shaping and bulk rise.
These can really become works of art.
% https://www.reddit.com/r/Sourdough/comments/onynqm/sourdough_with_dried_raspberries_recipe_in/
% https://natashasbaking.com/blueberry-sourdough/
% https://www.reddit.com/r/Sourdough/comments/mot8vq/chocolate_sourdough_loaf/
% https://www.reddit.com/r/Sourdough/comments/13sdex9/fairy_bread_for_my_daughters_class_party_with/
% https://www.reddit.com/r/Sourdough/comments/keyx88/roasted_onion_and_garlic_loaf_this_loaf_didnt/
% https://myloveofbaking.com/rye-molasses-and-orange-sourdough/
% https://www.reddit.com/r/Sourdough/comments/qd3y4k/pick_your_player_miso_sesame_or_cranberry_walnut/
% https://www.reddit.com/r/Sourdough/comments/lziedg/10_spelt_flour_80_hydration_50_buttermilk_50/
% https://www.reddit.com/r/Sourdough/comments/lbrc4a/squid_ink_sourdough_with_sharp_cheddar_and/
% https://www.reddit.com/r/Sourdough/comments/na0zed/was_hoping_for_a_more_pronounced_purple_but_i/
% https://www.reddit.com/r/Sourdough/comments/10rzgif/sesame_and_poppyseed_64_hydration/
% https://www.reddit.com/r/Sourdough/comments/11lcgvr/sesame_seed_crusted_loaf_w_everything_bagel/
of dough before the last folding, just before shaping. This way the colored
layers won't mix and the resulting dough will have differently colored and
tasting layers. \footnote{I once made an experimental dough by merging a wheat,
rye, spelt and einkorn dough into a single dough. The resulting dough was
layered featuring different colors, textures, and flavors.}

Binary file not shown.

After

Width:  |  Height:  |  Size: 741 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

View File

@@ -16,7 +16,7 @@
note = {Accessed: 2022-03-24}
}
@article{rye-defects,
@misc{rye-defects,
author = {Marie Oest et al.},
title = {Rye Bread Defects: Analysis of Composition and
Further Influence Factors as Determinants
@@ -26,7 +26,7 @@
howpublished = {\url{https://www.mdpi.com/2304-8158/9/12/1900/pdf}}
}
@article{stiff+starter,
@misc{stiff+starter,
title = {Stiff sourdough starter},
author = {Hendrik Kleinwächter},
howpublished = {\url{https://www.youtube.com/watch?v=MqH3GVfjfBc}},
@@ -34,7 +34,7 @@
note = {Accessed: 2022-04-26}
}
@article{baking+twice,
@misc{baking+twice,
title = {Baking your dough twice to make a sourer bread},
author = {Hendrik Kleinwächter},
howpublished = {\url{https://youtu.be/0v1QhtyUic4}},
@@ -42,7 +42,7 @@
note = {Accessed: 2022-04-28}
}
@article{more+active+starter,
@misc{more+active+starter,
title = {4 tips to make a more active starter},
author = {Hendrik Kleinwächter},
howpublished = {\url{https://www.youtube.com/watch?v=yYkTrGHNW2w}},
@@ -50,7 +50,7 @@
note = {Accessed: 2022-04-29}
}
@article{baking+powder+reduce-acidity,
@misc{baking+powder+reduce-acidity,
title = {Use baking powder to reduce dough acidity},
author = {Hendrik Kleinwächter},
howpublished = {\url{https://www.youtube.com/watch?v=c8GId0ByASo}},
@@ -58,7 +58,7 @@
note = {Accessed: 2022-04-29}
}
@article{food+safe+ph,
@misc{food+safe+ph,
title = {Acidified Foods: Food Safety Considerations for Food Processors},
author = {Felix H. Barron and Angela M. Fraser},
howpublished = {\url{https://www.intechopen.com/chapters/41654}},
@@ -75,7 +75,7 @@
year = {2022}
}
@article{liquid+on+starter,
@misc{liquid+on+starter,
title = {Acidified Foods: Food Safety Considerations for Food Processors},
author = {Sourdoughhome},
howpublished = {\url{https://www.sourdoughhome.com/what-is-hooch/}},
@@ -83,57 +83,59 @@
note = {Accessed: 2022-04-29}
}
@article{acetic+acid+production,
@misc{acetic+acid+production,
title = {Acetic Acid (or Ethanoic acid). The main constituent of vinegar.},
author = {chm.bris.ac.uk},
howpublished = {\url{http://www.chm.bris.ac.uk/motm/acetic-acid/acetic-acidjs.htm}},
note = {Accessed: 2022-04-29}
}
@article{jordan+bread,
@misc{jordan+bread,
author = {Amaia Arranz-Otaegui et al.},
title = {Archaeobotanical evidence reveals the origins of bread 14,400 years ago in northeastern Jordan},
title = {Archaeobotanical evidence reveals the origins of
bread 14,400 years ago in northeastern Jordan},
journal = {Proc Natl Acad Sci USA},
year = {2018},
howpublished = {\url{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6077754/}}
}
@article{fleischmann+history,
@misc{fleischmann+history,
author = {Fleischmann History},
title = {History of Fleischmann's},
howpublished = {\url{https://www.fleischmannsyeast.com/our-history/}},
note = {Accessed: 2023-12-04}
}
@article{evans+mill,
@misc{evans+mill,
author = {Jeremy Norman},
title = {Oliver Evans Builds the First Automated Flour Mill: Origins of the Integrated and Automated Factory},
title = {Oliver Evans Builds the First Automated Flour Mill: Origins
of the Integrated and Automated Factory},
howpublished = {\url{https://www.historyofinformation.com/detail.php?entryid=3567}},
note = {Accessed: 2023-12-04}
}
@article{first+mixer,
@misc{first+mixer,
author = {United States Patent office},
title = {Eastman Mixer for cream, eggs and liquors},
howpublished = {\url{https://patents.google.com/patent/US330829}},
note = {Accessed: 2023-12-04}
}
@article{egypt+beer,
@misc{egypt+beer,
author = {Smithsonian Magazine},
title = {Worlds Oldest Industrial-Scale Brewery Found in Egypt},
howpublished = {\url{https://www.smithsonianmag.com/smart-news/worlds-oldest-industrial-scale-brewery-found-egypt-180977026/}},
note = {Accessed: 2023-12-04}
}
@article{kitchenaid+history,
@misc{kitchenaid+history,
author = {KitchenAid},
title = {KitchenAid Brand History},
howpublished = {\url{https://www.kitchenaid.com/100year/history.html}},
note = {Accessed: 2023-12-04}
}
@article{aboriginal+grinding+stones,
@misc{aboriginal+grinding+stones,
author = {First Peoples - State Relations},
title = {Fact sheet: Aboriginal grinding stones},
howpublished = {\url{https://www.firstpeoplesrelations.vic.gov.au/fact-sheet-aboriginal-grinding-stones}},
@@ -193,9 +195,10 @@
}
@article{egyptian+bread,
title = {Investigation of ancient Egyptian baking and brewing methods by correlative microscopy},
title = {Investigation of ancient Egyptian baking
and brewing methods by correlative microscopy},
volume = {273},
DOI = {10.1126/science.273.5274.488},
doi = {10.1126/science.273.5274.488},
number = {5274},
journal = {Science},
author = {Samuel, Delwen},
@@ -203,7 +206,7 @@
pages = {488490}
}
@article{vienna+breadrolls,
@misc{vienna+breadrolls,
author = {Eben Norton Horsford},
title = {Report on Vienna bread},
year = {1875},
@@ -211,7 +214,7 @@
note = {Accessed: 2022-05-02}
}
@article{coeliac+disease,
@misc{coeliac+disease,
author = {Giovanni Battista Gasbarrini et al.},
title = {Coeliac disease: an old or a new disease? History of a pathology},
year = {2014},
@@ -219,7 +222,7 @@
howpublished = {\url{https://pubmed.ncbi.nlm.nih.gov/24435555/}}
}
@article{interview+karl+de+smedt,
@misc{interview+karl+de+smedt,
author = {Hendrik Kleinwächter},
title = {Interview with Karl de Smedt},
year = {2021},
@@ -251,7 +254,8 @@
@article{effects+oxygen+yeast+growth,
author = {Hiroshi Kuriyama et al.},
title = {Effects of oxygen supply on yeast growth and metabolism in continuous fermentation},
title = {Effects of oxygen supply on yeast growth
and metabolism in continuous fermentation},
year = {1993},
journal = {Journal of Fermentation and Bioengineering},
publisher = {Elsevier},
@@ -270,7 +274,8 @@
@article{leaf+surface+sugars+epiphytes,
author = {Julien Mercier},
title = {Role of Leaf Surface Sugars in Colonization of Plants by Bacterial Epiphytes},
title = {Role of Leaf Surface Sugars in Colonization of
Plants by Bacterial Epiphytes},
year = {2000},
journal = {Applied and Environmental Microbiology},
volume = {66,1}
@@ -278,7 +283,8 @@
@article{yeasts+biocontrol+agent,
author = {Gianluca Bleve et al.},
title = {Isolation of epiphytic yeasts with potential for biocontrol of Aspergillus carbonarius and A. niger on grape},
title = {Isolation of epiphytic yeasts with potential for
biocontrol of Aspergillus carbonarius and A. niger on grape},
year = {2006},
journal = {International Journal of Food Microbiology},
volume = {108,2}
@@ -286,13 +292,14 @@
@article{saccharomyces+cerevisiae+pathogen,
author = {Sabine Gognies et al.},
title = {Saccharomyces cerevisiae, a potential pathogen towards grapevine, Vitis vinifera},
title = {Saccharomyces cerevisiae, a potential pathogen
towards grapevine, Vitis vinifera},
year = {2001},
journal = {FEMS Microbiology Ecology},
volume = {37,2}
}
@article{pickled+foods+expiration,
@misc{pickled+foods+expiration,
title = {Hardcore hibernation},
author = {David Adam},
howpublished = {\url{https://www.nature.com/articles/news001019-9}},
@@ -300,7 +307,7 @@
note = {Accessed: 2022-06-23}
}
@article{old+spores,
@misc{old+spores,
title = {Do Pickles Go Bad?},
author = {thrillist.com},
howpublished = {\url{https://www.thrillist.com/eat/nation/do-pickles-go-bad-refrigerator-pickles-shelf-life}},
@@ -308,7 +315,7 @@
note = {Accessed: 2022-06-23}
}
@article{mold+anaerobic,
@misc{mold+anaerobic,
title = {Differences between Yeasts and Molds},
author = {Sagar Aryal},
howpublished = {\url{https://microbenotes.com/differences-between-yeasts-and-molds/}},
@@ -317,7 +324,8 @@
}
@article{effects+temperature+flavor+wine,
title = {Effects of Fermentation Temperature on Key Aroma Compounds and Sensory Properties of Apple Wine},
title = {Effects of Fermentation Temperature on Key Aroma
Compounds and Sensory Properties of Apple Wine},
author = {Bangzhu Peng et al.},
year = {2015},
journal = {Food science},
@@ -325,7 +333,9 @@
}
@article{effects+temperature+flavor,
title = {Analysis of domestic refrigerator temperatures and home storage time distributions for shelf-life studies and food safety risk assessment},
title = {Analysis of domestic refrigerator temperatures and home
storage time distributions for shelf-life
studies and food safety risk assessment},
author = {Anna Roccato et al.},
year = {2017},
journal = {Food Research},
@@ -333,7 +343,8 @@
}
@article{lactobacillus+sanfrancisco,
title = {Lactobacillus sanfrancisco a key sourdough lactic acid bacterium: a review},
title = {Lactobacillus sanfrancisco a key sourdough
lactic acid bacterium: a review},
author = {M. Gobbetti et al.},
year = {1997},
journal = {Food Microbiology},
@@ -349,7 +360,8 @@
}
@article{shelflife+acidity,
title = {The effect of pH on shelf-life of pork during aging and simulated retail display},
title = {The effect of pH on shelf-life of pork during
aging and simulated retail display},
author = {S F Holmer et al.},
year = {2009},
journal = {Meat Science},
@@ -357,7 +369,8 @@
}
@article{temperature+bacteria+corn,
title = {Effect of temperature (5-25°C) on epiphytic lactic acid bacteria populations and fermentation of whole-plant corn silage},
title = {Effect of temperature (5-25°C) on epiphytic lactic acid
bacteria populations and fermentation of whole-plant corn silage},
author = {Y Zhou et al.},
year = {2016},
journal = {Applied Microbiology and Biotechnology},
@@ -365,7 +378,8 @@
}
@article{acetic+acid+oxygen,
title = {Effects of Oxygen Availability on Acetic Acid Tolerance and Intracellular pH in Dekkera bruxellensis},
title = {Effects of Oxygen Availability on Acetic Acid Tolerance
and Intracellular pH in Dekkera bruxellensis},
author = {Claudia Capusoni et al.},
year = {2016},
journal = {Applied Microbiology and Biotechnology},
@@ -373,14 +387,15 @@
}
@article{starch+damage+flour,
title = {A review of milling damaged starch: Generation, measurement, functionality and its effect on starch-based food systems},
title = {A review of milling damaged starch: Generation, measurement,
functionality and its effect on starch-based food systems},
author = {Qingfa Wang et al.},
year = {2020},
journal = {Food chemistry},
volume = {15,31}
}
@article{how+does+gluten+work,
@misc{how+does+gluten+work,
title = {Gluten: How Does It Work?},
author = {Modernist Cuisine},
howpublished = {\url{https://modernistcuisine.com/mc/gluten-how-does-it-work/}},
@@ -389,7 +404,7 @@
}
@article{bassinage+technique,
@misc{bassinage+technique,
title = {The Bassinage Method},
author = {The Sourdough School},
howpublished = {\url{https://www.sourdough.co.uk/glossary/bassinage/}},
@@ -397,7 +412,7 @@
note = {Accessed: 2022-12-22}
}
@article{oxidization+dough,
@misc{oxidization+dough,
title = {Enzymes and pH matter, troubleshoot my loaf},
author = {Bread Blog},
howpublished = {\url{https://bread.blog/enzymes-and-ph-matter-troubleshoot-my-loaf/}},
@@ -405,7 +420,7 @@
note = {Accessed: 2022-12-28}
}
@article{stretch+and+fold+technique,
@misc{stretch+and+fold+technique,
title = {How And When To Stretch And Fold Your Sourdough},
author = {The Bread Code YouTube},
howpublished = {\url{https://www.youtube.com/watch?v=gMbZeUIVzZY}},
@@ -414,7 +429,8 @@
}
@article{rye+pentosans,
author = {Krzysztof Buksa and Anna Nowotna and Werner Praznik and Halina Gambu{\'s} and Rafa{\l} Ziobro and Jan Krawontka},
author = {Krzysztof Buksa and Anna Nowotna and Werner Praznik
and Halina Gambu{\'s} and Rafa{\l} Ziobro and Jan Krawontka},
journal = {Food Research International},
keywords = {Rye bread, Wholemeal, Pentosans, Starch},
number = {8},
@@ -443,12 +459,14 @@
author = {Rachana Poudel},
title = {Enzymatic Activities and Compostional Properties of Whole Wheat Flour},
year = {2018},
page = {67},
page = {67}
}
@article{review+of+sourdough+starters,
author = {Calvert MD, Madden AA et al.},
title = {A review of sourdough starters: ecology, practices, and sensory quality with applications for baking and recommendations for future research},
title = {A review of sourdough starters: ecology, practices, and
sensory quality with applications for baking
and recommendations for future research},
year = {2021},
page = {3},
url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8117929/#ref-36},
@@ -457,7 +475,8 @@
@article{gluten+development+temperatures,
author = {Koga S., Böcker U. et al.},
title = {Influence of temperature during grain filling on gluten viscoelastic properties and gluten protein composition.},
title = {Influence of temperature during grain filling on gluten
viscoelastic properties and gluten protein composition.},
year = {2015},
journal = {Journal of the Science of Food and Agriculture},
number = {96},
@@ -469,7 +488,21 @@
journal = {Cereal Chemistry},
number = {2},
pages = {239-252},
title = {Characterizing whole-wheat flours produced using a commercial stone mill, laboratory mills, and household single-stream flour mills},
title = {Characterizing whole-wheat flours produced using a
commercial stone mill, laboratory mills, and household
single-stream flour mills},
volume = {95},
year = {2018}
}
@article{freezing+toasting+bread,
title = {The impact of freezing and toasting on the
glycaemic response of White Bread},
volume = {62},
doi = {10.1038/sj.ejcn.1602746},
number = {5},
journal = {European Journal of Clinical Nutrition},
author = {Burton, P and Lightowler, H J},
year = {2007},
pages = {594599}
}

View File

@@ -70,7 +70,8 @@ before making another dough. Just use a very tiny amount of starter. For
\qty{1}{\kg} of flour I~would take around \qty{10}{\gram} of starter
(\qty{1}{\percent} in terms of baker's
math). If my starter is very young and had just been fed 6 to 8~hours ago I~might
end up going up to \qty{20}{\percent} of starter. Remember that your dough is nothing
end up going up to \qty{20}{\percent} of starter. As mentioned earlier,
remember that your dough is nothing
else other than a big starter. It will tremendously help you to figure out
your best next steps.
@@ -97,8 +98,8 @@ a longer fermentation before most gluten is broken down.
The regular sourdough starter is made at a hydration of around \qty{100}{\percent}.
This means the starter has equal parts of flour and water. This is the most
common and most universal sourdough starter there is. The starter has a good
balance of yeast and bacteria. After a feeding, the volume increases and
increases. After it reaches a certain peak, it will start to collapse again.
balance of yeast and bacteria. After a feeding, the volume of the dough
greatly increases. After it reaches a certain peak, it will start to collapse again.
The best way to judge whether the starter is ready is to look at signs such as
air pockets on the edges of your container. Also use the nose to evaluate the
@@ -278,13 +279,13 @@ production.
\label{fig:stollen}
\end{figure}
I~then proceeded and bought a cheap low cake flour in my nearby supermarket.
I~then proceeded and bought a cheap low-gluten cake flour in my nearby supermarket.
This flour before had caused me massive headaches in the past. I~made a sourdough bread
exactly how I~would normally do---I~had to reduce the hydration a bit as a low
gluten flour does not soak up as much water. Then I~replaced the starter with
the stiff starter. The dough felt amazing and was suddenly able to withstand a
much longer fermentation period. The bread had great oven spring and tasted
very mild. I~am still yet to find a proper explanation why the yeast part of
very mild. I~am still yet to find a proper scientific explanation why the yeast part of
the dough is more active. Maybe it is not. It could also be that the bacteria
is inhibited by the lack of water.
@@ -301,8 +302,9 @@ pockets of air on the sides of your container. Use your nose to smell the
starter. It should have a mild smell. It also tends to smell much more
alcoholic than the other starters.
When using a stiff starter, use around \qtyrange{1}{20}{\percent} depending on
the ripeness of your starter. In summer I~typically use around
When using a stiff starter, use around \qtyrange{1}{20}{\percent} starter for your
dough. This depends on the ripeness of your starter.
In summer I~typically use around
\qty{10}{\percent} and in winter around \qty{20}{\percent}. This way you can
also control the fermentation speed.
Mixing the starter can be a little bit annoying as it hardly homogenizes with

View File

@@ -128,9 +128,9 @@ properly hydrated. This step activates the microbial spores
in your mixture, drawing them out of hibernation and
reviving them.
Finally, cover your mixture but make sure the covering is
not airtight. I~like to use a glass and place another
inverted one on top. The container shouldn't be airtight,
you still want some gas exchange to be possible.
not airtight. You still want some gas exchange to be possible.
I~like to use a glass and place another
inverted one on top.
\begin{flowchart}[!htb]
\begin{center}

View File

@@ -10,13 +10,12 @@
\usepackage[mode=match, reset-text-family=false]{siunitx}
\usepackage{fontspec}
\usepackage{calc}
\usepackage{enumitem}
\usepackage[font={sffamily, sbseries}]{quoting}
\usepackage{enumitem}
\usepackage{microtype}
% style=nextline breaks on make4ht
\ifdefined\HCode\else
\usepackage{enumitem}
\setlist[description]{style=nextline, leftmargin=0cm}
\fi
@@ -106,6 +105,7 @@
{wheat-sourdough/}
{wheat-sourdough/shaping/}
{non-wheat-sourdough/}
{mix-ins/}
}
% Caption and figure size below images

View File

@@ -116,3 +116,9 @@ that you like.
This option is great for very long-term storage. Personally
I~like having a few slices of bread frozen as an emergency
backup when I~have had no time to bake.
A 2008 study hints that there might be some health
benefits to freezing and toasting your bread. By doing so
the starch molecules could become more resistant to digestion
and thus lower your body's blood sugar
response by almost 40\%~\cite{freezing+toasting+bread}.

View File

@@ -6,11 +6,15 @@
--fw-bold: 800;
--f-lh: 28px;
--c-black: #282828;
--c-black-background: #1c1819;
--fs-xxxl: 32px;
--fs-xxl: 26px;
--fs-xl: 24px;
--fs-l: 22px;
--fs-m: 16px;
--padding-hamburger: 5px;
--c-beige: #F3EDE6;
--border-radius: 7px;
}
@media (min-width: 1200px){
@@ -37,6 +41,7 @@ body{
font-family: var(--ff-sans);
font-weight: var(--fw-regular);
font-size: var(--fs-m);
color: var(--c-black);
}
@media screen and (min-width: 57rem) {
@@ -59,7 +64,6 @@ body{
/* ****************** */
main.main-content,main.titlepage,div.footnotes{
padding:1rem;
}
.permalink {
@@ -143,9 +147,7 @@ nav.TOC a, nav.TOC a:visited{
body{
background-color:#F8F8F8;
background: url("bg.jpg") center center no-repeat;
background-size: cover;
background-color: var(--c-beige);
}
a {
@@ -175,6 +177,7 @@ figure.texsource, figure.shellcommand, figure.htmlsource, figure.luasource, figu
.main-content {
line-height: var(--f-lh);
margin-left: 30px;
}
div.footnotes {
@@ -230,6 +233,7 @@ figcaption.caption {
list-style: none;
margin: 0;
padding: 0;
width: 300px;
}
.menu-items .chapterToc, .menu-items .likechapterToc {
@@ -240,6 +244,14 @@ figcaption.caption {
text-decoration: none;
}
.home-link {
display: block;
}
.home-title {
display: block;
}
@media (max-width: 768px) {
.toggle-menu-label {
display: block;
@@ -249,7 +261,8 @@ figcaption.caption {
.hamb{
cursor: pointer;
padding: 5px;
padding: var(--padding-hamburger);
margin-right: calc(var(--padding-hamburger) * -1);
display: flex;
align-items: center;
align-content: center;
@@ -284,7 +297,7 @@ figcaption.caption {
.menu {
background: var(--c-black);
display: flex;
padding: 10px 0px;
padding: 10px 1rem;
position: relative;
align-items: center;
justify-content: space-between;
@@ -303,13 +316,16 @@ figcaption.caption {
color: #000;
font-size: 20px;
font-weight: bold;
padding-left: 17px;
}
.chapterToc a, .sectionToc a, .subsectionToc a, .likechapterToc a {
padding-left: 17px;
}
.menu-items .chapterToc.home-link {
display: none;
}
.home-title {
display: none;
}
@@ -320,7 +336,7 @@ div.center {
margin-right: 0 !important;
}
main.titlepage h2.chapterHead {
main.main-content h2.chapterHead, main.main-content h2.likechapterHead {
margin-top: 0px;
}
@@ -368,3 +384,205 @@ h4 {
max-width: 100%;
margin-top: 1em;
}
img[alt~="PIC"], iframe, a img {
border-radius: var(--border-radius);
border: 2px solid var(--c-black);
}
main.main-content, div.footnotes, main.titlepage {
background-color: var(--c-beige);
}
.main-content {
flex: 1;
}
.wrapper {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.header {
background-color: var(--c-black-background);
width: 100%;
height: 340px;
display: flex;
align-content: center;
justify-content: center;
align-items: center;
margin-bottom: 40px;
}
.header img {
border-radius: 0px;
border: none;
width: 710px;
}
body {
display: block;
}
.book-content {
display: flex;
padding: 0px 40px;
max-width: 1200px;
}
.TOC.menu {
width: 330px;
}
.main-content {
width: 100%;
margin-bottom: 40px;
}
nav.TOC, nav.TOC a, nav.TOC a:visited {
background-color: transparent;
color: var(--c-black);
}
.menu-group {
display: flex;
flex-direction: column;
align-items: center;
}
.menu-inner {
border: 2px solid var(--c-black);
border-radius: var(--border-radius);
width: 100%;
}
.menu-entry {
padding: 1px;
border-radius: var(--border-radius);
}
.menu-arrow {
width: 14px;
border: none;
border-radius: 0px;
}
nav.TOC span:hover, nav.TOC span:hover *, nav.TOC span.chapterToc.selected, nav.TOC span.chapterToc.selected a {
background-color: transparent;
}
.menu-entry:hover {
background-color: #c8c8c8;
}
p.flowchart-image-wrapper {
background: white;
padding: 20px;
}
.menu-items .menu-group:last-of-type .menu-arrow {
display: none;
}
blockquote {
margin-left: 0px;
margin-right: 0px;
}
.crosslinks-bottom {
margin-top: 1em;
}
.crosslinks-bottom a {
display: inline-block;
border-radius: var(--border-radius);
border: 2px solid var(--c-black);
color: var(--c-black);
padding: 4px;
font-weight: bold;
text-decoration: none;
}
.crosslinks-bottom a.prev {
margin-right: 7px;
}
.crosslinks-bottom a:hover {
color: #444;
}
.menu-group.selected .menu-inner {
background-color: #c8c8c8;
}
.TOC.menu {
margin-bottom: 40px;
}
.mobile-banner {
display: none;
}
@media (max-width: 768px) {
.header {
display: none;
}
.book-content {
padding: 0px;
display: flex;
width: 100%;
flex-direction: column;
}
.main-content {
width: 100%;
margin-left: 0px;
box-sizing: border-box;
padding: 0px 14px;
margin-top: 20px;
max-width: 100%;
}
.TOC.menu {
width: 100%;
max-width: 100%;
background: var(--c-black-background);
box-sizing: border-box;
}
nav.TOC, nav.TOC a, nav.TOC a:visited {
color: #fff;
}
.menu-arrow {
display: none;
}
.menu-inner {
border: none;
border-radius: 0px;
}
.menu-group.selected .menu-inner {
background: var(--c-black-background);
}
p.flowchart-image-wrapper {
padding: 5px;
}
.menu-entry:hover {
background-color: transparent;
}
.TOC.menu {
margin-bottom: 0px;
}
.mobile-banner {
display: block;
background-color: var(--c-black-background);
padding: 5px;
}
}

View File

@@ -3,6 +3,7 @@
\textbf{USA} & \textbf{UK} & {\textbf{Germany}} & {\textbf{France}} & {\textbf{Italy}} \\ \midrule
Cake & Soft flour & T405 & T45 & 00 \\
All purpose & Plain flour & T550 & T55 & 0 \\
Bread flour & Bread flour & T405 or T550 & T45 or T55 & 00 or 0 \\
& & T812 & T80 & 1 \\
& & T1050 & T110 & 2 \\
Whole & Whole & Vollkorn & T150 & Integrale \\ \bottomrule

View File

@@ -7,8 +7,8 @@ Room temperature & The easiest option. Best for bread that is eaten
Crust typically stays crisp when humidity not too high.
& Bread dries out very quickly.\\
Room temperature in container & Good for up to a week. Catches mold more quickly.
& Bread needs to be toasted for crust to become crisp again.\\
Room temperature in airtight container & Good for up to a week.
& Bread needs to be toasted for crust to become crisp again. Catches mold more quickly\\
Fridge & Bread stays good for weeks. Can dry out a little bit when not using air-tight container.
& Bread needs to be toasted. Requires fridge and energy.\\

View File

@@ -111,7 +111,7 @@ I~would use a lot of rice flour in my banneton to dry out the surface of the dou
This way the dough wouldn't stick, despite being overfermented. However as it
turns out the stickiness issue has been my lack of understanding the fermentation
process. Now I~never use rice flour, except when trying to apply decorative scorings.
Properly managing fermentation results in a dough that is not sticky.
Managing properly fermentation results in a dough that is not sticky.
If you are noticing, during a stretch and fold or during shaping, that your dough
is suddenly overly sticky, then the best option is to use a loaf pan. Simply take
@@ -139,7 +139,7 @@ dough with less bacterial activity. A better yeast activity also will result
in less acidity in your final bread. If you are a chaser of a very strong tangy
flavor profile, then a stronger flour with more gluten will help.
When retarding sourdough (cold proofing in the refrigerator), temperature plays a
When retarding sourdough (cold-proofing in the refrigerator), temperature plays a
pivotal role in fermentation rates. As the dough chills in the refrigerator,
fermentation decelerates. Starting the retarding process at a warmer
temperature means this deceleration takes longer.
@@ -318,8 +318,8 @@ can heat up the surface of your dough faster. I~tested this by putting an apple
a Dutch oven and measuring its surface temperature using a barbecue thermometer.
I~then changed the steaming methods to plot how quickly the temperature
close to the surface changes. I~tested an ice cube inside of a preheated
Dutch oven, a preheated Dutch oven, a preheated Dutch oven with spritzes
of water on the apple's surface, a non-preheated Dutch oven where I~would only preheat
Dutch oven, a plain preheated Dutch oven, a preheated Dutch oven with spritzes
of water on the apple's surface and a non-preheated Dutch oven where I~would only preheat
the bottom part. The experiment then showed that the ice-cube method would heat up
the surface of the apple a lot quicker. When replicating this with a bread dough,
I~would achieve less oven spring.

View File

@@ -117,7 +117,7 @@ acid-producing bacteria. So it is recommended to keep
a backup of your original starter.
A downside to the liquid starter is the overall
enhanced bacterial activity. This means the baked bread
enhanced bacterial activity compared to yeast activity. This means the baked bread
will have more acidity (but milder). The dough will degrade
faster during fermentation. For this reason, you
will need to use strong high-gluten flour when using
@@ -345,6 +345,17 @@ made with such a starter. The flavor when taking a bite
is incredible. It nicely plays with soups as well. Just take
a bit of this bread and dip it in your soup.
\subsection{Why does my starter not float after using the float test?}
The float test may not reliably determine your starter's readiness for dough
inoculation. While it's effective for wheat-based doughs, where ample gas gets
trapped in the gluten matrix, it's less reliable for non-wheat doughs. In non-
wheat doughs, the gas generated during fermentation tends to escape, causing
the starter to likely sink.
For more accurate assessments of your starter's readiness, watch for bubbles
at the container's edge and consider its aroma. A mature starter should emit a
mildly sour scent without being overly pungent.
\section{Dough}
\subsection{Should I~autolyse my dough?}
@@ -450,8 +461,8 @@ Please also note that you can only make bread with
great oven spring when making wheat based doughs. When
starting with this hobby I~always wondered why my rye
breads would turn out so flat. Yes, rye has gluten, but
small particles called \emph{hemicelluloses} (arabinoxylan and beta-glucan)~\cite{rye-defects}.
prevent the dough from developing a gluten network it can
small particles called \emph{pentosans} (arabinoxylan and beta-glucan)~\cite{rye-defects}.
They prevent the dough from developing a gluten network it can
with wheat. Your efforts will be in vain, and your dough will
stay flat. Only spelt- and wheat-based doughs have the capability
of retaining the \ch{CO2} created by the fermentation.

View File

@@ -19,8 +19,8 @@ and technique than other types of bread. You have to perfectly
balance the fermentation process. You cannot ferment for too
short and also not for too long. The techniques you need to
learn also require a bit more skill. It took me several attempts
to get this right. One of the challenges I~faced was that
I~had the wrong flour. I~didn't properly know how to use my oven.
to get this right. I faced several challenges: I~had the wrong flour.
I~didn't properly know how to use my oven.
When should I~stop the fermentation? There is a lot of information
out there. I~dug through most of it and have tried almost everything.
In many cases the information was wrong; in other cases, I~found another
@@ -210,7 +210,7 @@ Find below an example recipe for 1 loaf including baker's math calculation:
\item \qty{400}{\gram} of bread flour
\item \qty{100}{\gram} of whole-wheat flour
% Manual unit so we can use emphasis
\item \emph{500~g of flour in total}
\item \emph{Total: 500~g of flour}
\item \qtyrange{300}{450}{\gram} of room temperature water (\qty{60}{\percent} up to \qty{90}{\percent}). More on
this topic in the next chapter.
\item \qty{50}{\gram} of stiff sourdough starter (\qty{10}{\percent})
@@ -222,10 +222,10 @@ how much flour you have. Let's say you have \qty{2000}{\gram} of flour available
recipe would look like this:
\begin{itemize}
\item \qty{1800}{\gram} of bread flour
\item \qty{200}{\gram} of whole-wheat flour
\item \qty{1600}{\gram} of bread flour
\item \qty{400}{\gram} of whole-wheat flour
% Manual unit so we can use emphasis again
\item \emph{2000 g of flour}, equaling 4 loaves
\item \emph{Total: 2000~g of flour}, equaling 4 loaves
\item \qty{1200}{\gram} up to \qty{1800}{\gram} of room temperature water (60 to \qty{90}{\percent})
\item \qty{200}{\gram} of stiff sourdough starter (\qty{10}{\percent})
\item \qty{40}{\gram} of salt (\qty{2}{\percent})
@@ -247,7 +247,7 @@ When a seed gets into contact initially, the outer layers soak up the water.
That's why when using whole-wheat (still containing these layers) you have to
use a little bit more water.
By forming gluten strands, water is absorbed into your dough. The higher the
By forming gluten strands, water is absorbed into your dough's gluten matrix. The higher the
protein value, the more water can be used.
Some bakers like to use highly hydrated doughs to create fluffier
@@ -334,7 +334,7 @@ and not fluffy crumb. That is because only very little gluten is broken down whe
finishing the fermentation period in 1~hour. If you were to slow things down,
the dough would look completely different.
Try this again and use much less yeast. This is the
secret of Neapolitan Pizza. Only a tiny bit of yeast is used to make the
secret of Neapolitan pizza. Only a tiny bit of yeast is used to make the
dough. My default pizza recipe calls for around \qty{150}{\mg} of dry
yeast per \unit{\kg} of flour. Give it a shot yourself the next time you
make a yeast-based dough. Try to push the fermentation to at least 8~hours.
@@ -409,7 +409,7 @@ slower the process.
While food is available, the microorganisms will reproduce and increase in
quantity. The process is a self-limiting: it stops when there is no
more food available. This can be compared to wine making where
the yeast ultimately dies as ethanol levels increase. The ethanol creates an
the yeast ultimately sporulates and dies as ethanol levels increase. The ethanol creates an
environment that makes it impossible for other
microorganisms to join the feast. The same thing happens with the acidity
created by the bacteria. The high acidity slows the fermentation process and
@@ -445,12 +445,13 @@ I~use around \qty{5}{\percent} of sourdough starter in summer times
kitchen). In winter times I~opt for around \qty{10}{\percent} up to
\qty{20}{\percent} sourdough starter (kitchen temperature around
\qty{20}{\degreeCelsius} (\qty{68}{\degF})). This
allows me to use a sourdough starter that's not in perfect condition. Your
allows me to use a sourdough starter that's not in perfect condition. As
explained earlier, your
bread dough is essentially a gigantic starter. The low inoculation rate allows
the starter to regrow inside your main dough into a desirable balance.
Furthermore, the enzymes have enough time to break down the flour. This also
allows me to skip the so-called autolysis step completely (more in the next chapter).
Making dough becomes very simple.
This greatly simplifies the whole process.
\section{Autolysis}%
\label{section:autolysis}
@@ -477,7 +478,7 @@ dough will start to taste sweeter and sweeter. The protease and amylase enzymes
are doing their job. The same process is used when making oat milk. By letting
the mixture sit for some time, enzymes work on the oats. The taste is perceived as
sweeter and more appreciated. This process is further accelerated the more
whole-wheat your flour is. The hull contains more enzymes. The gluten network
whole-grain your flour is. The hull contains more enzymes. The gluten network
will ultimately tear, and your dough flattens out. For wheat sourdough, this is
your worst enemy. When this happens, your dough will become leaky and release
all that precious gas created during the fermentation. You need to find the
@@ -652,12 +653,16 @@ the sign of a not well enough developed gluten network.
\label{fig:dough-touch-points}
\end{figure}
Kneading more is great in almost all cases. You'll have a stronger
gluten network. Unless you are making soft milk breads, you
might want to have a more extensible dough, to begin with. For every
other type of wheat-based dough, kneading is helpful. When you use
a stand mixer, you can run into the issue of kneading too much. This
is almost impossible though. Even after kneading for 30~minutes on medium
Kneading more is generally beneficial in almost all cases, as it results in a
stronger gluten network. However, when making soft milk breads, you might prefer
a more extensible dough from the start. In this scenario, excessive kneading
could lead to a chewier final bread, which is not desirable if you aim for a
fluffier texture. Achieving this fluffier dough can be accomplished by kneading
less. While this is an exception, properly kneading your wheat-based doughs
is generally advised.
When you use a stand mixer, you can run into the issue of kneading too much. This
is almost impossible in practice though. Even after kneading for 30~minutes on medium
speed, my doughs hardly ever were over-kneaded. The moment you knead
too much, the color of the dough can begin to change. You mostly
notice this, though, during baking. The resulting loaf looks very
@@ -1071,7 +1076,8 @@ so, you will be gluing together the two sticky bottom sides. The top smooth side
not be sticky in your hands, while the bottom rough surface should tend
to stick to your hands. Rotate the container
and repeat the same thing from the other side. Rotate the container 90°
clockwise and then repeat the process once again. Rotate the container another 180° clockwise
and then repeat the process once again. Rotate the container another 180° in
the same direction
and repeat the fold one last time. By doing so you have applied 4 folds in total. Your
dough should now stay in place and resist flowing outwards\footnote{Please
also refer to~\cite{stretch+and+fold+technique} for a video showing you how to
@@ -1150,7 +1156,7 @@ Now that you have cut your dough, the resulting chunks are not in an equal shape
This is problematic for the next stage when you are shaping your dough.
The resulting loaves wouldn't look nice and even. You would probably
end up with areas that tear the moment you are shaping your dough.
You wouldn't start the whole process on a good foundation. For that
You wouldn't start the whole proofing process on a good foundation. For that
reason, you need to pre-shape your dough.
Pre-shaping is done for several reasons:
@@ -1446,7 +1452,7 @@ There are two proofing techniques. One strategy is to proof the dough
at room temperature whereas the other proofs the dough in the fridge.
Fridge-proofing is also commonly known as retarding.
Some bakers claim that cold proofing improves the final flavor of the bread.
Some bakers claim that cold-proofing improves the final flavor of the bread.
In all the loaves that I~retarded I~could not tell a difference
in terms of flavor for cold-proofed doughs. The microorganisms work
at a slower rate at colder temperatures. But I~doubt that they alter
@@ -1463,7 +1469,7 @@ of retarding and flavor development.
\end{center}
\end{flowchart}
To me, the sole purpose of cold proofing is its ability to allow you
To me, the sole purpose of cold-proofing is its ability to allow you
to better manage the timing of the whole process. Assuming you finished shaping
your dough at 10 pm, chances are you wouldn't want to wait for another
2~hours to proof the dough and then another 1 hour to bake it. In this case,
@@ -1481,13 +1487,13 @@ dough is big. It can be as little as 6~hours later up to 24~hours later.
Assuming you made an overnight dough and your dough is ready in the morning,
the situation might be different. You potentially want to bake the dough directly
for breakfast, or at lunchtime. In this case, you wouldn't want to proof the dough for
another 6~hours in the fridge. Room temperature proofing is your technique
another 6~hours in the fridge. Room temperature-proofing is your technique
of choice.
To summarize, choose the technique that works for you depending on your
schedule and availability.
\subsection{Room temperature proofing}
\subsection{Room temperature-proofing}
The easiest and most reliable way to proof your dough is to proof the dough at
room temperature. It is my method of choice if my schedule allows it. This method
@@ -1527,7 +1533,7 @@ over-proofed dough when the dough suddenly becomes very sticky. At the same
time, the dough is likely to collapse during baking and will not spring back.
Generally, it is better to end proofing too early rather than too late.
\subsection{Cold proofing (retarding)}
\subsection{Cold-proofing (retarding)}
The second proofing option is to place your dough inside the fridge for
proofing. This option is great if you do not want to bake the dough
@@ -1566,7 +1572,7 @@ meter. By checking the amount of piled-up acidity you can ensure
each of your doughs has the right amount of acidity. Opt for an iterative
approach and check the pH for multiple proofing times. Find the pH
the value that creates the best bread for you. Once you have identified
your perfect pH level you can resort to that value on all following
your perfect pH value you can resort to that number on all following
doughs. See Table~\ref{table:sample-ph-values} for some sample pH values
to follow.
@@ -1667,11 +1673,11 @@ until you are happy with your technique. After proofing, you only
have a single chance to practice scoring. It's either hit or miss.
An additional trick that can help you to combine the benefits
of room temperature proofing and easy cold proofing scoring
of room temperature-proofing and easy cold-proofing scoring
is to place your dough in the freezer for 30~minutes before baking.
Once you notice your dough is almost done proofing, move it to the
freezer. The freezer will dry out the surface even further and make
scoring easier.
freezer. The freezer will dry out the doughs's surface even further
while also lowering its viscosity, making scoring easier.
Another interesting trick is to bake your dough for 30 seconds without steam.
The hot air will dry out the dough's surface even further and simplify

View File

@@ -1,7 +1,7 @@
.DEFAULT_GOAL := build_pdf
DOCKER_IMAGE := ghcr.io/hendricius/the-sourdough-framework
DOCKER_CMD := docker run -it -v $(PWD):/opt/repo --platform linux/x86_64 $(DOCKER_IMAGE) /bin/bash -c
DOCKER_CMD := docker run --rm -it -v $(PWD):/opt/repo --platform linux/x86_64 $(DOCKER_IMAGE) /bin/bash -c
.PHONY: bake build_pdf build_docker_image push_docker_image validate website
.PHONY: print_os_version start_shell printvars show_tools_version mrproper

View File

@@ -5,6 +5,8 @@ GEM
method_source (1.0.0)
nokogiri (1.15.3-arm64-darwin)
racc (~> 1.4)
nokogiri (1.15.3-x86_64-darwin)
racc (~> 1.4)
nokogiri (1.15.3-x86_64-linux)
racc (~> 1.4)
pry (0.14.2)
@@ -14,6 +16,7 @@ GEM
PLATFORMS
arm64-darwin-22
x86_64-darwin-22
x86_64-linux
DEPENDENCIES

BIN
website/assets/arrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

BIN
website/assets/banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

View File

@@ -52,18 +52,27 @@ class ModifyBuild
text = fix_titles(text)
text = fix_menu(text)
text = fix_cover_page(text) if is_cover_page?(filename)
text = add_header_banner(text)
text = add_home_link_to_menu(text)
text = fix_anchor_hyperlinks_menu(text)
text = add_favicon(text)
text = add_meta_tags(text, filename)
text = remove_section_table_of_contents(text)
text = mark_menu_as_selected_if_on_page(text, extract_file_from_path(filename))
text = add_canonical_for_duplicates(text, extract_file_from_path(filename))
text = include_javascript(text)
text = add_text_to_coverpage(text, extract_file_from_path(filename))
text = fix_js_dependency_link(text)
text = fix_list_of_tables_figures_duplicates(text)
text = add_anchors_to_headers(text)
text = create_menu_groups(text)
text = fix_top_links(text)
text = fix_flowchart_background(text)
text = remove_empty_menu_links(text)
text = fix_bottom_cross_links(text)
text = insert_mobile_header_graphic(text)
text = fix_https_links(text)
text = add_anchors_to_glossary_items(text) if is_glossary_page?(filename)
text = mark_menu_as_selected_if_on_page(text, extract_file_from_path(filename))
text = fix_menus_list_figures_tables(text) if is_list_figures_tables?(filename)
text = fix_list_of_figures_tables_display(text) if is_list_figures_tables?(filename)
File.open(filename, "w:UTF-8") {|file| file.puts text }
@@ -75,6 +84,10 @@ class ModifyBuild
end
end
def is_glossary_page?(filename)
filename.include?("Glossary.html")
end
def is_list_figures_tables?(filename)
["listfigurename.html", "listtablename.html", "listoflocname.html", "bibname.html"].any? do |name|
filename.include?(name)
@@ -146,6 +159,45 @@ class ModifyBuild
doc.to_html
end
def create_menu_groups(text)
doc = build_doc(text)
groups = build_groups(doc.css(".menu-items > span"))
menu_el = doc.css(".menu-items")[0]
html = ""
groups.each do |group|
out = ""
group.each do |g|
if g.to_html.length > 0
out += %Q{<div class="menu-entry">#{g.to_html}</div>}
end
end
html += %Q{<div class="menu-group">
<div class="menu-inner">
#{out}
</div>
<img class="menu-arrow" src="arrow.png" />
</div>}
end
menu_el.inner_html = html
doc.to_html
end
def build_groups(menu_items)
final_groups = []
tmp_groups = []
menu_items.each_with_index do |el, index|
# Get next item and check if it is a lower entry level in the menu.
next_item = menu_items[index + 1]
if next_item && next_item["class"].include?("chapterToc") || next_item.nil?
final_groups.push(tmp_groups.push(el))
tmp_groups = []
else
tmp_groups.push(el)
end
end
final_groups
end
# By default the titles look boring. This changes the titles of all the
# pages and adds the book name as appendix
def fix_titles(text)
@@ -231,7 +283,7 @@ class ModifyBuild
content = doc.css("body > .main-content")[0]
menu = doc.css("body > nav")[0]
content = %Q{
<main class="titlepage">
<main class="titlepage main-content">
<a href="Thehistoryofsourdough.html">
<img src="cover-page.jpg" />
<div class="version"><p>#{version}</p></div>
@@ -251,7 +303,7 @@ class ModifyBuild
menu = doc.css(".menu-items")[0]
return text if menu.nil?
home_html = %Q{<span class="chapterToc home-link"><a href="/">Home</a></span>}
home_html = %Q{<span class="chapterToc home-link"><a href="/">🍞 The Sourdough Framework</a></span>}
# Normally the flowcharts link should be automatically added, but there
# seems to be a problem in the generation. See:
# https://github.com/hendricius/the-sourdough-framework/pull/188 for more
@@ -262,12 +314,12 @@ class ModifyBuild
<span class="link_text">List of Flowcharts</span>
</a>
</span>
<span class="chapterToc">
<span class="chapterToc listtables-menu">
<a href="listtablename.html">
<span class="link_text">List of Tables</span>
</a>
</span>
<span class="chapterToc">
<span class="chapterToc listfigures-menu">
<a href="listfigurename.html">
<span class="link_text">List of Figures</span>
</a>
@@ -278,9 +330,15 @@ class ModifyBuild
</a>
</span>
<span class="chapterToc">
<a href="https://breadco.de/kofi">
<span class="chapter_number"></span>
<span class="link_text">Donate</span>
<a href="https://www.the-bread-code.io/book.pdf">
<span class="chapter_number"></span>
<span class="link_text">Book .PDF</span>
</a>
</span>
<span class="chapterToc">
<a href="https://www.the-bread-code.io/book.epub">
<span class="chapter_number">⬇️</span>
<span class="link_text">Book .EPUB</span>
</a>
</span>
<span class="chapterToc">
@@ -289,11 +347,55 @@ class ModifyBuild
<span class="link_text">Hardcover Book</span>
</a>
</span>
<span class="chapterToc">
<a href="https://www.github.com/hendricius/the-sourdough-framework">
<span class="chapter_number">⚙️</span>
<span class="link_text">Source code</span>
</a>
</span>
<span class="chapterToc">
<a href="https://breadco.de/kofi">
<span class="chapter_number">⭐️</span>
<span class="link_text">Support me</span>
</a>
</span>
}
menu.inner_html = "#{home_html} #{menu.inner_html} #{appendix_html}"
doc.to_html
end
# Adds a header banner to each page
def add_header_banner(text)
doc = build_doc(text)
body = doc.css("body")[0]
footnotes = doc.css(".footnotes")[0]
main = doc.css(".main-content")[0]
menu = doc.css(".menu")[0]
if main.nil? || menu.nil?
#raise ArgumentError.new("Don't know how to handle")
return doc.to_html
end
body.inner_html = %Q{
<div class='wrapper'>
#{build_header_html}
<div class='book-content'>
#{menu.to_html}
<main class='main-content'>
#{main.inner_html}
#{footnotes ? footnotes.to_html : ''}
</main>
</div>
</div>
}
return doc.to_html
end
def build_header_html
%Q{
<div class="header"><img src="banner.png"></div>
}
end
# Some of the menu links are added in the wrong order. Remove them since we
# later on add them in the structure that we want.
def remove_duplicate_entries_menu(text)
@@ -411,13 +513,14 @@ class ModifyBuild
"Sourdoughstartertypes.html" => "og_image_sourdough_starter_types.png",
"Storingbread.html" => "og_image_storing_bread.png",
"Thehistoryofsourdough.html" => "og_image_the_history_of_sourdough.png",
"Wheatsourdough.html" => "og_image_troubleshooting.png",
"Wheatsourdough.html" => "og_image_wheat_sourdough.png",
"Troubleshooting.html" => "og_image_troubleshooting.png",
"Mixins.html" => "og_image_mixins.png",
}
end
def mark_menu_as_selected_if_on_page(text, filename)
doc = build_doc(text)
return doc.to_html
selected = doc.css(".menu-items .chapterToc > a").find do |el|
el["href"] == ""
@@ -432,7 +535,17 @@ class ModifyBuild
# Special case for the flowcharts page which is added by us to the menu.
# This needs to be done for future manually added pages too
if "listoflocname.html" == filename
doc.css(".menu-items .chapterToc.flowcharts-menu")[0].add_class("selected")
doc.css(".menu-items .chapterToc.flowcharts-menu")[0].ancestors(".menu-group")[0].add_class("selected")
return doc.to_html
end
if "listtablename.html" == filename
doc.css(".menu-items .chapterToc.listtables-menu")[0].ancestors(".menu-group")[0].add_class("selected")
return doc.to_html
end
if "listfigurename.html" == filename
doc.css(".menu-items .chapterToc.listfigures-menu")[0].ancestors(".menu-group")[0].add_class("selected")
return doc.to_html
end
@@ -441,7 +554,7 @@ class ModifyBuild
# Fix that when the menu is selected the href is empty. This way users can
# click the menu and the page will reload.
selected["href"] = filename
selected.parent.add_class("selected")
selected.ancestors(".menu-group")[0].add_class("selected")
doc.to_html
end
@@ -472,14 +585,28 @@ class ModifyBuild
def add_text_to_coverpage(text, filename)
return text unless is_cover_page?(filename)
doc = build_doc(text)
content = doc.css(".titlepage")[0]
raise ArgumentError.new(".titlepage not found in HTML") if content.nil?
content.add_class("main-content")
content = doc.css(".main-content")[0]
content.inner_html = "#{build_cover_page_content} #{content.inner_html}"
doc.to_html
end
def add_anchors_to_glossary_items(text)
doc = build_doc(text)
content = doc.css("dt.description")
content.each do |el|
term = el.css("span")[0]
item_name = term&.text
# No anchor for whatever reason
next unless item_name
anchor = item_name.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
copy_link = %Q{<a href="#term-#{anchor}" class="permalink">🔗</a>}
el.set_attribute("id", "term-#{anchor}")
term.inner_html = "#{term.inner_html}#{copy_link}"
end
doc.to_html
end
def build_cover_page_content
%Q{
<h2 class="chapterHead home-title">
@@ -586,13 +713,10 @@ class ModifyBuild
# this.
def fix_menus_list_figures_tables(text)
doc = build_doc(text)
content = doc.css(".menu-items > .subsectionToc, .menu-items > .sectionToc")
content = doc.css(".menu-group .subsectionToc, .menu-group .sectionToc")
content.each do |node|
node.remove
node.ancestors(".menu-entry")[0].remove
end
doc.css(".menu-items > .lotToc").each(&:remove)
doc.css(".menu-items > .lofToc").each(&:remove)
doc.css(".menu-items > br").each(&:remove)
doc.to_html
end
@@ -626,6 +750,69 @@ class ModifyBuild
end
doc.to_html
end
# For some reason some of the links are broken in the conversion process.
# They have https:/www and are missing a slash.
def fix_https_links(text)
text.gsub(/https:\/(?!\/)/, 'https://')
end
def fix_top_links(text)
doc = build_doc(text)
el = doc.css(".crosslinks-top")[0]
el.remove if el
doc.to_html
end
def remove_empty_menu_links(text)
doc = build_doc(text)
menus = doc.css(".menu-group")
menus.each do |m|
element = m.css("span.chapterToc")[0]
next unless element
if element.inner_html == "" || element.inner_html == " "
m.remove
end
end
doc.to_html
end
def insert_mobile_header_graphic(text)
doc = build_doc(text)
content = doc.css(".TOC.menu")[0]
content.after('<div class="mobile-banner"><img src="banner.png" /></div>')
doc.to_html
end
def fix_flowchart_background(text)
doc = build_doc(text)
images = doc.css("img")
images.each do |img|
src = img.attr("src")
is_flowchart = src.include?(".svg")
next unless is_flowchart
img.parent.add_class("flowchart-image-wrapper")
end
doc.to_html
end
def fix_bottom_cross_links(text)
doc = build_doc(text)
link_cont = doc.css(".crosslinks-bottom")[0]
return doc.to_html unless link_cont
links = doc.css(".crosslinks-bottom a")
prev_link = links.find {|l| l.inner_html == "prev" }
next_link = links.find {|l| l.inner_html == "next" }
prev_html = prev_link ? "<a class='prev' href='#{prev_link.attr('href')}'>Previous page</a>" : ''
next_html = next_link ? "<a class='next' href='#{next_link.attr('href')}'>Next page</a>" : ''
link_cont.inner_html = %Q{
#{prev_html}
#{next_html}
}
doc.to_html
end
end
ModifyBuild.build