Merge branch 'main' into 225-ebook-situation
11
.github/workflows/test-book-website-pull-request.yml
vendored
Normal 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
|
||||||
10
.github/workflows/test-book-website-push.yml
vendored
Normal 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
|
||||||
25
.github/workflows/test-book-website.yml
vendored
@@ -1,17 +1,14 @@
|
|||||||
name: Test building book and website
|
name: Test book and website for given image
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
workflow_call:
|
||||||
|
inputs:
|
||||||
env:
|
docker-image:
|
||||||
IMAGE: ghcr.io/${{ github.repository }}:${{ github.event.pull_request.head.ref }}
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-push-image:
|
test-book-website:
|
||||||
uses: ./.github/workflows/docker-build-push.yml
|
|
||||||
|
|
||||||
test-building-book-website:
|
|
||||||
needs: build-and-push-image
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Set up git repository
|
- name: Set up git repository
|
||||||
@@ -19,7 +16,7 @@ jobs:
|
|||||||
- name: Print dependency versions
|
- name: Print dependency versions
|
||||||
uses: addnab/docker-run-action@v3
|
uses: addnab/docker-run-action@v3
|
||||||
with:
|
with:
|
||||||
image: ${{ env.IMAGE }}
|
image: ${{ inputs.docker-image }}
|
||||||
options: -v ${{ github.workspace }}:/app
|
options: -v ${{ github.workspace }}:/app
|
||||||
run: |
|
run: |
|
||||||
cd /app/book
|
cd /app/book
|
||||||
@@ -27,7 +24,7 @@ jobs:
|
|||||||
- name: Print build variables
|
- name: Print build variables
|
||||||
uses: addnab/docker-run-action@v3
|
uses: addnab/docker-run-action@v3
|
||||||
with:
|
with:
|
||||||
image: ${{ env.IMAGE }}
|
image: ${{ inputs.docker-image }}
|
||||||
options: -v ${{ github.workspace }}:/app
|
options: -v ${{ github.workspace }}:/app
|
||||||
run: |
|
run: |
|
||||||
cd /app/book
|
cd /app/book
|
||||||
@@ -35,7 +32,7 @@ jobs:
|
|||||||
- name: Test baking the release versions
|
- name: Test baking the release versions
|
||||||
uses: addnab/docker-run-action@v3
|
uses: addnab/docker-run-action@v3
|
||||||
with:
|
with:
|
||||||
image: ${{ env.IMAGE }}
|
image: ${{ inputs.docker-image }}
|
||||||
options: -v ${{ github.workspace }}:/app
|
options: -v ${{ github.workspace }}:/app
|
||||||
run: |
|
run: |
|
||||||
cd /app/book
|
cd /app/book
|
||||||
@@ -51,7 +48,7 @@ jobs:
|
|||||||
- name: Test building website
|
- name: Test building website
|
||||||
uses: addnab/docker-run-action@v3
|
uses: addnab/docker-run-action@v3
|
||||||
with:
|
with:
|
||||||
image: ${{ env.IMAGE }}
|
image: ${{ inputs.docker-image }}
|
||||||
options: -v ${{ github.workspace }}:/app
|
options: -v ${{ github.workspace }}:/app
|
||||||
run: |
|
run: |
|
||||||
cd /app/book
|
cd /app/book
|
||||||
|
|||||||
2
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
|
.DS_Store
|
||||||
*.xbb
|
*.xbb
|
||||||
*.aux
|
*.aux
|
||||||
*.fdb_latexmk
|
*.fdb_latexmk
|
||||||
@@ -14,6 +15,7 @@
|
|||||||
*.dlog
|
*.dlog
|
||||||
*.bak
|
*.bak
|
||||||
*.opf
|
*.opf
|
||||||
|
.DS_Store
|
||||||
book/book.out
|
book/book.out
|
||||||
.vscode/
|
.vscode/
|
||||||
book/bookch*
|
book/bookch*
|
||||||
|
|||||||
@@ -55,6 +55,11 @@ RUN wget https://github.com/mgieseki/dvisvgm/releases/download/3.1.2/dvisvgm-3.1
|
|||||||
make && \
|
make && \
|
||||||
make install
|
make install
|
||||||
|
|
||||||
|
RUN git clone https://github.com/michal-h21/make4ht.git && \
|
||||||
|
cd make4ht && \
|
||||||
|
make && \
|
||||||
|
make install
|
||||||
|
|
||||||
# Make sure everything is UTF-8
|
# Make sure everything is UTF-8
|
||||||
RUN echo "export LC_ALL=en_US.UTF-8" >> /root/.bashrc && \
|
RUN echo "export LC_ALL=en_US.UTF-8" >> /root/.bashrc && \
|
||||||
echo "export LANG=en_US.UTF-8" >> /root/.bashrc
|
echo "export LANG=en_US.UTF-8" >> /root/.bashrc
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ acid? How would the taste change?
|
|||||||
methods. In this case I~used a Dutch oven and an apple as dough
|
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
|
replacement. All the apples were coming from the fridge. The temperature
|
||||||
was measured using a barbecue thermometer. The more steam, the faster
|
was measured using a barbecue thermometer. The more steam, the faster
|
||||||
the surface temperature increases.}
|
the apple's surface temperature increases.}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
As the temperature increases further the crust thickens. The Maillard reaction
|
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
|
In many cases, it makes sense to bake multiple
|
||||||
loaves in one go. It makes the whole process more
|
loaves in one go. It makes the whole process more
|
||||||
efficient as you have to knead less per loaf. The time it
|
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
|
you don't require as much energy. You don't have
|
||||||
to preheat your oven twice for each loaf.
|
to preheat your oven twice for each loaf.
|
||||||
|
|
||||||
|
|||||||
@@ -211,9 +211,11 @@ tweak just by adjusting the speed of your dough's fermentation.
|
|||||||
|
|
||||||
\section{Yeast}
|
\section{Yeast}
|
||||||
|
|
||||||
Yeasts are single-celled microorganisms belonging to the fungi kingdom, and
|
Yeasts are single-celled microorganisms belonging to the fungi kingdom. They
|
||||||
spores that are hundreds of millions of years old have been identified by
|
can reproduce through either budding or by building spores. The spores are
|
||||||
scientists. There are a wide variety of species --- so far, about \num{1500}
|
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,
|
have been identified. Unlike other members of the fungi kingdom such as mold,
|
||||||
yeasts do not ordinarily create a mycelium
|
yeasts do not ordinarily create a mycelium
|
||||||
network~\cite{molecular+mechanisms+yeast}.\footnote{For one interesting
|
network~\cite{molecular+mechanisms+yeast}.\footnote{For one interesting
|
||||||
@@ -332,7 +334,7 @@ so that they could penetrate the tissue of the plants.
|
|||||||
\section{Bacteria}
|
\section{Bacteria}
|
||||||
|
|
||||||
The other most dominant microbial antagonists in your sourdough are bacteria.
|
The other most dominant microbial antagonists in your sourdough are bacteria.
|
||||||
In fact, they are so dominant that they outnumber the yeast in your dough
|
In fact, they are so dominant that they outnumber the yeast in your dough
|
||||||
100~to~1. Whereas yeast provides leavening power, bacteria create the distinct
|
100~to~1. Whereas yeast provides leavening power, bacteria create the distinct
|
||||||
flavours for which sourdough has been named. These are due to the acidic
|
flavours for which sourdough has been named. These are due to the acidic
|
||||||
byproducts that result from bacterial feeding. As a bonus, these acids
|
byproducts that result from bacterial feeding. As a bonus, these acids
|
||||||
@@ -341,8 +343,8 @@ breads~\cite{shelflife+acidity}.
|
|||||||
|
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\includegraphics[width=1.0\textwidth]{bacteria-microscope}
|
\includegraphics[width=1.0\textwidth]{bacteria-microscope}
|
||||||
\caption[Bacteria under the microscope]{Fructilactobacillus Sanfranciscensis
|
\caption[Bacteria under the microscope]{Fructilactobacillus
|
||||||
under the microscope.}%
|
sanfranciscensis under the microscope.}%
|
||||||
\label{lactobacillus-franciscensis-microscope}
|
\label{lactobacillus-franciscensis-microscope}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
|||||||
@@ -7,3 +7,12 @@
|
|||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
|
.float {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
.float img {
|
||||||
|
max-width: 100% !important;
|
||||||
|
height: auto;
|
||||||
|
object-fit: contain;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ To make a flatbread no oven is required; all you need is a stove.
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
This type of bread is super simple to make as you can skip
|
This type of bread is super simple to make as you can skip
|
||||||
a lot of the technique that is normally required. The flatbread
|
a lot of the technique that is normally required to make wheat doughs.
|
||||||
can be made with all kinds of flours. You can even use
|
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
|
flour without gluten, such as corn or rice flour, to make the
|
||||||
dough. To make the flatbread a little more fluffy, you
|
dough. To make the flatbread a little more fluffy, you
|
||||||
can use a little bit of wheat flour. The developing gluten
|
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
|
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
|
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
|
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
|
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
|
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
|
sticky dough. You can opt for a hydration of \qtyrange{90}{100}{\percent}, almost
|
||||||
resembling a default sourdough starter. Just like with flatbread,
|
resembling a default sourdough starter. Just like with flatbread,
|
||||||
the high humidity helps to make a more airy, fluffy crumb. At
|
the high humidity helps to make a more airy, fluffy crumb. The bread will
|
||||||
the same time the bread will be a bit chewier. This
|
also be a bit chewier. This type of bread made with rye is my family's favorite
|
||||||
type of bread made with rye is my family's favorite style of bread.
|
style of bread. The hearty rye flavor paired with the sticky consistency really
|
||||||
The hearty rye flavor paired with the sticky consistency really
|
|
||||||
makes an excellent sandwich bread.
|
makes an excellent sandwich bread.
|
||||||
|
|
||||||
To improve the structure you can also consider using around \qty{50}{\percent}
|
To improve the structure you can also consider using around \qty{50}{\percent}
|
||||||
@@ -385,13 +385,12 @@ and tools are required.
|
|||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Normally you mix your dough, when using wheat you make sure that you mix
|
When using wheat, make sure to mix your dough enough to develop a gluten network.
|
||||||
enough to develop a gluten network. You allow the dough to reach a certain
|
Allow the dough to reach a certain size increase during the fermentation.
|
||||||
size increase during the fermentation, afterwards you divide and pre-shape the
|
Afterward, divide and pre-shape the dough into the desired visual shape you
|
||||||
dough into the desired visual shape that you like. Each shape requires a
|
would like. Each shape requires a different technique. Sometimes achieving
|
||||||
different technique. Sometimes achieving exactly the right shape can be
|
the right shape can be challenging. Making a baguette, for instance,
|
||||||
challenging, making a baguette for instance, requires you to perform more
|
requires performing more steps. Mastering this technique takes several attempts.
|
||||||
steps. Mastering this technique takes several attempts.
|
|
||||||
|
|
||||||
Once the dough is shaped, it is proofed again for a certain
|
Once the dough is shaped, it is proofed again for a certain
|
||||||
period of time. Once the dough is ready, a sharp tool such
|
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
|
But after baking you will be rewarded with a beautiful bread
|
||||||
with great taste and consistency.
|
with great taste and consistency.
|
||||||
|
|
||||||
There is a fully dedicated recipe and tutorial
|
There is a dedicated recipe and tutorial for this type of bread in the
|
||||||
for this type of bread in the~''\nameref{chapter:wheat-sourdough}''~Chapter.
|
\nameref{chapter:wheat-sourdough} chapter.
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
\draw[line width=1pt] (\textwidth,0.1) -- (\textwidth,-0.1);
|
\draw[line width=1pt] (\textwidth,0.1) -- (\textwidth,-0.1);
|
||||||
|
|
||||||
% Full timeline width for billion years
|
% 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
|
% 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);
|
\draw[stealth-stealth, line width=1pt] (0,-1.0) -- node[midway, timeline_timespan] {1.11 billion years} ({\segmentwidth * 3},-1.0);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
\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 [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, below of=init, node distance=4cm] (poke) {Poke the dough};
|
||||||
\node [block, left of=poke] (wait_poke) {Wait\\ 15~minutes};
|
\node [block, left of=poke] (wait_poke) {Wait\\ 15~minutes};
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ This also provides a larger surface that your microbes can use to attack the mol
|
|||||||
and start the fermentation process.
|
and start the fermentation process.
|
||||||
|
|
||||||
I~am still
|
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
|
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
|
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
|
good, maybe a bit coarse. However, during baking the doughs would start to
|
||||||
|
|||||||
@@ -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.
|
its characteristic tangy flavor and helps to preserve the bread by lowering its pH.
|
||||||
The flavor of acetic acid has a more vinegary profile.
|
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 that’s balanced to make breads and also
|
\item[All Purpose Flour] A general flour that’s balanced to make breads and also
|
||||||
cakes. In Germany this is type~550.
|
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
|
DIY solution is to use a bowl with a kitchen towel inside. While resting inside of
|
||||||
the banneton the dough’s surface dries out and becomes easier to score before baking.
|
the banneton the dough’s 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
|
\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
|
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
|
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
|
together. By adding the starter early the dough becomes more extensible and easier
|
||||||
to handle.
|
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[Fool’s Crumb] A term used to describe a crumb structure that has several
|
\item[Fool’s 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
|
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
|
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
|
fermentation. It imparts a mild tangy yogurty flavor to sourdough bread and, along
|
||||||
with acetic acid, contributes to the bread's overall acidity.
|
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
|
\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
|
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
|
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,
|
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
|
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
|
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
|
\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
|
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
|
the bread, bringing out more pronounced grainy notes and reducing bitterness
|
||||||
sometimes found in certain whole grains.
|
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
|
\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
|
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.
|
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
|
\item[Sift] To pass flour or another dry ingredient through a sieve to
|
||||||
remove lumps and aerate it.
|
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
|
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.
|
providing a moister crumb in the finished bread.
|
||||||
|
|
||||||
\item[Sponge] A type of preferment, a sponge is a wet mixture of flour, water, and
|
\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
|
photosynthesis of the plant in return. When the plant becomes weak the wild yeasts
|
||||||
can become parasitic and consume the host.
|
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
|
\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
|
\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
|
of a starter by mixing boiling water with bread flour in a specific ratio, typically 1:1
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
\chapter{Foreword}%
|
|
||||||
\label{ch:Foreword}
|
|
||||||
Hopefully one day there is going to be an awesome foreword
|
|
||||||
by another bread baker!
|
|
||||||
@@ -46,7 +46,8 @@ seemingly
|
|||||||
healthy bread consisted of so many other things aside from flour and water.
|
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 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?
|
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.
|
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,
|
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
|
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.
|
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
|
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
|
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
|
it open source and have asked the community to support my work with
|
||||||
\url{https://ko-fi.com/thebreadcode}. The community's feedback has been amazing so far, and
|
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
|
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.
|
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}
|
You can read more details here: \url{https://breadco.de/physical-book}
|
||||||
|
|||||||
@@ -49,9 +49,11 @@ images += $(foreach directory, $(chapters), $(wildcard $(directory)/*/*.png))
|
|||||||
# images to lower resolution and greyscale
|
# images to lower resolution and greyscale
|
||||||
bw_images := $(addprefix bw-book-epub/OEBPS/, $(images))
|
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/*)
|
website_assets := $(wildcard ../website/assets/*)
|
||||||
ruby_src := ../website/modify_build.rb $(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
|
.PHONY: copy_ebook_files
|
||||||
|
|
||||||
epub/%.epub: %.tex $(src_all) cover/cover-page.xbb
|
epub/%.epub: %.tex $(ebook_src) cover/cover-page.xbb
|
||||||
$(EBOOK) $<
|
$(EBOOK) $<
|
||||||
|
|
||||||
copy_ebook_files: build_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_serif book.tex
|
||||||
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
|
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
|
||||||
-rm book*/*.{bbl,loc,.run.xml}
|
-rm book*/*.{bbl,loc,.run.xml}
|
||||||
-rm -rf book*-epub/META-INF
|
-rm -rf *book-epub/META-INF
|
||||||
-rm -rf book*-epub/OEBPS
|
-rm -rf *book-epub/OEBPS
|
||||||
-rm book*-epub/mimetype
|
-rm *book-epub/mimetype
|
||||||
|
|
||||||
mrproper: clean
|
mrproper: clean
|
||||||
$(CLEAN) -C $(src_figures)
|
$(CLEAN) -C $(src_figures)
|
||||||
@@ -236,7 +238,7 @@ mrproper: clean
|
|||||||
-rm -rf release/
|
-rm -rf release/
|
||||||
-rm -rf book_serif/
|
-rm -rf book_serif/
|
||||||
-rm -rf book_sans_serif/
|
-rm -rf book_sans_serif/
|
||||||
-rm -rf book-epub/
|
-rm -rf *book-epub/
|
||||||
-rm -rf $(website_dir)
|
-rm -rf $(website_dir)
|
||||||
|
|
||||||
# top level releases rules
|
# top level releases rules
|
||||||
|
|||||||
BIN
book/mix-ins/apple-swirl.jpg
Normal file
|
After Width: | Height: | Size: 687 KiB |
BIN
book/mix-ins/beer-bread.jpg
Normal file
|
After Width: | Height: | Size: 384 KiB |
BIN
book/mix-ins/broa.jpg
Normal file
|
After Width: | Height: | Size: 860 KiB |
@@ -1,183 +1,315 @@
|
|||||||
\chapter{Mix-ins}%
|
\chapter{Mix-ins}%
|
||||||
\label{ch:mix-ins}
|
\label{ch:mix-ins}
|
||||||
\begin{quoting}
|
\begin{quoting}
|
||||||
This work-in-progress chapter will describes altering and additions you
|
In this chapter, you will learn about the fascinating world of sourdough
|
||||||
could make to your dough to create beautiful or different tasting loafs.
|
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}
|
\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
|
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
|
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
|
modifications to try and combine. Think of the loaf of bread as a blank canvas
|
||||||
to express yourself.
|
to express yourself.
|
||||||
|
|
||||||
One approach to sort through the options is to categorize mix-ins by shape
|
\section{Categories}
|
||||||
(the transition between these categories is somewhat fuzzy):
|
|
||||||
|
\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}
|
\begin{itemize}
|
||||||
\item Liquids: Integrate homogeneously into the dough, may replace some of
|
\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
|
\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
|
\item Small bits: Individually visible in the final loaf, small enough to
|
||||||
distribute somewhat evenly throughout the dough. Examples: Seeds (poppy
|
distribute somewhat evenly throughout the dough. Examples: Seeds (wheat
|
||||||
seeds, sesame, pumpkin seeds), whole spices (coriander).
|
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
|
\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
|
when eating a slice of your bread. Examples: dried tomatoes, chunks of
|
||||||
cheese,
|
cheese, chunks of chocolate
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Another categorization approach looks at the changes to the bread. Most
|
Another categorization approach looks at the changes to the bread:
|
||||||
mix-ins actually impact multiple aspects.
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Flavor: Significantly changes the taste of the bread. Examples: rye
|
\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,
|
\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.
|
\item Texture: Significantly changes the feeling in the mouth when eaten.
|
||||||
Examples: Cheese (gummy), seeds (crunchy), olives (squishy chunks).
|
Examples: Cheese (gummy), seeds (crunchy), olives (squishy chunks).
|
||||||
\end{itemize}
|
\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
|
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
|
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.
|
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
|
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
|
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
|
of flour in most mix-ins, reduced to around \qtyrange{1}{5}{\percent} of the
|
||||||
amount of flour for spices.
|
amount of flour for spices.
|
||||||
|
|
||||||
An important factor is also the mix-in's behavior during baking. Particularly
|
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
|
chunks may bake differently than dough, and either melt (cheese) leaving holes
|
||||||
inside, or char when peeking through the crust (\eg, vegetables). These
|
inside, or char when peeking through the crust (\eg~vegetables). These
|
||||||
problems can be mitigated to some degree with the right preparation (\eg,
|
problems can be mitigated to some degree with the right preparation (\eg~chopping
|
||||||
chopping into smaller pieces, soaking dry ingredients in water or oil first,
|
into smaller pieces, soaking dry ingredients in water or oil first,
|
||||||
or squeezing out excess moisture).
|
or squeezing out excess moisture).
|
||||||
% potential reference to link: https://food52.com/blog/25521-additions-to-sourdough-bread-ideas
|
|
||||||
|
|
||||||
\section{Examples}
|
\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}
|
\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
|
regular bread flour. Different flours change the taste of the bread and
|
||||||
usually moderately affect the color.
|
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}
|
\begin{itemize}
|
||||||
\item Whole wheat flour (substitute any amount, makes the bread taste more
|
\item Whole wheat flour (substitute any amount, makes the bread taste more
|
||||||
complex, nutty)
|
complex, nutty)
|
||||||
\item Rye flour (very hearty, nutty, malty taste)
|
\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
|
\item Cocoa (replace \qty{10}{\percent} of the flour for a black loaf, goes
|
||||||
great with sweet toppings)
|
great with sweet toppings)
|
||||||
|
\item Other non-wheat flours such as: Chickpea, corn, hemp, potato etc.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Liquids}
|
\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}
|
\begin{itemize}
|
||||||
\item Coffee
|
|
||||||
\item Beer
|
\item Beer
|
||||||
\item Olive oil (mediterranean)
|
\item Butter
|
||||||
\item Milk (for sweet, soft breads)
|
|
||||||
\item Buttermilk
|
\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}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Colors}
|
\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}
|
\begin{itemize}
|
||||||
|
\item Activated charcoal powder (black)
|
||||||
\item Beetroot juice (red)
|
\item Beetroot juice (red)
|
||||||
|
\item Blueberry juice (blue)
|
||||||
|
\item Blue butterfly pea flower powder (blue)
|
||||||
\item Carrot juice (orange)
|
\item Carrot juice (orange)
|
||||||
|
\item Pear juice (pink)
|
||||||
\item Spinach juice (green)
|
\item Spinach juice (green)
|
||||||
\item Squid ink (black)
|
\item Squid ink (black)
|
||||||
|
\item Strawberry juice (red)
|
||||||
|
\item Tomato juice (red)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Seeds and nuts}
|
\subsection{Seeds and nuts}
|
||||||
These are small bits, with some almost crossing into the chunk category. Most
|
These are small bits, with some almost crossing into the chunk category. Some
|
||||||
seeds benefit from being baked for about 10~minutes before adding them to the
|
seeds benefit from being boiled for about 10~minutes before adding them to the
|
||||||
dough.
|
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}
|
\begin{itemize}
|
||||||
\item Pumpkin seed
|
\item Cacao nibs
|
||||||
\item Chia seed
|
\item Chia seed
|
||||||
\item Flaxseed (soak these in water first)
|
\item Chopped or whole nuts such as: Almonds, hazelnuts and walnuts
|
||||||
\item Hemp seed (very crunchy, a personal favorite)
|
\item Flaxseeds
|
||||||
|
\item Hemp seed
|
||||||
|
\item Poppy seed
|
||||||
|
\item Pumpkin seed
|
||||||
\item Sesame
|
\item Sesame
|
||||||
\item Sunflower seed
|
\item Sunflower seed
|
||||||
\item Poppy seed
|
\item Whole rye berries (boil 10 minutes)
|
||||||
\item Cacao nibs
|
\item Whole wheat berries (boil 10 minutes)
|
||||||
\item Chopped or whole walnuts
|
|
||||||
\item Chopped or whole hazelnuts
|
|
||||||
\end{itemize}
|
\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}
|
\subsection{Spices and flavor mix-ins}
|
||||||
These are mostly powders or small bits.
|
These are mostly powders or small bits.
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Mediterranean herbs (oregano, thyme, rosemary, marjoram)
|
\item Blueberry skins (press through a sieve to remove juice, raw blueberries
|
||||||
\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 Browned onions
|
\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 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}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Highlights}
|
\subsection{Highlights}
|
||||||
Mostly chunks, that add a big contrast and flavorful highlight to the basic
|
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
|
bread. Usually, you want to use only one (or a maximum of two) of these. The suggestions
|
||||||
be complemented well by some flavor mix-in or flour.
|
can often be complemented by some flavor or flour mix-in.
|
||||||
|
|
||||||
\begin{itemize}
|
\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 Olives
|
||||||
|
\item Pickled pepperoni
|
||||||
\item Sundried tomatoes (squeeze out the oil if using pickled ones, or soak
|
\item Sundried tomatoes (squeeze out the oil if using pickled ones, or soak
|
||||||
dried ones in water)
|
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}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Combinations}
|
\subsection{Combinations}
|
||||||
A few combinations where multiple mix-ins complement each other:
|
A few combinations where multiple mix-ins complement each other:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Semolina, mediterranen herbs, olives, sundried tomatoes.
|
\item Butter and milk. Then add cinnamon and brown sugar before shaping
|
||||||
\item Cranberry and walnuts.
|
\item Cheddar and pepperoni
|
||||||
\item Cheddar and pepperoni.
|
\item Cheddar and jalapeño
|
||||||
\item Cocoa, cacao nibs, whole hazelnuts.
|
\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}
|
\end{itemize}
|
||||||
|
|
||||||
\section{Techniques}
|
\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}
|
Adding mix-ins to the dough is just the simplest approach. Add the mix-ins
|
||||||
This works best for either powders or small bits. Spread the mix-in in a flat
|
directly when you knead the dough. After the first kneading wait for 30 minutes to see
|
||||||
container, wet the surface of the loaf, and dip it into the mix-in right
|
if the dough has enough or too much water. In the case of whole-soaked berries
|
||||||
before baking.
|
(\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
|
\subsection{Adding before shaping}
|
||||||
during baking and char. Most commonly done with seeds (\eg, sesame).
|
|
||||||
|
\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}
|
\subsection{Swirled colors}
|
||||||
Mix-ins that change the color of the dough bring the opportunity for even more
|
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
|
more) differently colored doughs by laminating and stacking the colored sheets
|
||||||
of dough before the last folding, just before shaping and bulk rise.
|
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
|
||||||
These can really become works of art.
|
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
|
||||||
% https://www.reddit.com/r/Sourdough/comments/onynqm/sourdough_with_dried_raspberries_recipe_in/
|
layered featuring different colors, textures, and flavors.}
|
||||||
% 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/
|
|
||||||
|
|||||||
BIN
book/mix-ins/pumpkin-on-flour.jpg
Normal file
|
After Width: | Height: | Size: 741 KiB |
BIN
book/mix-ins/pumpkin-sourdough.jpg
Normal file
|
After Width: | Height: | Size: 529 KiB |
BIN
book/mix-ins/seeded-sourdough.jpg
Normal file
|
After Width: | Height: | Size: 385 KiB |
BIN
book/mix-ins/seeds-bread.jpg
Normal file
|
After Width: | Height: | Size: 805 KiB |
BIN
book/mix-ins/stollen-close-up.jpg
Normal file
|
After Width: | Height: | Size: 463 KiB |
BIN
book/mix-ins/surface-seeds.jpg
Normal file
|
After Width: | Height: | Size: 192 KiB |
@@ -1,11 +1,11 @@
|
|||||||
@article{raffaella+di+cagno,
|
@article{raffaella+di+cagno,
|
||||||
author = {Di Cagno, Raffaella et al.},
|
author = {Di Cagno, Raffaella et al.},
|
||||||
title = {Proteolysis by sourdough lactic acid bacteria:
|
title = {Proteolysis by sourdough lactic acid bacteria:
|
||||||
effects on wheat flour protein fractions and
|
effects on wheat flour protein fractions and
|
||||||
gliadin peptides involved in human cereal intolerance},
|
gliadin peptides involved in human cereal intolerance},
|
||||||
journal = {Applied and environmental microbiology},
|
journal = {Applied and environmental microbiology},
|
||||||
publisher = {Dover},
|
publisher = {Dover},
|
||||||
volume = {68,2}
|
volume = {68,2}
|
||||||
}
|
}
|
||||||
|
|
||||||
@misc{too+hot+baking,
|
@misc{too+hot+baking,
|
||||||
@@ -16,17 +16,17 @@
|
|||||||
note = {Accessed: 2022-03-24}
|
note = {Accessed: 2022-03-24}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{rye-defects,
|
@misc{rye-defects,
|
||||||
author = {Marie Oest et al.},
|
author = {Marie Oest et al.},
|
||||||
title = {Rye Bread Defects: Analysis of Composition and
|
title = {Rye Bread Defects: Analysis of Composition and
|
||||||
Further Influence Factors as Determinants
|
Further Influence Factors as Determinants
|
||||||
of Dry-Baking},
|
of Dry-Baking},
|
||||||
journal = {Applied and environmental microbiology},
|
journal = {Applied and environmental microbiology},
|
||||||
publisher = {Foods},
|
publisher = {Foods},
|
||||||
howpublished = {\url{https://www.mdpi.com/2304-8158/9/12/1900/pdf}}
|
howpublished = {\url{https://www.mdpi.com/2304-8158/9/12/1900/pdf}}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{stiff+starter,
|
@misc{stiff+starter,
|
||||||
title = {Stiff sourdough starter},
|
title = {Stiff sourdough starter},
|
||||||
author = {Hendrik Kleinwächter},
|
author = {Hendrik Kleinwächter},
|
||||||
howpublished = {\url{https://www.youtube.com/watch?v=MqH3GVfjfBc}},
|
howpublished = {\url{https://www.youtube.com/watch?v=MqH3GVfjfBc}},
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
note = {Accessed: 2022-04-26}
|
note = {Accessed: 2022-04-26}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{baking+twice,
|
@misc{baking+twice,
|
||||||
title = {Baking your dough twice to make a sourer bread},
|
title = {Baking your dough twice to make a sourer bread},
|
||||||
author = {Hendrik Kleinwächter},
|
author = {Hendrik Kleinwächter},
|
||||||
howpublished = {\url{https://youtu.be/0v1QhtyUic4}},
|
howpublished = {\url{https://youtu.be/0v1QhtyUic4}},
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
note = {Accessed: 2022-04-28}
|
note = {Accessed: 2022-04-28}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{more+active+starter,
|
@misc{more+active+starter,
|
||||||
title = {4 tips to make a more active starter},
|
title = {4 tips to make a more active starter},
|
||||||
author = {Hendrik Kleinwächter},
|
author = {Hendrik Kleinwächter},
|
||||||
howpublished = {\url{https://www.youtube.com/watch?v=yYkTrGHNW2w}},
|
howpublished = {\url{https://www.youtube.com/watch?v=yYkTrGHNW2w}},
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
note = {Accessed: 2022-04-29}
|
note = {Accessed: 2022-04-29}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{baking+powder+reduce-acidity,
|
@misc{baking+powder+reduce-acidity,
|
||||||
title = {Use baking powder to reduce dough acidity},
|
title = {Use baking powder to reduce dough acidity},
|
||||||
author = {Hendrik Kleinwächter},
|
author = {Hendrik Kleinwächter},
|
||||||
howpublished = {\url{https://www.youtube.com/watch?v=c8GId0ByASo}},
|
howpublished = {\url{https://www.youtube.com/watch?v=c8GId0ByASo}},
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
note = {Accessed: 2022-04-29}
|
note = {Accessed: 2022-04-29}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{food+safe+ph,
|
@misc{food+safe+ph,
|
||||||
title = {Acidified Foods: Food Safety Considerations for Food Processors},
|
title = {Acidified Foods: Food Safety Considerations for Food Processors},
|
||||||
author = {Felix H. Barron and Angela M. Fraser},
|
author = {Felix H. Barron and Angela M. Fraser},
|
||||||
howpublished = {\url{https://www.intechopen.com/chapters/41654}},
|
howpublished = {\url{https://www.intechopen.com/chapters/41654}},
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
year = {2022}
|
year = {2022}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{liquid+on+starter,
|
@misc{liquid+on+starter,
|
||||||
title = {Acidified Foods: Food Safety Considerations for Food Processors},
|
title = {Acidified Foods: Food Safety Considerations for Food Processors},
|
||||||
author = {Sourdoughhome},
|
author = {Sourdoughhome},
|
||||||
howpublished = {\url{https://www.sourdoughhome.com/what-is-hooch/}},
|
howpublished = {\url{https://www.sourdoughhome.com/what-is-hooch/}},
|
||||||
@@ -83,57 +83,59 @@
|
|||||||
note = {Accessed: 2022-04-29}
|
note = {Accessed: 2022-04-29}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{acetic+acid+production,
|
@misc{acetic+acid+production,
|
||||||
title = {Acetic Acid (or Ethanoic acid). The main constituent of vinegar.},
|
title = {Acetic Acid (or Ethanoic acid). The main constituent of vinegar.},
|
||||||
author = {chm.bris.ac.uk},
|
author = {chm.bris.ac.uk},
|
||||||
howpublished = {\url{http://www.chm.bris.ac.uk/motm/acetic-acid/acetic-acidjs.htm}},
|
howpublished = {\url{http://www.chm.bris.ac.uk/motm/acetic-acid/acetic-acidjs.htm}},
|
||||||
note = {Accessed: 2022-04-29}
|
note = {Accessed: 2022-04-29}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{jordan+bread,
|
@misc{jordan+bread,
|
||||||
author = {Amaia Arranz-Otaegui et al.},
|
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
|
||||||
journal = {Proc Natl Acad Sci USA},
|
bread 14,400 years ago in northeastern Jordan},
|
||||||
year = {2018},
|
journal = {Proc Natl Acad Sci USA},
|
||||||
|
year = {2018},
|
||||||
howpublished = {\url{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6077754/}}
|
howpublished = {\url{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6077754/}}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{fleischmann+history,
|
@misc{fleischmann+history,
|
||||||
author = {Fleischmann History},
|
author = {Fleischmann History},
|
||||||
title = {History of Fleischmann's},
|
title = {History of Fleischmann's},
|
||||||
howpublished = {\url{https://www.fleischmannsyeast.com/our-history/}},
|
howpublished = {\url{https://www.fleischmannsyeast.com/our-history/}},
|
||||||
note = {Accessed: 2023-12-04}
|
note = {Accessed: 2023-12-04}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{evans+mill,
|
@misc{evans+mill,
|
||||||
author = {Jeremy Norman},
|
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}},
|
howpublished = {\url{https://www.historyofinformation.com/detail.php?entryid=3567}},
|
||||||
note = {Accessed: 2023-12-04}
|
note = {Accessed: 2023-12-04}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{first+mixer,
|
@misc{first+mixer,
|
||||||
author = {United States Patent office},
|
author = {United States Patent office},
|
||||||
title = {Eastman Mixer for cream, eggs and liquors},
|
title = {Eastman Mixer for cream, eggs and liquors},
|
||||||
howpublished = {\url{https://patents.google.com/patent/US330829}},
|
howpublished = {\url{https://patents.google.com/patent/US330829}},
|
||||||
note = {Accessed: 2023-12-04}
|
note = {Accessed: 2023-12-04}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{egypt+beer,
|
@misc{egypt+beer,
|
||||||
author = {Smithsonian Magazine},
|
author = {Smithsonian Magazine},
|
||||||
title = {World’s Oldest Industrial-Scale Brewery Found in Egypt},
|
title = {World’s Oldest Industrial-Scale Brewery Found in Egypt},
|
||||||
howpublished = {\url{https://www.smithsonianmag.com/smart-news/worlds-oldest-industrial-scale-brewery-found-egypt-180977026/}},
|
howpublished = {\url{https://www.smithsonianmag.com/smart-news/worlds-oldest-industrial-scale-brewery-found-egypt-180977026/}},
|
||||||
note = {Accessed: 2023-12-04}
|
note = {Accessed: 2023-12-04}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{kitchenaid+history,
|
@misc{kitchenaid+history,
|
||||||
author = {KitchenAid},
|
author = {KitchenAid},
|
||||||
title = {KitchenAid Brand History},
|
title = {KitchenAid Brand History},
|
||||||
howpublished = {\url{https://www.kitchenaid.com/100year/history.html}},
|
howpublished = {\url{https://www.kitchenaid.com/100year/history.html}},
|
||||||
note = {Accessed: 2023-12-04}
|
note = {Accessed: 2023-12-04}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{aboriginal+grinding+stones,
|
@misc{aboriginal+grinding+stones,
|
||||||
author = {First Peoples - State Relations},
|
author = {First Peoples - State Relations},
|
||||||
title = {Fact sheet: Aboriginal grinding stones},
|
title = {Fact sheet: Aboriginal grinding stones},
|
||||||
howpublished = {\url{https://www.firstpeoplesrelations.vic.gov.au/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,
|
@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},
|
volume = {273},
|
||||||
DOI = {10.1126/science.273.5274.488},
|
doi = {10.1126/science.273.5274.488},
|
||||||
number = {5274},
|
number = {5274},
|
||||||
journal = {Science},
|
journal = {Science},
|
||||||
author = {Samuel, Delwen},
|
author = {Samuel, Delwen},
|
||||||
@@ -203,26 +206,26 @@
|
|||||||
pages = {488–490}
|
pages = {488–490}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{vienna+breadrolls,
|
@misc{vienna+breadrolls,
|
||||||
author = {Eben Norton Horsford},
|
author = {Eben Norton Horsford},
|
||||||
title = {Report on Vienna bread},
|
title = {Report on Vienna bread},
|
||||||
year = {1875},
|
year = {1875},
|
||||||
howpublished = {\url{https://archive.org/details/bub_gb_6jRDAAAAIAAJ/page/n100/mode/2up}},
|
howpublished = {\url{https://archive.org/details/bub_gb_6jRDAAAAIAAJ/page/n100/mode/2up}},
|
||||||
note = {Accessed: 2022-05-02}
|
note = {Accessed: 2022-05-02}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{coeliac+disease,
|
@misc{coeliac+disease,
|
||||||
author = {Giovanni Battista Gasbarrini et al.},
|
author = {Giovanni Battista Gasbarrini et al.},
|
||||||
title = {Coeliac disease: an old or a new disease? History of a pathology},
|
title = {Coeliac disease: an old or a new disease? History of a pathology},
|
||||||
year = {2014},
|
year = {2014},
|
||||||
journal = {Intern Emerg Med.},
|
journal = {Intern Emerg Med.},
|
||||||
howpublished = {\url{https://pubmed.ncbi.nlm.nih.gov/24435555/}}
|
howpublished = {\url{https://pubmed.ncbi.nlm.nih.gov/24435555/}}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{interview+karl+de+smedt,
|
@misc{interview+karl+de+smedt,
|
||||||
author = {Hendrik Kleinwächter},
|
author = {Hendrik Kleinwächter},
|
||||||
title = {Interview with Karl de Smedt},
|
title = {Interview with Karl de Smedt},
|
||||||
year = {2021},
|
year = {2021},
|
||||||
howpublished = {\url{https://www.youtube.com/watch?v=vfDIfkqBCuk}},
|
howpublished = {\url{https://www.youtube.com/watch?v=vfDIfkqBCuk}},
|
||||||
note = {Accessed: 2022-05-06}
|
note = {Accessed: 2022-05-06}
|
||||||
}
|
}
|
||||||
@@ -251,7 +254,8 @@
|
|||||||
|
|
||||||
@article{effects+oxygen+yeast+growth,
|
@article{effects+oxygen+yeast+growth,
|
||||||
author = {Hiroshi Kuriyama et al.},
|
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},
|
year = {1993},
|
||||||
journal = {Journal of Fermentation and Bioengineering},
|
journal = {Journal of Fermentation and Bioengineering},
|
||||||
publisher = {Elsevier},
|
publisher = {Elsevier},
|
||||||
@@ -270,7 +274,8 @@
|
|||||||
|
|
||||||
@article{leaf+surface+sugars+epiphytes,
|
@article{leaf+surface+sugars+epiphytes,
|
||||||
author = {Julien Mercier},
|
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},
|
year = {2000},
|
||||||
journal = {Applied and Environmental Microbiology},
|
journal = {Applied and Environmental Microbiology},
|
||||||
volume = {66,1}
|
volume = {66,1}
|
||||||
@@ -278,7 +283,8 @@
|
|||||||
|
|
||||||
@article{yeasts+biocontrol+agent,
|
@article{yeasts+biocontrol+agent,
|
||||||
author = {Gianluca Bleve et al.},
|
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},
|
year = {2006},
|
||||||
journal = {International Journal of Food Microbiology},
|
journal = {International Journal of Food Microbiology},
|
||||||
volume = {108,2}
|
volume = {108,2}
|
||||||
@@ -286,13 +292,14 @@
|
|||||||
|
|
||||||
@article{saccharomyces+cerevisiae+pathogen,
|
@article{saccharomyces+cerevisiae+pathogen,
|
||||||
author = {Sabine Gognies et al.},
|
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},
|
year = {2001},
|
||||||
journal = {FEMS Microbiology Ecology},
|
journal = {FEMS Microbiology Ecology},
|
||||||
volume = {37,2}
|
volume = {37,2}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{pickled+foods+expiration,
|
@misc{pickled+foods+expiration,
|
||||||
title = {Hardcore hibernation},
|
title = {Hardcore hibernation},
|
||||||
author = {David Adam},
|
author = {David Adam},
|
||||||
howpublished = {\url{https://www.nature.com/articles/news001019-9}},
|
howpublished = {\url{https://www.nature.com/articles/news001019-9}},
|
||||||
@@ -300,7 +307,7 @@
|
|||||||
note = {Accessed: 2022-06-23}
|
note = {Accessed: 2022-06-23}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{old+spores,
|
@misc{old+spores,
|
||||||
title = {Do Pickles Go Bad?},
|
title = {Do Pickles Go Bad?},
|
||||||
author = {thrillist.com},
|
author = {thrillist.com},
|
||||||
howpublished = {\url{https://www.thrillist.com/eat/nation/do-pickles-go-bad-refrigerator-pickles-shelf-life}},
|
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}
|
note = {Accessed: 2022-06-23}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{mold+anaerobic,
|
@misc{mold+anaerobic,
|
||||||
title = {Differences between Yeasts and Molds},
|
title = {Differences between Yeasts and Molds},
|
||||||
author = {Sagar Aryal},
|
author = {Sagar Aryal},
|
||||||
howpublished = {\url{https://microbenotes.com/differences-between-yeasts-and-molds/}},
|
howpublished = {\url{https://microbenotes.com/differences-between-yeasts-and-molds/}},
|
||||||
@@ -317,7 +324,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@article{effects+temperature+flavor+wine,
|
@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.},
|
author = {Bangzhu Peng et al.},
|
||||||
year = {2015},
|
year = {2015},
|
||||||
journal = {Food science},
|
journal = {Food science},
|
||||||
@@ -325,7 +333,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@article{effects+temperature+flavor,
|
@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.},
|
author = {Anna Roccato et al.},
|
||||||
year = {2017},
|
year = {2017},
|
||||||
journal = {Food Research},
|
journal = {Food Research},
|
||||||
@@ -333,7 +343,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@article{lactobacillus+sanfrancisco,
|
@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.},
|
author = {M. Gobbetti et al.},
|
||||||
year = {1997},
|
year = {1997},
|
||||||
journal = {Food Microbiology},
|
journal = {Food Microbiology},
|
||||||
@@ -349,7 +360,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@article{shelflife+acidity,
|
@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.},
|
author = {S F Holmer et al.},
|
||||||
year = {2009},
|
year = {2009},
|
||||||
journal = {Meat Science},
|
journal = {Meat Science},
|
||||||
@@ -357,7 +369,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@article{temperature+bacteria+corn,
|
@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.},
|
author = {Y Zhou et al.},
|
||||||
year = {2016},
|
year = {2016},
|
||||||
journal = {Applied Microbiology and Biotechnology},
|
journal = {Applied Microbiology and Biotechnology},
|
||||||
@@ -365,7 +378,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@article{acetic+acid+oxygen,
|
@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.},
|
author = {Claudia Capusoni et al.},
|
||||||
year = {2016},
|
year = {2016},
|
||||||
journal = {Applied Microbiology and Biotechnology},
|
journal = {Applied Microbiology and Biotechnology},
|
||||||
@@ -373,14 +387,15 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@article{starch+damage+flour,
|
@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.},
|
author = {Qingfa Wang et al.},
|
||||||
year = {2020},
|
year = {2020},
|
||||||
journal = {Food chemistry},
|
journal = {Food chemistry},
|
||||||
volume = {15,31}
|
volume = {15,31}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{how+does+gluten+work,
|
@misc{how+does+gluten+work,
|
||||||
title = {Gluten: How Does It Work?},
|
title = {Gluten: How Does It Work?},
|
||||||
author = {Modernist Cuisine},
|
author = {Modernist Cuisine},
|
||||||
howpublished = {\url{https://modernistcuisine.com/mc/gluten-how-does-it-work/}},
|
howpublished = {\url{https://modernistcuisine.com/mc/gluten-how-does-it-work/}},
|
||||||
@@ -389,87 +404,105 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@article{bassinage+technique,
|
@misc{bassinage+technique,
|
||||||
title = {The Bassinage Method},
|
title = {The Bassinage Method},
|
||||||
author = {The Sourdough School},
|
author = {The Sourdough School},
|
||||||
howpublished = {\url{https://www.sourdough.co.uk/glossary/bassinage/}},
|
howpublished = {\url{https://www.sourdough.co.uk/glossary/bassinage/}},
|
||||||
year = {2022},
|
year = {2022},
|
||||||
note = {Accessed: 2022-12-22}
|
note = {Accessed: 2022-12-22}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{oxidization+dough,
|
@misc{oxidization+dough,
|
||||||
title = {Enzymes and pH matter, troubleshoot my loaf},
|
title = {Enzymes and pH matter, troubleshoot my loaf},
|
||||||
author = {Bread Blog},
|
author = {Bread Blog},
|
||||||
howpublished = {\url{https://bread.blog/enzymes-and-ph-matter-troubleshoot-my-loaf/}},
|
howpublished = {\url{https://bread.blog/enzymes-and-ph-matter-troubleshoot-my-loaf/}},
|
||||||
year = {2022},
|
year = {2022},
|
||||||
note = {Accessed: 2022-12-28}
|
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},
|
title = {How And When To Stretch And Fold Your Sourdough},
|
||||||
author = {The Bread Code YouTube},
|
author = {The Bread Code YouTube},
|
||||||
howpublished = {\url{https://www.youtube.com/watch?v=gMbZeUIVzZY}},
|
howpublished = {\url{https://www.youtube.com/watch?v=gMbZeUIVzZY}},
|
||||||
year = {2022},
|
year = {2022},
|
||||||
note = {Accessed: 2023-01-06}
|
note = {Accessed: 2023-01-06}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{rye+pentosans,
|
@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
|
||||||
journal = {Food Research International},
|
and Halina Gambu{\'s} and Rafa{\l} Ziobro and Jan Krawontka},
|
||||||
keywords = {Rye bread, Wholemeal, Pentosans, Starch},
|
journal = {Food Research International},
|
||||||
number = {8},
|
keywords = {Rye bread, Wholemeal, Pentosans, Starch},
|
||||||
pages = {2045-2051},
|
number = {8},
|
||||||
title = {The role of pentosans and starch in baking of wholemeal rye bread},
|
pages = {2045-2051},
|
||||||
url = {https://www.sciencedirect.com/science/article/pii/S0963996910002127},
|
title = {The role of pentosans and starch in baking of wholemeal rye bread},
|
||||||
volume = {43},
|
url = {https://www.sciencedirect.com/science/article/pii/S0963996910002127},
|
||||||
year = {2010}
|
volume = {43},
|
||||||
|
year = {2010}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{storing+bread,
|
@article{storing+bread,
|
||||||
author = {King Author},
|
author = {King Author},
|
||||||
title = {Storing yeast based bread},
|
title = {Storing yeast based bread},
|
||||||
url = {https://www.kingarthurbaking.com/blog/2020/07/08/the-best-way-to-store-yeast-bread},
|
url = {https://www.kingarthurbaking.com/blog/2020/07/08/the-best-way-to-store-yeast-bread},
|
||||||
note = {Accessed: 2023-02-03}
|
note = {Accessed: 2023-02-03}
|
||||||
}
|
}
|
||||||
|
|
||||||
@misc{wheat+kernel,
|
@misc{wheat+kernel,
|
||||||
author = {W. Berghoff},
|
author = {W. Berghoff},
|
||||||
title = {A wheat kernel and its nutritional value.},
|
title = {A wheat kernel and its nutritional value.},
|
||||||
url = {https://en.wikipedia.org/wiki/Whole_grain#/media/File:Wheat-kernel_nutrition.svg},
|
url = {https://en.wikipedia.org/wiki/Whole_grain#/media/File:Wheat-kernel_nutrition.svg},
|
||||||
note = {Accessed: 2023-03-30}
|
note = {Accessed: 2023-03-30}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{enzymatic+activity+whole+wheat,
|
@article{enzymatic+activity+whole+wheat,
|
||||||
author = {Rachana Poudel},
|
author = {Rachana Poudel},
|
||||||
title = {Enzymatic Activities and Compostional Properties of Whole Wheat Flour},
|
title = {Enzymatic Activities and Compostional Properties of Whole Wheat Flour},
|
||||||
year = {2018},
|
year = {2018},
|
||||||
page = {67},
|
page = {67}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{review+of+sourdough+starters,
|
@article{review+of+sourdough+starters,
|
||||||
author = {Calvert MD, Madden AA et al.},
|
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
|
||||||
year = {2021},
|
sensory quality with applications for baking
|
||||||
page = {3},
|
and recommendations for future research},
|
||||||
url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8117929/#ref-36},
|
year = {2021},
|
||||||
note = {Accessed: 2023-03-30}
|
page = {3},
|
||||||
|
url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8117929/#ref-36},
|
||||||
|
note = {Accessed: 2023-03-30}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{gluten+development+temperatures,
|
@article{gluten+development+temperatures,
|
||||||
author = {Koga S., Böcker U. et al.},
|
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
|
||||||
year = {2015},
|
viscoelastic properties and gluten protein composition.},
|
||||||
|
year = {2015},
|
||||||
journal = {Journal of the Science of Food and Agriculture},
|
journal = {Journal of the Science of Food and Agriculture},
|
||||||
number = {96},
|
number = {96},
|
||||||
pages = {122-130}
|
pages = {122-130}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{milling+commercial+home+mill+comparison,
|
@article{milling+commercial+home+mill+comparison,
|
||||||
author = {Ross, Andrew S. and Kongraksawech, Teepakorn},
|
author = {Ross, Andrew S. and Kongraksawech, Teepakorn},
|
||||||
journal = {Cereal Chemistry},
|
journal = {Cereal Chemistry},
|
||||||
number = {2},
|
number = {2},
|
||||||
pages = {239-252},
|
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
|
||||||
volume = {95},
|
commercial stone mill, laboratory mills, and household
|
||||||
year = {2018}
|
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 = {594–599}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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}{\kg} of flour I~would take around \qty{10}{\gram} of starter
|
||||||
(\qty{1}{\percent} in terms of baker's
|
(\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
|
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
|
else other than a big starter. It will tremendously help you to figure out
|
||||||
your best next steps.
|
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}.
|
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
|
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
|
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
|
balance of yeast and bacteria. After a feeding, the volume of the dough
|
||||||
increases. After it reaches a certain peak, it will start to collapse again.
|
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
|
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
|
air pockets on the edges of your container. Also use the nose to evaluate the
|
||||||
@@ -278,13 +279,13 @@ production.
|
|||||||
\label{fig:stollen}
|
\label{fig:stollen}
|
||||||
\end{figure}
|
\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
|
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
|
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
|
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
|
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
|
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
|
the dough is more active. Maybe it is not. It could also be that the bacteria
|
||||||
is inhibited by the lack of water.
|
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
|
starter. It should have a mild smell. It also tends to smell much more
|
||||||
alcoholic than the other starters.
|
alcoholic than the other starters.
|
||||||
|
|
||||||
When using a stiff starter, use around \qtyrange{1}{20}{\percent} depending on
|
When using a stiff starter, use around \qtyrange{1}{20}{\percent} starter for your
|
||||||
the ripeness of your starter. In summer I~typically use around
|
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
|
\qty{10}{\percent} and in winter around \qty{20}{\percent}. This way you can
|
||||||
also control the fermentation speed.
|
also control the fermentation speed.
|
||||||
Mixing the starter can be a little bit annoying as it hardly homogenizes with
|
Mixing the starter can be a little bit annoying as it hardly homogenizes with
|
||||||
|
|||||||
@@ -128,9 +128,9 @@ properly hydrated. This step activates the microbial spores
|
|||||||
in your mixture, drawing them out of hibernation and
|
in your mixture, drawing them out of hibernation and
|
||||||
reviving them.
|
reviving them.
|
||||||
Finally, cover your mixture but make sure the covering is
|
Finally, cover your mixture but make sure the covering is
|
||||||
not airtight. I~like to use a glass and place another
|
not airtight. You still want some gas exchange to be possible.
|
||||||
inverted one on top. The container shouldn't be airtight,
|
I~like to use a glass and place another
|
||||||
you still want some gas exchange to be possible.
|
inverted one on top.
|
||||||
|
|
||||||
\begin{flowchart}[!htb]
|
\begin{flowchart}[!htb]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
@@ -147,7 +147,7 @@ on a single leaf of a plant.
|
|||||||
All of the different yeasts and bacteria are trying to get
|
All of the different yeasts and bacteria are trying to get
|
||||||
the upper hand in this battle. Other pathogens such as mold
|
the upper hand in this battle. Other pathogens such as mold
|
||||||
are also being activated as we added water. Only the strongest
|
are also being activated as we added water. Only the strongest
|
||||||
most adaptable microorganisms will survive.
|
most adaptable microorganisms will survive.
|
||||||
|
|
||||||
By adding water to the
|
By adding water to the
|
||||||
flour the starches start to degrade. The seedling tries to
|
flour the starches start to degrade. The seedling tries to
|
||||||
@@ -302,7 +302,7 @@ flour\footnote{Whether this is working, I~can't scientifically say.
|
|||||||
Typically the microbes that have once taken place are very strong
|
Typically the microbes that have once taken place are very strong
|
||||||
and won't allow other microbes to enter. My starter has initially
|
and won't allow other microbes to enter. My starter has initially
|
||||||
been made with rye flour. So chances are that the majority of
|
been made with rye flour. So chances are that the majority of
|
||||||
my microorganisms are from a rye source.}.
|
my microorganisms are from a rye source.}.
|
||||||
|
|
||||||
Your nose is also
|
Your nose is also
|
||||||
a great tool to determine starter readiness. Depending on
|
a great tool to determine starter readiness. Depending on
|
||||||
|
|||||||
@@ -10,13 +10,12 @@
|
|||||||
\usepackage[mode=match, reset-text-family=false]{siunitx}
|
\usepackage[mode=match, reset-text-family=false]{siunitx}
|
||||||
\usepackage{fontspec}
|
\usepackage{fontspec}
|
||||||
\usepackage{calc}
|
\usepackage{calc}
|
||||||
\usepackage{enumitem}
|
|
||||||
\usepackage[font={sffamily, sbseries}]{quoting}
|
\usepackage[font={sffamily, sbseries}]{quoting}
|
||||||
\usepackage{enumitem}
|
|
||||||
\usepackage{microtype}
|
\usepackage{microtype}
|
||||||
|
|
||||||
% style=nextline breaks on make4ht
|
% style=nextline breaks on make4ht
|
||||||
\ifdefined\HCode\else
|
\ifdefined\HCode\else
|
||||||
|
\usepackage{enumitem}
|
||||||
\setlist[description]{style=nextline, leftmargin=0cm}
|
\setlist[description]{style=nextline, leftmargin=0cm}
|
||||||
\fi
|
\fi
|
||||||
|
|
||||||
@@ -106,6 +105,7 @@
|
|||||||
{wheat-sourdough/}
|
{wheat-sourdough/}
|
||||||
{wheat-sourdough/shaping/}
|
{wheat-sourdough/shaping/}
|
||||||
{non-wheat-sourdough/}
|
{non-wheat-sourdough/}
|
||||||
|
{mix-ins/}
|
||||||
}
|
}
|
||||||
|
|
||||||
% Caption and figure size below images
|
% Caption and figure size below images
|
||||||
|
|||||||
@@ -116,3 +116,9 @@ that you like.
|
|||||||
This option is great for very long-term storage. Personally
|
This option is great for very long-term storage. Personally
|
||||||
I~like having a few slices of bread frozen as an emergency
|
I~like having a few slices of bread frozen as an emergency
|
||||||
backup when I~have had no time to bake.
|
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}.
|
||||||
234
book/style.css
@@ -6,11 +6,15 @@
|
|||||||
--fw-bold: 800;
|
--fw-bold: 800;
|
||||||
--f-lh: 28px;
|
--f-lh: 28px;
|
||||||
--c-black: #282828;
|
--c-black: #282828;
|
||||||
|
--c-black-background: #1c1819;
|
||||||
--fs-xxxl: 32px;
|
--fs-xxxl: 32px;
|
||||||
--fs-xxl: 26px;
|
--fs-xxl: 26px;
|
||||||
--fs-xl: 24px;
|
--fs-xl: 24px;
|
||||||
--fs-l: 22px;
|
--fs-l: 22px;
|
||||||
--fs-m: 16px;
|
--fs-m: 16px;
|
||||||
|
--padding-hamburger: 5px;
|
||||||
|
--c-beige: #F3EDE6;
|
||||||
|
--border-radius: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 1200px){
|
@media (min-width: 1200px){
|
||||||
@@ -37,6 +41,7 @@ body{
|
|||||||
font-family: var(--ff-sans);
|
font-family: var(--ff-sans);
|
||||||
font-weight: var(--fw-regular);
|
font-weight: var(--fw-regular);
|
||||||
font-size: var(--fs-m);
|
font-size: var(--fs-m);
|
||||||
|
color: var(--c-black);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width: 57rem) {
|
@media screen and (min-width: 57rem) {
|
||||||
@@ -59,7 +64,6 @@ body{
|
|||||||
/* ****************** */
|
/* ****************** */
|
||||||
|
|
||||||
main.main-content,main.titlepage,div.footnotes{
|
main.main-content,main.titlepage,div.footnotes{
|
||||||
padding:1rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.permalink {
|
.permalink {
|
||||||
@@ -143,9 +147,7 @@ nav.TOC a, nav.TOC a:visited{
|
|||||||
|
|
||||||
|
|
||||||
body{
|
body{
|
||||||
background-color:#F8F8F8;
|
background-color: var(--c-beige);
|
||||||
background: url("bg.jpg") center center no-repeat;
|
|
||||||
background-size: cover;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
@@ -175,6 +177,7 @@ figure.texsource, figure.shellcommand, figure.htmlsource, figure.luasource, figu
|
|||||||
|
|
||||||
.main-content {
|
.main-content {
|
||||||
line-height: var(--f-lh);
|
line-height: var(--f-lh);
|
||||||
|
margin-left: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.footnotes {
|
div.footnotes {
|
||||||
@@ -230,6 +233,7 @@ figcaption.caption {
|
|||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-items .chapterToc, .menu-items .likechapterToc {
|
.menu-items .chapterToc, .menu-items .likechapterToc {
|
||||||
@@ -240,6 +244,14 @@ figcaption.caption {
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.home-link {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-title {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.toggle-menu-label {
|
.toggle-menu-label {
|
||||||
display: block;
|
display: block;
|
||||||
@@ -249,7 +261,8 @@ figcaption.caption {
|
|||||||
|
|
||||||
.hamb{
|
.hamb{
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 5px;
|
padding: var(--padding-hamburger);
|
||||||
|
margin-right: calc(var(--padding-hamburger) * -1);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
align-content: center;
|
align-content: center;
|
||||||
@@ -284,7 +297,7 @@ figcaption.caption {
|
|||||||
.menu {
|
.menu {
|
||||||
background: var(--c-black);
|
background: var(--c-black);
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 10px 0px;
|
padding: 10px 1rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@@ -303,13 +316,16 @@ figcaption.caption {
|
|||||||
color: #000;
|
color: #000;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
padding-left: 17px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.chapterToc a, .sectionToc a, .subsectionToc a, .likechapterToc a {
|
.chapterToc a, .sectionToc a, .subsectionToc a, .likechapterToc a {
|
||||||
padding-left: 17px;
|
padding-left: 17px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.menu-items .chapterToc.home-link {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.home-title {
|
.home-title {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
@@ -320,7 +336,7 @@ div.center {
|
|||||||
margin-right: 0 !important;
|
margin-right: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
main.titlepage h2.chapterHead {
|
main.main-content h2.chapterHead, main.main-content h2.likechapterHead {
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -368,3 +384,205 @@ h4 {
|
|||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
margin-top: 1em;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
\begin{tabular}{@{}llrrr@{}}
|
\begin{tabular}{@{}llrrr@{}}
|
||||||
\toprule
|
\toprule
|
||||||
\textbf{USA} & \textbf{UK} & {\textbf{Germany}} & {\textbf{France}} & {\textbf{Italy}} \\ \midrule
|
\textbf{USA} & \textbf{UK} & {\textbf{Germany}} & {\textbf{France}} & {\textbf{Italy}} \\ \midrule
|
||||||
Cake & Soft flour & T405 & T45 & 00 \\
|
Cake & Soft flour & T405 & T45 & 00 \\
|
||||||
All purpose & Plain flour & T550 & T55 & 0 \\
|
All purpose & Plain flour & T550 & T55 & 0 \\
|
||||||
& & T812 & T80 & 1 \\
|
Bread flour & Bread flour & T405 or T550 & T45 or T55 & 00 or 0 \\
|
||||||
& & T1050 & T110 & 2 \\
|
& & T812 & T80 & 1 \\
|
||||||
Whole & Whole & Vollkorn & T150 & Integrale \\ \bottomrule
|
& & T1050 & T110 & 2 \\
|
||||||
|
Whole & Whole & Vollkorn & T150 & Integrale \\ \bottomrule
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|||||||
@@ -3,17 +3,17 @@
|
|||||||
\toprule
|
\toprule
|
||||||
\textbf{Method} & \textbf{Advantages} & \textbf{Disadvantages} \\
|
\textbf{Method} & \textbf{Advantages} & \textbf{Disadvantages} \\
|
||||||
\midrule
|
\midrule
|
||||||
Room temperature & The easiest option. Best for bread that is eaten within a day.
|
Room temperature & The easiest option. Best for bread that is eaten within a day.
|
||||||
Crust typically stays crisp when humidity not too high.
|
Crust typically stays crisp when humidity not too high.
|
||||||
& Bread dries out very quickly.\\
|
& Bread dries out very quickly.\\
|
||||||
|
|
||||||
Room temperature in container & Good for up to a week. Catches mold more quickly.
|
Room temperature in airtight container & Good for up to a week.
|
||||||
& Bread needs to be toasted for crust to become crisp again.\\
|
& 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.
|
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.\\
|
& Bread needs to be toasted. Requires fridge and energy.\\
|
||||||
|
|
||||||
Freezer & Bread stays good for years.
|
Freezer & Bread stays good for years.
|
||||||
& Requires thawing and then toasting. Requires freezer and energy.\\
|
& Requires thawing and then toasting. Requires freezer and energy.\\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|||||||
@@ -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
|
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
|
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.
|
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
|
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
|
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
|
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.
|
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,
|
pivotal role in fermentation rates. As the dough chills in the refrigerator,
|
||||||
fermentation decelerates. Starting the retarding process at a warmer
|
fermentation decelerates. Starting the retarding process at a warmer
|
||||||
temperature means this deceleration takes longer.
|
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.
|
a Dutch oven and measuring its surface temperature using a barbecue thermometer.
|
||||||
I~then changed the steaming methods to plot how quickly the temperature
|
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
|
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
|
Dutch oven, a plain 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
|
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 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,
|
the surface of the apple a lot quicker. When replicating this with a bread dough,
|
||||||
I~would achieve less oven spring.
|
I~would achieve less oven spring.
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ acid-producing bacteria. So it is recommended to keep
|
|||||||
a backup of your original starter.
|
a backup of your original starter.
|
||||||
|
|
||||||
A downside to the liquid starter is the overall
|
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
|
will have more acidity (but milder). The dough will degrade
|
||||||
faster during fermentation. For this reason, you
|
faster during fermentation. For this reason, you
|
||||||
will need to use strong high-gluten flour when using
|
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
|
is incredible. It nicely plays with soups as well. Just take
|
||||||
a bit of this bread and dip it in your soup.
|
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}
|
\section{Dough}
|
||||||
\subsection{Should I~autolyse my 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
|
great oven spring when making wheat based doughs. When
|
||||||
starting with this hobby I~always wondered why my rye
|
starting with this hobby I~always wondered why my rye
|
||||||
breads would turn out so flat. Yes, rye has gluten, but
|
breads would turn out so flat. Yes, rye has gluten, but
|
||||||
small particles called \emph{hemicelluloses} (arabinoxylan and beta-glucan)~\cite{rye-defects}.
|
small particles called \emph{pentosans} (arabinoxylan and beta-glucan)~\cite{rye-defects}.
|
||||||
prevent the dough from developing a gluten network it can
|
They prevent the dough from developing a gluten network it can
|
||||||
with wheat. Your efforts will be in vain, and your dough will
|
with wheat. Your efforts will be in vain, and your dough will
|
||||||
stay flat. Only spelt- and wheat-based doughs have the capability
|
stay flat. Only spelt- and wheat-based doughs have the capability
|
||||||
of retaining the \ch{CO2} created by the fermentation.
|
of retaining the \ch{CO2} created by the fermentation.
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ and technique than other types of bread. You have to perfectly
|
|||||||
balance the fermentation process. You cannot ferment for too
|
balance the fermentation process. You cannot ferment for too
|
||||||
short and also not for too long. The techniques you need to
|
short and also not for too long. The techniques you need to
|
||||||
learn also require a bit more skill. It took me several attempts
|
learn also require a bit more skill. It took me several attempts
|
||||||
to get this right. One of the challenges I~faced was that
|
to get this right. I faced several challenges: I~had the wrong flour.
|
||||||
I~had the wrong flour. I~didn't properly know how to use my oven.
|
I~didn't properly know how to use my oven.
|
||||||
When should I~stop the fermentation? There is a lot of information
|
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.
|
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
|
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{400}{\gram} of bread flour
|
||||||
\item \qty{100}{\gram} of whole-wheat flour
|
\item \qty{100}{\gram} of whole-wheat flour
|
||||||
% Manual unit so we can use emphasis
|
% 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
|
\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.
|
this topic in the next chapter.
|
||||||
\item \qty{50}{\gram} of stiff sourdough starter (\qty{10}{\percent})
|
\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:
|
recipe would look like this:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \qty{1800}{\gram} of bread flour
|
\item \qty{1600}{\gram} of bread flour
|
||||||
\item \qty{200}{\gram} of whole-wheat flour
|
\item \qty{400}{\gram} of whole-wheat flour
|
||||||
% Manual unit so we can use emphasis again
|
% 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{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{200}{\gram} of stiff sourdough starter (\qty{10}{\percent})
|
||||||
\item \qty{40}{\gram} of salt (\qty{2}{\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
|
That's why when using whole-wheat (still containing these layers) you have to
|
||||||
use a little bit more water.
|
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.
|
protein value, the more water can be used.
|
||||||
|
|
||||||
Some bakers like to use highly hydrated doughs to create fluffier
|
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,
|
finishing the fermentation period in 1~hour. If you were to slow things down,
|
||||||
the dough would look completely different.
|
the dough would look completely different.
|
||||||
Try this again and use much less yeast. This is the
|
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
|
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
|
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.
|
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
|
While food is available, the microorganisms will reproduce and increase in
|
||||||
quantity. The process is a self-limiting: it stops when there is no
|
quantity. The process is a self-limiting: it stops when there is no
|
||||||
more food available. This can be compared to wine making where
|
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
|
environment that makes it impossible for other
|
||||||
microorganisms to join the feast. The same thing happens with the acidity
|
microorganisms to join the feast. The same thing happens with the acidity
|
||||||
created by the bacteria. The high acidity slows the fermentation process and
|
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
|
kitchen). In winter times I~opt for around \qty{10}{\percent} up to
|
||||||
\qty{20}{\percent} sourdough starter (kitchen temperature around
|
\qty{20}{\percent} sourdough starter (kitchen temperature around
|
||||||
\qty{20}{\degreeCelsius} (\qty{68}{\degF})). This
|
\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
|
bread dough is essentially a gigantic starter. The low inoculation rate allows
|
||||||
the starter to regrow inside your main dough into a desirable balance.
|
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
|
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).
|
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}%
|
\section{Autolysis}%
|
||||||
\label{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
|
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
|
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
|
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
|
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
|
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
|
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}
|
\label{fig:dough-touch-points}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Kneading more is great in almost all cases. You'll have a stronger
|
Kneading more is generally beneficial in almost all cases, as it results in a
|
||||||
gluten network. Unless you are making soft milk breads, you
|
stronger gluten network. However, when making soft milk breads, you might prefer
|
||||||
might want to have a more extensible dough, to begin with. For every
|
a more extensible dough from the start. In this scenario, excessive kneading
|
||||||
other type of wheat-based dough, kneading is helpful. When you use
|
could lead to a chewier final bread, which is not desirable if you aim for a
|
||||||
a stand mixer, you can run into the issue of kneading too much. This
|
fluffier texture. Achieving this fluffier dough can be accomplished by kneading
|
||||||
is almost impossible though. Even after kneading for 30~minutes on medium
|
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
|
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
|
too much, the color of the dough can begin to change. You mostly
|
||||||
notice this, though, during baking. The resulting loaf looks very
|
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
|
not be sticky in your hands, while the bottom rough surface should tend
|
||||||
to stick to your hands. Rotate the container
|
to stick to your hands. Rotate the container
|
||||||
and repeat the same thing from the other side. Rotate the container 90°
|
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
|
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
|
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
|
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.
|
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
|
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.
|
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.
|
reason, you need to pre-shape your dough.
|
||||||
|
|
||||||
Pre-shaping is done for several reasons:
|
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.
|
at room temperature whereas the other proofs the dough in the fridge.
|
||||||
Fridge-proofing is also commonly known as retarding.
|
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 all the loaves that I~retarded I~could not tell a difference
|
||||||
in terms of flavor for cold-proofed doughs. The microorganisms work
|
in terms of flavor for cold-proofed doughs. The microorganisms work
|
||||||
at a slower rate at colder temperatures. But I~doubt that they alter
|
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{center}
|
||||||
\end{flowchart}
|
\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
|
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
|
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,
|
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,
|
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
|
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
|
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.
|
of choice.
|
||||||
|
|
||||||
To summarize, choose the technique that works for you depending on your
|
To summarize, choose the technique that works for you depending on your
|
||||||
schedule and availability.
|
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
|
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
|
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.
|
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.
|
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
|
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
|
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
|
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
|
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
|
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
|
doughs. See Table~\ref{table:sample-ph-values} for some sample pH values
|
||||||
to follow.
|
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.
|
have a single chance to practice scoring. It's either hit or miss.
|
||||||
|
|
||||||
An additional trick that can help you to combine the benefits
|
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.
|
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
|
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
|
freezer. The freezer will dry out the doughs's surface even further
|
||||||
scoring easier.
|
while also lowering its viscosity, making scoring easier.
|
||||||
|
|
||||||
Another interesting trick is to bake your dough for 30 seconds without steam.
|
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
|
The hot air will dry out the dough's surface even further and simplify
|
||||||
|
|||||||
2
makefile
@@ -1,7 +1,7 @@
|
|||||||
.DEFAULT_GOAL := build_pdf
|
.DEFAULT_GOAL := build_pdf
|
||||||
|
|
||||||
DOCKER_IMAGE := ghcr.io/hendricius/the-sourdough-framework
|
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: bake build_pdf build_docker_image push_docker_image validate website
|
||||||
.PHONY: print_os_version start_shell printvars show_tools_version mrproper
|
.PHONY: print_os_version start_shell printvars show_tools_version mrproper
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ GEM
|
|||||||
method_source (1.0.0)
|
method_source (1.0.0)
|
||||||
nokogiri (1.15.3-arm64-darwin)
|
nokogiri (1.15.3-arm64-darwin)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
|
nokogiri (1.15.3-x86_64-darwin)
|
||||||
|
racc (~> 1.4)
|
||||||
nokogiri (1.15.3-x86_64-linux)
|
nokogiri (1.15.3-x86_64-linux)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
pry (0.14.2)
|
pry (0.14.2)
|
||||||
@@ -14,6 +16,7 @@ GEM
|
|||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
arm64-darwin-22
|
arm64-darwin-22
|
||||||
|
x86_64-darwin-22
|
||||||
x86_64-linux
|
x86_64-linux
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
|
|||||||
BIN
website/assets/arrow.png
Normal file
|
After Width: | Height: | Size: 298 B |
BIN
website/assets/banner.png
Normal file
|
After Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 500 KiB |
BIN
website/assets/og_image_mixins.png
Normal file
|
After Width: | Height: | Size: 319 KiB |
@@ -52,18 +52,27 @@ class ModifyBuild
|
|||||||
text = fix_titles(text)
|
text = fix_titles(text)
|
||||||
text = fix_menu(text)
|
text = fix_menu(text)
|
||||||
text = fix_cover_page(text) if is_cover_page?(filename)
|
text = fix_cover_page(text) if is_cover_page?(filename)
|
||||||
|
text = add_header_banner(text)
|
||||||
text = add_home_link_to_menu(text)
|
text = add_home_link_to_menu(text)
|
||||||
text = fix_anchor_hyperlinks_menu(text)
|
text = fix_anchor_hyperlinks_menu(text)
|
||||||
text = add_favicon(text)
|
text = add_favicon(text)
|
||||||
text = add_meta_tags(text, filename)
|
text = add_meta_tags(text, filename)
|
||||||
text = remove_section_table_of_contents(text)
|
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 = add_canonical_for_duplicates(text, extract_file_from_path(filename))
|
||||||
text = include_javascript(text)
|
text = include_javascript(text)
|
||||||
text = add_text_to_coverpage(text, extract_file_from_path(filename))
|
text = add_text_to_coverpage(text, extract_file_from_path(filename))
|
||||||
text = fix_js_dependency_link(text)
|
text = fix_js_dependency_link(text)
|
||||||
text = fix_list_of_tables_figures_duplicates(text)
|
text = fix_list_of_tables_figures_duplicates(text)
|
||||||
text = add_anchors_to_headers(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_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)
|
text = fix_list_of_figures_tables_display(text) if is_list_figures_tables?(filename)
|
||||||
File.open(filename, "w:UTF-8") {|file| file.puts text }
|
File.open(filename, "w:UTF-8") {|file| file.puts text }
|
||||||
@@ -75,6 +84,10 @@ class ModifyBuild
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def is_glossary_page?(filename)
|
||||||
|
filename.include?("Glossary.html")
|
||||||
|
end
|
||||||
|
|
||||||
def is_list_figures_tables?(filename)
|
def is_list_figures_tables?(filename)
|
||||||
["listfigurename.html", "listtablename.html", "listoflocname.html", "bibname.html"].any? do |name|
|
["listfigurename.html", "listtablename.html", "listoflocname.html", "bibname.html"].any? do |name|
|
||||||
filename.include?(name)
|
filename.include?(name)
|
||||||
@@ -146,6 +159,45 @@ class ModifyBuild
|
|||||||
doc.to_html
|
doc.to_html
|
||||||
end
|
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
|
# By default the titles look boring. This changes the titles of all the
|
||||||
# pages and adds the book name as appendix
|
# pages and adds the book name as appendix
|
||||||
def fix_titles(text)
|
def fix_titles(text)
|
||||||
@@ -231,7 +283,7 @@ class ModifyBuild
|
|||||||
content = doc.css("body > .main-content")[0]
|
content = doc.css("body > .main-content")[0]
|
||||||
menu = doc.css("body > nav")[0]
|
menu = doc.css("body > nav")[0]
|
||||||
content = %Q{
|
content = %Q{
|
||||||
<main class="titlepage">
|
<main class="titlepage main-content">
|
||||||
<a href="Thehistoryofsourdough.html">
|
<a href="Thehistoryofsourdough.html">
|
||||||
<img src="cover-page.jpg" />
|
<img src="cover-page.jpg" />
|
||||||
<div class="version"><p>#{version}</p></div>
|
<div class="version"><p>#{version}</p></div>
|
||||||
@@ -251,7 +303,7 @@ class ModifyBuild
|
|||||||
menu = doc.css(".menu-items")[0]
|
menu = doc.css(".menu-items")[0]
|
||||||
return text if menu.nil?
|
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
|
# Normally the flowcharts link should be automatically added, but there
|
||||||
# seems to be a problem in the generation. See:
|
# seems to be a problem in the generation. See:
|
||||||
# https://github.com/hendricius/the-sourdough-framework/pull/188 for more
|
# 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>
|
<span class="link_text">List of Flowcharts</span>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
<span class="chapterToc">
|
<span class="chapterToc listtables-menu">
|
||||||
<a href="listtablename.html">
|
<a href="listtablename.html">
|
||||||
<span class="link_text">List of Tables</span>
|
<span class="link_text">List of Tables</span>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
<span class="chapterToc">
|
<span class="chapterToc listfigures-menu">
|
||||||
<a href="listfigurename.html">
|
<a href="listfigurename.html">
|
||||||
<span class="link_text">List of Figures</span>
|
<span class="link_text">List of Figures</span>
|
||||||
</a>
|
</a>
|
||||||
@@ -278,9 +330,15 @@ class ModifyBuild
|
|||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
<span class="chapterToc">
|
<span class="chapterToc">
|
||||||
<a href="https://breadco.de/kofi">
|
<a href="https://www.the-bread-code.io/book.pdf">
|
||||||
<span class="chapter_number">⭐️</span>
|
<span class="chapter_number">⬇️</span>
|
||||||
<span class="link_text">Donate</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>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
<span class="chapterToc">
|
<span class="chapterToc">
|
||||||
@@ -289,11 +347,55 @@ class ModifyBuild
|
|||||||
<span class="link_text">Hardcover Book</span>
|
<span class="link_text">Hardcover Book</span>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</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}"
|
menu.inner_html = "#{home_html} #{menu.inner_html} #{appendix_html}"
|
||||||
doc.to_html
|
doc.to_html
|
||||||
end
|
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
|
# 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.
|
# later on add them in the structure that we want.
|
||||||
def remove_duplicate_entries_menu(text)
|
def remove_duplicate_entries_menu(text)
|
||||||
@@ -411,13 +513,14 @@ class ModifyBuild
|
|||||||
"Sourdoughstartertypes.html" => "og_image_sourdough_starter_types.png",
|
"Sourdoughstartertypes.html" => "og_image_sourdough_starter_types.png",
|
||||||
"Storingbread.html" => "og_image_storing_bread.png",
|
"Storingbread.html" => "og_image_storing_bread.png",
|
||||||
"Thehistoryofsourdough.html" => "og_image_the_history_of_sourdough.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
|
end
|
||||||
|
|
||||||
def mark_menu_as_selected_if_on_page(text, filename)
|
def mark_menu_as_selected_if_on_page(text, filename)
|
||||||
doc = build_doc(text)
|
doc = build_doc(text)
|
||||||
return doc.to_html
|
|
||||||
|
|
||||||
selected = doc.css(".menu-items .chapterToc > a").find do |el|
|
selected = doc.css(".menu-items .chapterToc > a").find do |el|
|
||||||
el["href"] == ""
|
el["href"] == ""
|
||||||
@@ -432,7 +535,17 @@ class ModifyBuild
|
|||||||
# Special case for the flowcharts page which is added by us to the menu.
|
# 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
|
# This needs to be done for future manually added pages too
|
||||||
if "listoflocname.html" == filename
|
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
|
return doc.to_html
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -441,7 +554,7 @@ class ModifyBuild
|
|||||||
# Fix that when the menu is selected the href is empty. This way users can
|
# Fix that when the menu is selected the href is empty. This way users can
|
||||||
# click the menu and the page will reload.
|
# click the menu and the page will reload.
|
||||||
selected["href"] = filename
|
selected["href"] = filename
|
||||||
selected.parent.add_class("selected")
|
selected.ancestors(".menu-group")[0].add_class("selected")
|
||||||
doc.to_html
|
doc.to_html
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -472,14 +585,28 @@ class ModifyBuild
|
|||||||
def add_text_to_coverpage(text, filename)
|
def add_text_to_coverpage(text, filename)
|
||||||
return text unless is_cover_page?(filename)
|
return text unless is_cover_page?(filename)
|
||||||
doc = build_doc(text)
|
doc = build_doc(text)
|
||||||
content = doc.css(".titlepage")[0]
|
content = doc.css(".main-content")[0]
|
||||||
raise ArgumentError.new(".titlepage not found in HTML") if content.nil?
|
|
||||||
|
|
||||||
content.add_class("main-content")
|
|
||||||
content.inner_html = "#{build_cover_page_content} #{content.inner_html}"
|
content.inner_html = "#{build_cover_page_content} #{content.inner_html}"
|
||||||
doc.to_html
|
doc.to_html
|
||||||
end
|
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
|
def build_cover_page_content
|
||||||
%Q{
|
%Q{
|
||||||
<h2 class="chapterHead home-title">
|
<h2 class="chapterHead home-title">
|
||||||
@@ -586,13 +713,10 @@ class ModifyBuild
|
|||||||
# this.
|
# this.
|
||||||
def fix_menus_list_figures_tables(text)
|
def fix_menus_list_figures_tables(text)
|
||||||
doc = build_doc(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|
|
content.each do |node|
|
||||||
node.remove
|
node.ancestors(".menu-entry")[0].remove
|
||||||
end
|
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
|
doc.to_html
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -626,6 +750,69 @@ class ModifyBuild
|
|||||||
end
|
end
|
||||||
doc.to_html
|
doc.to_html
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
ModifyBuild.build
|
ModifyBuild.build
|
||||||
|
|||||||