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:
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
IMAGE: ghcr.io/${{ github.repository }}:${{ github.event.pull_request.head.ref }}
|
||||
workflow_call:
|
||||
inputs:
|
||||
docker-image:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build-and-push-image:
|
||||
uses: ./.github/workflows/docker-build-push.yml
|
||||
|
||||
test-building-book-website:
|
||||
needs: build-and-push-image
|
||||
test-book-website:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Set up git repository
|
||||
@@ -19,7 +16,7 @@ jobs:
|
||||
- name: Print dependency versions
|
||||
uses: addnab/docker-run-action@v3
|
||||
with:
|
||||
image: ${{ env.IMAGE }}
|
||||
image: ${{ inputs.docker-image }}
|
||||
options: -v ${{ github.workspace }}:/app
|
||||
run: |
|
||||
cd /app/book
|
||||
@@ -27,7 +24,7 @@ jobs:
|
||||
- name: Print build variables
|
||||
uses: addnab/docker-run-action@v3
|
||||
with:
|
||||
image: ${{ env.IMAGE }}
|
||||
image: ${{ inputs.docker-image }}
|
||||
options: -v ${{ github.workspace }}:/app
|
||||
run: |
|
||||
cd /app/book
|
||||
@@ -35,7 +32,7 @@ jobs:
|
||||
- name: Test baking the release versions
|
||||
uses: addnab/docker-run-action@v3
|
||||
with:
|
||||
image: ${{ env.IMAGE }}
|
||||
image: ${{ inputs.docker-image }}
|
||||
options: -v ${{ github.workspace }}:/app
|
||||
run: |
|
||||
cd /app/book
|
||||
@@ -51,7 +48,7 @@ jobs:
|
||||
- name: Test building website
|
||||
uses: addnab/docker-run-action@v3
|
||||
with:
|
||||
image: ${{ env.IMAGE }}
|
||||
image: ${{ inputs.docker-image }}
|
||||
options: -v ${{ github.workspace }}:/app
|
||||
run: |
|
||||
cd /app/book
|
||||
|
||||
2
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
.DS_Store
|
||||
*.xbb
|
||||
*.aux
|
||||
*.fdb_latexmk
|
||||
@@ -14,6 +15,7 @@
|
||||
*.dlog
|
||||
*.bak
|
||||
*.opf
|
||||
.DS_Store
|
||||
book/book.out
|
||||
.vscode/
|
||||
book/bookch*
|
||||
|
||||
@@ -55,6 +55,11 @@ RUN wget https://github.com/mgieseki/dvisvgm/releases/download/3.1.2/dvisvgm-3.1
|
||||
make && \
|
||||
make install
|
||||
|
||||
RUN git clone https://github.com/michal-h21/make4ht.git && \
|
||||
cd make4ht && \
|
||||
make && \
|
||||
make install
|
||||
|
||||
# Make sure everything is UTF-8
|
||||
RUN echo "export LC_ALL=en_US.UTF-8" >> /root/.bashrc && \
|
||||
echo "export LANG=en_US.UTF-8" >> /root/.bashrc
|
||||
|
||||
@@ -69,7 +69,7 @@ acid? How would the taste change?
|
||||
methods. In this case I~used a Dutch oven and an apple as dough
|
||||
replacement. All the apples were coming from the fridge. The temperature
|
||||
was measured using a barbecue thermometer. The more steam, the faster
|
||||
the surface temperature increases.}
|
||||
the apple's surface temperature increases.}
|
||||
\end{figure}
|
||||
|
||||
As the temperature increases further the crust thickens. The Maillard reaction
|
||||
@@ -245,7 +245,7 @@ as the size of the Dutch oven is limited.
|
||||
In many cases, it makes sense to bake multiple
|
||||
loaves in one go. It makes the whole process more
|
||||
efficient as you have to knead less per loaf. The time it
|
||||
takes to make one loaf is significantly reduced. Furthermore,
|
||||
takes to make one loaf is significantly reduced on average. Furthermore,
|
||||
you don't require as much energy. You don't have
|
||||
to preheat your oven twice for each loaf.
|
||||
|
||||
|
||||
@@ -211,9 +211,11 @@ tweak just by adjusting the speed of your dough's fermentation.
|
||||
|
||||
\section{Yeast}
|
||||
|
||||
Yeasts are single-celled microorganisms belonging to the fungi kingdom, and
|
||||
spores that are hundreds of millions of years old have been identified by
|
||||
scientists. There are a wide variety of species --- so far, about \num{1500}
|
||||
Yeasts are single-celled microorganisms belonging to the fungi kingdom. They
|
||||
can reproduce through either budding or by building spores. The spores are
|
||||
incredibly tiny and resistant to external factors. Scientists have found undamaged
|
||||
spores that are hundreds of million years old. There are a wide variety of
|
||||
species --- so far, about \num{1500}
|
||||
have been identified. Unlike other members of the fungi kingdom such as mold,
|
||||
yeasts do not ordinarily create a mycelium
|
||||
network~\cite{molecular+mechanisms+yeast}.\footnote{For one interesting
|
||||
@@ -341,8 +343,8 @@ breads~\cite{shelflife+acidity}.
|
||||
|
||||
\begin{figure}
|
||||
\includegraphics[width=1.0\textwidth]{bacteria-microscope}
|
||||
\caption[Bacteria under the microscope]{Fructilactobacillus Sanfranciscensis
|
||||
under the microscope.}%
|
||||
\caption[Bacteria under the microscope]{Fructilactobacillus
|
||||
sanfranciscensis under the microscope.}%
|
||||
\label{lactobacillus-franciscensis-microscope}
|
||||
\end{figure}
|
||||
|
||||
|
||||
@@ -7,3 +7,12 @@
|
||||
object-fit: contain;
|
||||
width: auto;
|
||||
}
|
||||
.float {
|
||||
max-width: 100%;
|
||||
}
|
||||
.float img {
|
||||
max-width: 100% !important;
|
||||
height: auto;
|
||||
object-fit: contain;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
@@ -41,8 +41,8 @@ To make a flatbread no oven is required; all you need is a stove.
|
||||
\end{figure}
|
||||
|
||||
This type of bread is super simple to make as you can skip
|
||||
a lot of the technique that is normally required. The flatbread
|
||||
can be made with all kinds of flours. You can even use
|
||||
a lot of the technique that is normally required to make wheat doughs.
|
||||
The flatbread can be made with all kinds of flours. You can even use
|
||||
flour without gluten, such as corn or rice flour, to make the
|
||||
dough. To make the flatbread a little more fluffy, you
|
||||
can use a little bit of wheat flour. The developing gluten
|
||||
@@ -231,7 +231,8 @@ bake. A similar strategy is used when making corn tortillas.
|
||||
|
||||
You can safely store the baked flatbreads or pancakes in your fridge
|
||||
for weeks. When storing make sure to store them in an airtight plastic bag so that
|
||||
they do not dry out.
|
||||
they do not dry out. If they dry out, spray them with some water and toast them.
|
||||
They will be almost as good as when they were freshly baked.
|
||||
|
||||
Keep a little bit of your unbaked dough. You can use it to make the next
|
||||
batch of bread or pancakes for the next day. If you want to bake a few days later, add
|
||||
@@ -344,10 +345,9 @@ evaporating moisture will stay inside.
|
||||
A good trick to make excellent loaf pan bread is to make a very
|
||||
sticky dough. You can opt for a hydration of \qtyrange{90}{100}{\percent}, almost
|
||||
resembling a default sourdough starter. Just like with flatbread,
|
||||
the high humidity helps to make a more airy, fluffy crumb. At
|
||||
the same time the bread will be a bit chewier. This
|
||||
type of bread made with rye is my family's favorite style of bread.
|
||||
The hearty rye flavor paired with the sticky consistency really
|
||||
the high humidity helps to make a more airy, fluffy crumb. The bread will
|
||||
also be a bit chewier. This type of bread made with rye is my family's favorite
|
||||
style of bread. The hearty rye flavor paired with the sticky consistency really
|
||||
makes an excellent sandwich bread.
|
||||
|
||||
To improve the structure you can also consider using around \qty{50}{\percent}
|
||||
@@ -385,13 +385,12 @@ and tools are required.
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
Normally you mix your dough, when using wheat you make sure that you mix
|
||||
enough to develop a gluten network. You allow the dough to reach a certain
|
||||
size increase during the fermentation, afterwards you divide and pre-shape the
|
||||
dough into the desired visual shape that you like. Each shape requires a
|
||||
different technique. Sometimes achieving exactly the right shape can be
|
||||
challenging, making a baguette for instance, requires you to perform more
|
||||
steps. Mastering this technique takes several attempts.
|
||||
When using wheat, make sure to mix your dough enough to develop a gluten network.
|
||||
Allow the dough to reach a certain size increase during the fermentation.
|
||||
Afterward, divide and pre-shape the dough into the desired visual shape you
|
||||
would like. Each shape requires a different technique. Sometimes achieving
|
||||
the right shape can be challenging. Making a baguette, for instance,
|
||||
requires performing more steps. Mastering this technique takes several attempts.
|
||||
|
||||
Once the dough is shaped, it is proofed again for a certain
|
||||
period of time. Once the dough is ready, a sharp tool such
|
||||
@@ -403,5 +402,5 @@ performed perfectly, without mistakes.
|
||||
But after baking you will be rewarded with a beautiful bread
|
||||
with great taste and consistency.
|
||||
|
||||
There is a fully dedicated recipe and tutorial
|
||||
for this type of bread in the~''\nameref{chapter:wheat-sourdough}''~Chapter.
|
||||
There is a dedicated recipe and tutorial for this type of bread in the
|
||||
\nameref{chapter:wheat-sourdough} chapter.
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
\draw[line width=1pt] (\textwidth,0.1) -- (\textwidth,-0.1);
|
||||
|
||||
% Full timeline width for billion years
|
||||
\draw[stealth-stealth, line width=1pt] (0,-3.8) -- node[midway, timeline_timespan] {5.45 billion years} (\textwidth,-3.8);
|
||||
\draw[stealth-stealth, line width=1pt] (0,-3.8) -- node[midway, timeline_timespan] {4.45 billion years} (\textwidth,-3.8);
|
||||
|
||||
% Indicator for the period of 3 months = 1.1 billion years
|
||||
\draw[stealth-stealth, line width=1pt] (0,-1.0) -- node[midway, timeline_timespan] {1.11 billion years} ({\segmentwidth * 3},-1.0);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\node [decision_start] (init) {Room temperature proofing?};
|
||||
\node [decision_start] (init) {Room temperature-proofing?};
|
||||
\node [decision, right of=init, node distance=8cm] (retard_bake_decision) {Bake in less than \qty{10}{\hour} from now?};
|
||||
\node [block, below of=init, node distance=4cm] (poke) {Poke the dough};
|
||||
\node [block, left of=poke] (wait_poke) {Wait\\ 15~minutes};
|
||||
|
||||
@@ -141,7 +141,7 @@ This also provides a larger surface that your microbes can use to attack the mol
|
||||
and start the fermentation process.
|
||||
|
||||
I~am still
|
||||
yet to find a good way of milling my own flour at home. Even after trying to
|
||||
yet to find a good way of milling my own wheat flour at home. Even after trying to
|
||||
mill the flour 10~times with short breaks, I~was not able to achieve the same
|
||||
properties as with commercially milled flour. The doughs I~would make felt
|
||||
good, maybe a bit coarse. However, during baking the doughs would start to
|
||||
|
||||
@@ -15,6 +15,17 @@ acid bacteria and acetic acid bacteria during fermentation. It gives sourdough b
|
||||
its characteristic tangy flavor and helps to preserve the bread by lowering its pH.
|
||||
The flavor of acetic acid has a more vinegary profile.
|
||||
|
||||
\item[Aliquot jar] A small piece of dough extracted after creating initial
|
||||
dough strength. The aliquot jar is used to monitor the dough's fermentation progress.
|
||||
It's important to ensure the dough's water temperature in the aliquot matches
|
||||
your room temperature for accurate readings. Be mindful that the aliquot
|
||||
jar may not be as effective if there are significant temperature
|
||||
fluctuations in your kitchen. This is because the small dough sample in
|
||||
the aliquot can heat up or cool down faster than the main dough mass,
|
||||
potentially impairing its ability to accurately monitor fermentation.
|
||||
It's crucial to use a cylindrical-shaped aliquot container to properly judge
|
||||
the dough's size increase.
|
||||
|
||||
\item[All Purpose Flour] A general flour that’s balanced to make breads and also
|
||||
cakes. In Germany this is type~550.
|
||||
|
||||
@@ -104,6 +115,14 @@ proof. The bannetons are typically made out of rattan or wood pulp. An alternati
|
||||
DIY solution is to use a bowl with a kitchen towel inside. While resting inside of
|
||||
the banneton the 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
|
||||
allowing the gluten to relax a little bit and making shaping easier. Most people
|
||||
bench rest for 10 minutes up to an hour. The bench rest becomes especially important
|
||||
@@ -194,6 +213,39 @@ of starter is used for the fermentolyse. The flour, water and starter are mixed
|
||||
together. By adding the starter early the dough becomes more extensible and easier
|
||||
to handle.
|
||||
|
||||
\item[Finger poke test] The finger poke test is a simple yet effective way to
|
||||
check if your sourdough bread is ready to bake. After the final rise, lightly
|
||||
flour your finger and gently press about half an inch into the dough.
|
||||
If the dough springs back slowly and leaves a slight indentation, it's perfect
|
||||
and ready for the oven. If it springs back quickly, it needs more time to rise.
|
||||
However, if the dough collapses or doesn't spring back at all, it may be
|
||||
over fermented.
|
||||
|
||||
\item[Float test] The float test is a technique for assessing the readiness
|
||||
of a sourdough starter. To perform this test, take a small sample of
|
||||
your starter and gently place it in a glass of water. The outcome
|
||||
of this test can provide insights into your starter's fermentation stage.
|
||||
|
||||
\begin{itemize}
|
||||
\item[] \emph{Positive result:} If your starter effortlessly floats on the
|
||||
surface of the water, it's a clear indication that it has reached its peak
|
||||
of fermentation and is ready to be used as a leavening agent in your dough.
|
||||
This buoyancy is a result of the carbon dioxide gas produced during
|
||||
the active fermentation process.
|
||||
\item[] \emph{Negative result:} Conversely, if your starter sinks to the
|
||||
bottom of the glass, it suggests that it's not quite ready yet.
|
||||
This indicates that the fermentation process has not progressed
|
||||
sufficiently for optimal leavening power.
|
||||
\end{itemize}
|
||||
|
||||
It's worth noting that while the float test is a reliable indicator
|
||||
for wheat-based sourdough starters, it may not be as effective for non-wheat
|
||||
starters. This is because the gas generated during fermentation in non-wheat
|
||||
starters tends to escape more readily, making it less buoyant. For non-wheat
|
||||
starters, a more accurate approach involves observing the presence of
|
||||
bubbles in your starter jar and assessing its aroma. A mature starter should
|
||||
emit a mildly sour, but not overly pungent, scent.
|
||||
|
||||
\item[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
|
||||
isn't necessarily a desired feature, as it can indicate uneven fermentation or
|
||||
@@ -225,6 +277,8 @@ to prevent clumping and burning it.
|
||||
fermentation. It imparts a mild tangy yogurty flavor to sourdough bread and, along
|
||||
with acetic acid, contributes to the bread's overall acidity.
|
||||
|
||||
\item[Levain] See Sourdough starter.
|
||||
|
||||
\item[Maillard Reaction] The Maillard reaction is one of the causes of food browning
|
||||
during cooking. The reaction occurs between reducing sugars and amino acids, and
|
||||
depending on the initial reactants and cooking conditions can produce a wide variety
|
||||
@@ -324,7 +378,8 @@ stage by placing the dough in a colder environment, typically a refrigerator. Th
|
||||
bakers in scheduling, allowing them to have more control over when to bake their breads,
|
||||
especially in large-scale bakeries where timing is essential to serve freshly baked bread
|
||||
to early morning customers. While scheduling is the main reason, some bakers also assert
|
||||
that retarding can enhance the bread's overall flavor profile.
|
||||
that retarding can enhance the bread's overall flavor profile. Also known as
|
||||
fridge-proofing.
|
||||
|
||||
\item[Rye] A type of grain used in baking. Due to its low gluten content, breads
|
||||
made solely from rye flour tend to be dense. However, rye has a unique flavor and
|
||||
@@ -340,10 +395,6 @@ quality. The scalding technique can also enhance the overall flavor and aroma of
|
||||
the bread, bringing out more pronounced grainy notes and reducing bitterness
|
||||
sometimes found in certain whole grains.
|
||||
|
||||
\item[Scalding] A method where boiling water is poured over flour and then cooled
|
||||
down to room temperature. This process gelatinizes the starches in the flour,
|
||||
resulting in a dough that retains moisture better and has an improved shelf life.
|
||||
|
||||
\item[Scoring] Cutting the surface of the bread dough before it's baked. This
|
||||
allows the dough to expand freely in the oven, preventing it from bursting in
|
||||
unpredictable ways. It also provides a controlled aesthetic to the finished loaf.
|
||||
@@ -351,9 +402,10 @@ unpredictable ways. It also provides a controlled aesthetic to the finished loaf
|
||||
\item[Sift] To pass flour or another dry ingredient through a sieve to
|
||||
remove lumps and aerate it.
|
||||
|
||||
\item[Soaker] A mixture of grain and water that is left to soak overnight (or for a
|
||||
\item[Soaker] A mixture of grains or seeds with water that is left to soak overnight (or for a
|
||||
specified amount of time) before being incorporated into bread dough. This helps to
|
||||
soften and hydrate the grains, making them easier to integrate into the dough and
|
||||
soften and hydrate the grains or seeds (sesame, pumpkin, etc.), making them
|
||||
easier to integrate into the dough and
|
||||
providing a moister crumb in the finished bread.
|
||||
|
||||
\item[Sponge] A type of preferment, a sponge is a wet mixture of flour, water, and
|
||||
@@ -389,8 +441,17 @@ with the plant providing a shield against pathogens and receiving sugars from th
|
||||
photosynthesis of the plant in return. When the plant becomes weak the wild yeasts
|
||||
can become parasitic and consume the host.
|
||||
|
||||
\item[W-Value] A parameter representing the strength of flour in terms of its
|
||||
baking quality. The W-value, derived from the Chopin Alveograph test,
|
||||
measures the energy required to blow a bubble with the dough until it bursts.
|
||||
It is a direct indicator of the flour's ability to withstand the fermentation
|
||||
and baking processes. A higher W-value typically indicates a stronger
|
||||
flour, suitable for breads with high volume and longer fermentation times.
|
||||
Conversely, a lower W-value suggests a weaker flour, better suited for
|
||||
products requiring less structure, like cakes and pastries.
|
||||
|
||||
\item[Yeast] Microorganisms that ferment the sugars present in the dough, producing
|
||||
carbon dioxide and alcohol and thereby causing the dough to rise.
|
||||
carbon alcohol, carbon dioxide and heat; thereby causing the dough to rise.
|
||||
|
||||
\item[Yudane] A Japanese method of bread-making which involves the preparation
|
||||
of a starter by mixing boiling water with bread flour in a specific ratio, typically 1:1
|
||||
|
||||
@@ -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.
|
||||
The black color was not coming from the flour, but from caramelized sugar.
|
||||
The packaging stated it was a sourdough bread, but then why was there additional yeast?
|
||||
I~thought that if it was really sourdough, it shouldn't require additional yeast, and I~soon
|
||||
I~thought that if it was really sourdough, it shouldn't require additional
|
||||
yeast. I~soon
|
||||
realized that something was wrong with the bread I~was buying.
|
||||
I~proceeded to check the other supermarket breads, only to discover that they, too,
|
||||
contained ingredients I'd never heard of. That was the day I~lost trust
|
||||
@@ -162,8 +163,8 @@ and more. It should provide a detailed understanding as to why certain steps are
|
||||
and how to adapt them when things go wrong while making bread.
|
||||
It is my desire for this knowledge to be accessible to everyone around the world, regardless
|
||||
of budget, and as such, I~do not want to charge for the book. That's why I've decided to make
|
||||
it open source and have asked the community to support my work financially via my ko-fi page
|
||||
\url{https://ko-fi.com/thebreadcode}. The community's feedback has been amazing so far, and
|
||||
it open source and have asked the community to support my work with
|
||||
donations. The community's feedback has been amazing so far, and
|
||||
I've already raised much more money than initially expected. The digital version of this book
|
||||
will always remain free. There is also a hardcover version of the book available for purchase.
|
||||
You can read more details here: \url{https://breadco.de/physical-book}
|
||||
|
||||
@@ -49,9 +49,11 @@ images += $(foreach directory, $(chapters), $(wildcard $(directory)/*/*.png))
|
||||
# images to lower resolution and greyscale
|
||||
bw_images := $(addprefix bw-book-epub/OEBPS/, $(images))
|
||||
|
||||
src_all := $(src_tex) $(src_figures) $(src_tables) tex4ebook.cfg book.mk4 $(images)
|
||||
src_all := $(src_tex) $(src_figures) $(src_tables) $(images)
|
||||
|
||||
website_src := $(src_all) website.cfg
|
||||
ebook_src := $(src_all) tex4ebook.cfg book.mk4 book-ebook.css
|
||||
|
||||
website_src := $(src_all) website.cfg style.css
|
||||
|
||||
website_assets := $(wildcard ../website/assets/*)
|
||||
ruby_src := ../website/modify_build.rb $(website_assets)
|
||||
@@ -89,7 +91,7 @@ book_sans_serif/book_sans_serif.pdf: $(src_all)
|
||||
|
||||
.PHONY: copy_ebook_files
|
||||
|
||||
epub/%.epub: %.tex $(src_all) cover/cover-page.xbb
|
||||
epub/%.epub: %.tex $(ebook_src) cover/cover-page.xbb
|
||||
$(EBOOK) $<
|
||||
|
||||
copy_ebook_files: build_ebook
|
||||
@@ -221,9 +223,9 @@ clean: clean_ebook_build clean_figures clean_website_build
|
||||
$(CLEAN) -output-directory=book_serif book.tex
|
||||
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
|
||||
-rm book*/*.{bbl,loc,.run.xml}
|
||||
-rm -rf book*-epub/META-INF
|
||||
-rm -rf book*-epub/OEBPS
|
||||
-rm book*-epub/mimetype
|
||||
-rm -rf *book-epub/META-INF
|
||||
-rm -rf *book-epub/OEBPS
|
||||
-rm *book-epub/mimetype
|
||||
|
||||
mrproper: clean
|
||||
$(CLEAN) -C $(src_figures)
|
||||
@@ -236,7 +238,7 @@ mrproper: clean
|
||||
-rm -rf release/
|
||||
-rm -rf book_serif/
|
||||
-rm -rf book_sans_serif/
|
||||
-rm -rf book-epub/
|
||||
-rm -rf *book-epub/
|
||||
-rm -rf $(website_dir)
|
||||
|
||||
# top level releases rules
|
||||
|
||||
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}%
|
||||
\label{ch:mix-ins}
|
||||
\begin{quoting}
|
||||
This work-in-progress chapter will describes altering and additions you
|
||||
could make to your dough to create beautiful or different tasting loafs.
|
||||
In this chapter, you will learn about the fascinating world of sourdough
|
||||
mix-ins. Discover how these additions can elevate your bread, enhancing
|
||||
flavor, adding vibrant colors, and creating delightful textures that make
|
||||
each loaf a culinary masterpiece.
|
||||
\end{quoting}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\includegraphics[width=\textwidth]{pumpkin-sourdough}
|
||||
\caption[Pumpkin sourdough softbuns]{These soft pull-apart sourdough
|
||||
buns have been made with the addition of pumpkin purée. The mashed pumpkin
|
||||
adds flavor and hydration to the dough.}%
|
||||
\end{figure}
|
||||
|
||||
A loaf of wheat sourdough has a very pure aesthetic. Good craftsmanship and
|
||||
precision transforms the ingredients into simple, but delicious food. With
|
||||
precision transform the ingredients into simple, but delicious food. With
|
||||
mix-ins, the basic recipe can become the starting point for a whole world of
|
||||
modifications to try and combine. Think of the loaf of bread as a blank canvas
|
||||
to express yourself.
|
||||
|
||||
One approach to sort through the options is to categorize mix-ins by shape
|
||||
(the transition between these categories is somewhat fuzzy):
|
||||
\section{Categories}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\includegraphics[width=\textwidth]{pumpkin-on-flour}
|
||||
\caption[Pumpkin puré]{A common mix-in technique is to replace some of
|
||||
the dough's water with another liquid. In this case, puréd pumpkin replaced
|
||||
some of the water. When adding puré to the dough only slowly add
|
||||
additional water as the puré slowly releases additional water to the
|
||||
dough.}%
|
||||
\end{figure}
|
||||
|
||||
One approach to categorizing the mixins is to look at their respective shape.
|
||||
However, the transition between these categories is somewhat fuzzy:
|
||||
|
||||
\begin{itemize}
|
||||
\item Liquids: Integrate homogeneously into the dough, may replace some of
|
||||
the water. Examples: Milk, oil, spinach juice.
|
||||
or all of the water. Examples: Milk, butter, oil, spinach juice, tomato
|
||||
juice, eggs
|
||||
\item Powders: Integrate homogeneously into the dough, may replace some of
|
||||
the flour. Examples: Rye flour, semolina, cocoa, ground spices.
|
||||
the flour. Examples: Milk powder, semolina, cocoa, spices
|
||||
\item Small bits: Individually visible in the final loaf, small enough to
|
||||
distribute somewhat evenly throughout the dough. Examples: Seeds (poppy
|
||||
seeds, sesame, pumpkin seeds), whole spices (coriander).
|
||||
distribute somewhat evenly throughout the dough. Examples: Seeds (wheat
|
||||
berries, rye berries, poppy seeds, sesame, pumpkin seeds,
|
||||
flax seeds), whole spices (coriander)
|
||||
\item Chunks: Larger pieces that will only be present in the occasional bite
|
||||
when eating a slice of your bread. Examples: dried tomatoes, chunks of
|
||||
cheese,
|
||||
cheese, chunks of chocolate
|
||||
\end{itemize}
|
||||
|
||||
Another categorization approach looks at the changes to the bread. Most
|
||||
mix-ins actually impact multiple aspects.
|
||||
Another categorization approach looks at the changes to the bread:
|
||||
|
||||
\begin{itemize}
|
||||
\item Flavor: Significantly changes the taste of the bread. Examples: rye
|
||||
flour, spices.
|
||||
flour, corn flour, spices, sugar.
|
||||
\item Color: Significantly changes the look of the bread. Examples: cocoa,
|
||||
squid ink, beetroot juice.
|
||||
squid ink, beetroot juice, tomato juice.
|
||||
\item Texture: Significantly changes the feeling in the mouth when eaten.
|
||||
Examples: Cheese (gummy), seeds (crunchy), olives (squishy chunks).
|
||||
\end{itemize}
|
||||
|
||||
Many of the above-listed mix-ins can't be pinpointed to a single category. They
|
||||
change multiple aspects of the final bread at the same time.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\includegraphics[width=\textwidth]{seeded-sourdough}
|
||||
\caption[Seeded sourdough]{In this case a combination of flax, sunflower and
|
||||
sesame was added to the dough. The seeds will slightly dehydrate the dough
|
||||
during fermentation and thus adding a bit more water (\qtyrange{1}{2}{\percent}) is advised.}%
|
||||
\end{figure}
|
||||
|
||||
Mix-ins affect the structure of the dough. One aspect is the impact on
|
||||
hydration. Some mix-ins absorb a lot of water when added to the dough, so you
|
||||
have to increase the amount of water to achieve the same dough consistency.
|
||||
The other impact is on the gluten network. Bits and chunks disrupt the gluten
|
||||
network, and may reduce the rise. All of this depends on the amount of mix-ins
|
||||
network and may reduce oven spring during baking. All of this depends on the amount of mix-ins
|
||||
used. A good rule of thumb is to add \qtyrange{10}{20}{\percent} of the amount
|
||||
of flour in most mix-ins, reduced to around \qtyrange{1}{5}{\percent} of the
|
||||
amount of flour for spices.
|
||||
|
||||
An important factor is also the mix-in's behavior during baking. Particularly
|
||||
chunks may bake differently than dough, and either melt (cheese) leaving holes
|
||||
inside, or char when peeking through the crust (\eg, vegetables). These
|
||||
problems can be mitigated to some degree with the right preparation (\eg,
|
||||
chopping into smaller pieces, soaking dry ingredients in water or oil first,
|
||||
inside, or char when peeking through the crust (\eg~vegetables). These
|
||||
problems can be mitigated to some degree with the right preparation (\eg~chopping
|
||||
into smaller pieces, soaking dry ingredients in water or oil first,
|
||||
or squeezing out excess moisture).
|
||||
% potential reference to link: https://food52.com/blog/25521-additions-to-sourdough-bread-ideas
|
||||
|
||||
\section{Examples}
|
||||
|
||||
The following is a list of common mix-ins and their peculiarities:
|
||||
The following is a list of common mix-ins and their peculiarities. They can be
|
||||
combined depending on your preference.
|
||||
|
||||
\subsection{Flours}
|
||||
These are powders. Usually you want to just replace some fraction of the
|
||||
These are powders. Usually, you want to just replace some fraction of the
|
||||
regular bread flour. Different flours change the taste of the bread and
|
||||
usually moderately affect the color.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\includegraphics[width=\textwidth]{broa}
|
||||
\caption[Broa de milho]{Broa de milho is a traditional Portuguese bread
|
||||
made out of half rye and half corn flour.}%
|
||||
\end{figure}
|
||||
|
||||
\begin{itemize}
|
||||
\item Whole wheat flour (substitute any amount, makes the bread taste more
|
||||
complex, nutty)
|
||||
\item Rye flour (very hearty, nutty, malty taste)
|
||||
\item Semolina (supports mediterranean flavors)
|
||||
\item Enzymatic malt (malty taste, improves enzymatic activity). The malt is
|
||||
a great addition when making quicker yeast-based doughs.
|
||||
\item Semolina (supports Mediterranean flavors)
|
||||
\item Cocoa (replace \qty{10}{\percent} of the flour for a black loaf, goes
|
||||
great with sweet toppings)
|
||||
\item Other non-wheat flours such as: Chickpea, corn, hemp, potato etc.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Liquids}
|
||||
Substitute some of the water with a different liquid, affecting taste and
|
||||
texture.
|
||||
|
||||
Instead of using water, you can substitute it with a different liquid,
|
||||
affecting taste and texture.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\includegraphics[width=\textwidth]{beer-bread}
|
||||
\caption[Stout beer bread]{Dark hearty stouts work excellently as a water replacement
|
||||
when making sourdough bread. The resulting loaf features a hearty malty taste}%
|
||||
\end{figure}
|
||||
|
||||
\begin{itemize}
|
||||
\item Coffee
|
||||
\item Beer
|
||||
\item Olive oil (mediterranean)
|
||||
\item Milk (for sweet, soft breads)
|
||||
\item Butter
|
||||
\item Buttermilk
|
||||
\item Cereal milk (the leftover milk from eating cereals)
|
||||
\item Coffee
|
||||
\item Eggs
|
||||
\item Fruit/vegetable juices (also see Section~\ref{section:colors})
|
||||
\item Milk (for sweet, soft breads)
|
||||
\item Milk alternatives such as: Almond, oat, soy etc.
|
||||
\item Mashed potatoes
|
||||
\item Mashed sweet potatoes. Bolo do caco is a typical bread from Madeira,
|
||||
made from \qty{50}{\percent} wheat flour and \qty{50}{\percent} mashed potatoes.
|
||||
\item Olive oil (Mediterranean)
|
||||
\item Other mashed vegetables such as: Beets, pumpkin, etc.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Colors}
|
||||
These drastically change the color of the bread.
|
||||
\label{section:colors}
|
||||
Some mix-ins will change the color and flavor of your bread. Common colorings
|
||||
include:
|
||||
|
||||
\begin{itemize}
|
||||
\item Activated charcoal powder (black)
|
||||
\item Beetroot juice (red)
|
||||
\item Blueberry juice (blue)
|
||||
\item Blue butterfly pea flower powder (blue)
|
||||
\item Carrot juice (orange)
|
||||
\item Pear juice (pink)
|
||||
\item Spinach juice (green)
|
||||
\item Squid ink (black)
|
||||
\item Strawberry juice (red)
|
||||
\item Tomato juice (red)
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Seeds and nuts}
|
||||
These are small bits, with some almost crossing into the chunk category. Most
|
||||
seeds benefit from being baked for about 10~minutes before adding them to the
|
||||
These are small bits, with some almost crossing into the chunk category. Some
|
||||
seeds benefit from being boiled for about 10~minutes before adding them to the
|
||||
dough.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\includegraphics[width=\textwidth]{stollen-close-up}
|
||||
\caption[Stollen closeup]{The Stollen is a traditional German sweet Christmas
|
||||
bread featuring a variety of mix-ins. The dough typically contains candied lemon,
|
||||
candied orange, and raisins. The mix-ins are soaked in rum before being added to
|
||||
the dough. While the stollen matures after baking (up to \num{6} months) the candied ingredients release
|
||||
their aroma to the baked product.}%
|
||||
\end{figure}
|
||||
|
||||
\begin{itemize}
|
||||
\item Pumpkin seed
|
||||
\item Cacao nibs
|
||||
\item Chia seed
|
||||
\item Flaxseed (soak these in water first)
|
||||
\item Hemp seed (very crunchy, a personal favorite)
|
||||
\item Chopped or whole nuts such as: Almonds, hazelnuts and walnuts
|
||||
\item Flaxseeds
|
||||
\item Hemp seed
|
||||
\item Poppy seed
|
||||
\item Pumpkin seed
|
||||
\item Sesame
|
||||
\item Sunflower seed
|
||||
\item Poppy seed
|
||||
\item Cacao nibs
|
||||
\item Chopped or whole walnuts
|
||||
\item Chopped or whole hazelnuts
|
||||
\item Whole rye berries (boil 10 minutes)
|
||||
\item Whole wheat berries (boil 10 minutes)
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\includegraphics[width=\textwidth]{seeds-bread}
|
||||
\caption[Whole-rye with rye berries]{A sourdough bread made with half whole-rye flour and half rye berries. The
|
||||
berries are typically boiled for 10~minutes to allow them to soften a bit. When baking a loaf
|
||||
it is advised to use a thermometer to measure whether it is done baking. The final bread
|
||||
features a hearty tangy flavor and has a moist crumb.}%
|
||||
\end{figure}
|
||||
|
||||
\subsection{Spices and flavor mix-ins}
|
||||
These are mostly powders or small bits.
|
||||
|
||||
\begin{itemize}
|
||||
\item Mediterranean herbs (oregano, thyme, rosemary, marjoram)
|
||||
\item Bread spice (coriander, cumin, fennel, anise)
|
||||
\item Grated hard cheese: Gruyère, parmesan
|
||||
\item Blueberry skins (press through sieve to remove juice, raw blueberries
|
||||
would add too much water)
|
||||
\item Lemon zest (alternatively orange or lime)
|
||||
\item Blueberry skins (press through a sieve to remove juice, raw blueberries
|
||||
\item Browned onions
|
||||
\item Molasses
|
||||
\item Candied fruits such as: Lemon, orange, pineapple, etc.
|
||||
\item Cinnamon
|
||||
\item Grated hard cheese such as: Gruyère, parmesan, etc.
|
||||
\item Mediterranean herbs such as: Marjoram, oregano, rosemary, thyme, etc.
|
||||
\item Miso
|
||||
\item Molasses
|
||||
\item Sugar
|
||||
\item Spices such as: Anise, fennel, cinnamon, coriander, cumin, etc.
|
||||
\item Zests such as: Lime, Lemon, orange, etc.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Highlights}
|
||||
Mostly chunks, that add a big contrast and flavorful highlight to the basic
|
||||
bread. Usually you want to use only one (or maximum two) of these. Often can
|
||||
be complemented well by some flavor mix-in or flour.
|
||||
bread. Usually, you want to use only one (or a maximum of two) of these. The suggestions
|
||||
can often be complemented by some flavor or flour mix-in.
|
||||
|
||||
\begin{itemize}
|
||||
\item Chocolate chunks or drops
|
||||
\item Chunks of black garlic
|
||||
\item Chunks of cheese such as: Cheddar, feta, etc.
|
||||
\item Cornflakes
|
||||
\item Dried fruits such as: Cranberries, dates, raisins, etc.
|
||||
\item Olives
|
||||
\item Pickled pepperoni
|
||||
\item Sundried tomatoes (squeeze out the oil if using pickled ones, or soak
|
||||
dried ones in water)
|
||||
\item Pickled pepperoni
|
||||
\item Cornflakes
|
||||
\item Dried fruit (\eg, cranberries, raisins)
|
||||
\item Chunks of cheese (\eg, cheddar, feta)
|
||||
\item Chunks of black garlic
|
||||
\item Chocolate chunks or drops
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Combinations}
|
||||
A few combinations where multiple mix-ins complement each other:
|
||||
|
||||
\begin{itemize}
|
||||
\item Semolina, mediterranen herbs, olives, sundried tomatoes.
|
||||
\item Cranberry and walnuts.
|
||||
\item Cheddar and pepperoni.
|
||||
\item Cocoa, cacao nibs, whole hazelnuts.
|
||||
\item Butter and milk. Then add cinnamon and brown sugar before shaping
|
||||
\item Cheddar and pepperoni
|
||||
\item Cheddar and jalapeño
|
||||
\item Cocoa, cacao nibs, whole hazelnuts
|
||||
\item Cranberry and walnuts
|
||||
\item Semolina, Mediterranean herbs, olives, sundried tomatoes
|
||||
\item Tomato juice instead of water with \qty{20}{\percent} rye flour
|
||||
\end{itemize}
|
||||
|
||||
\section{Techniques}
|
||||
Adding mix-ins into the dough is just the simplest approach. There are other,
|
||||
more advanced ways to include them into a loaf.
|
||||
|
||||
\subsection{Covering the crust}
|
||||
This works best for either powders or small bits. Spread the mix-in in a flat
|
||||
container, wet the surface of the loaf, and dip it into the mix-in right
|
||||
before baking.
|
||||
Adding mix-ins to the dough is just the simplest approach. Add the mix-ins
|
||||
directly when you knead the dough. After the first kneading wait for 30 minutes to see
|
||||
if the dough has enough or too much water. In the case of whole-soaked berries
|
||||
(\eg~rye or wheat) chances are that the berries will release some water and make the dough
|
||||
wetter. In this case, you will want to add a bit more flour to the dough to
|
||||
compensate for the high hydration.
|
||||
|
||||
This does not work for all mix-ins, as some can't handle the high temperatures
|
||||
during baking and char. Most commonly done with seeds (\eg, sesame).
|
||||
\subsection{Adding before shaping}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\includegraphics[width=\textwidth]{apple-swirl}
|
||||
\caption[Apple swirl buns]{A great technique is to add some of your mix-ins
|
||||
directly before shaping. In this case, a mixture of apples, cinnamon and brown
|
||||
sugar was applied. Proceed and roll the dough together. Afterward cut the roll
|
||||
into smaller pieces using a sharp knife, dough scraper or dental floss. Place
|
||||
each piece of dough next to each other in a greased bowl to allow them to be proofed.
|
||||
Proceed and bake as you would normally do. The benefit of this technique is that
|
||||
the mix-ins will not be fermented. This is typically required in the case of sugar
|
||||
since you want the final baked goods to feature sweetness. If included upon
|
||||
initial mixing most of the sugar would be fermented and the bread would not taste sweet.}%
|
||||
\end{figure}
|
||||
|
||||
Another approach is to lay the dough out flat after the bulk fermentation.
|
||||
Then using a spatula spread your ingredient over the flat dough. Continue with
|
||||
your regular shaping and/or roll up the dough. When creating a roll you can
|
||||
use a sharp knife to cut the dough, dental floss works great too. Afterward,
|
||||
place the tiny swirls in a container to let them proof and become fluffier. This is an
|
||||
excellent way to add sweet mixins as the microbes will not ferment them. When
|
||||
adding sugar to the initial dough it will be fermented and the resulting dough
|
||||
will not taste sweet (depending on the fermentation duration). This approach
|
||||
is excellent for garlic/cheese rolls, garlic/herb rolls, and cinnamon rolls
|
||||
|
||||
\subsection{Covering the surface}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\includegraphics[width=\textwidth]{surface-seeds}
|
||||
\caption[Surface seeds]{These are chop buns which are created by chopping
|
||||
up a retarded dough into smaller pieces before baking. Then each piece of
|
||||
dough is quickly dumped in water and then rolled in a bowl of seeds.
|
||||
Afterward, the dough is directly baked in the preheated oven. These
|
||||
coverings add superb additional flavor and can be adjusted depending on
|
||||
your preference. I love adding a mixture of sunflower, flax, and
|
||||
sesame seeds.}%
|
||||
\end{figure}
|
||||
|
||||
This works best for either powders or small bits. After shaping wrap your
|
||||
coverings on the dough's surface. This works great too when covering your
|
||||
banneton or loaf pan with seeds or oats. When using a loaf pan or banneton
|
||||
these coverings also help to make the container stick less.
|
||||
|
||||
Another approach commonly used with buns is to wet the surface or dump the
|
||||
dough in water. Afterward, dip the wetted piece of dough into your bowl of
|
||||
mixins. This does not work for all mix-ins, as some can't handle the high temperatures
|
||||
during baking and char. Most commonly done with seeds (\eg~sesame, oats, flax-seed).
|
||||
|
||||
\subsection{Swirled colors}
|
||||
Mix-ins that change the color of the dough bring the opportunity for even more
|
||||
creativity.
|
||||
creativity by merging the dough before shaping.
|
||||
|
||||
Separate the dough before adding a colorful ingredient. Combine the two (or
|
||||
Proceed and separate your base dough before adding a colorful ingredient. Bulk
|
||||
ferment the dough in separate containers. Then Combine the two (or
|
||||
more) differently colored doughs by laminating and stacking the colored sheets
|
||||
of dough before the last folding, just before shaping and bulk rise.
|
||||
|
||||
These can really become works of art.
|
||||
|
||||
% https://www.reddit.com/r/Sourdough/comments/onynqm/sourdough_with_dried_raspberries_recipe_in/
|
||||
% https://natashasbaking.com/blueberry-sourdough/
|
||||
% https://www.reddit.com/r/Sourdough/comments/mot8vq/chocolate_sourdough_loaf/
|
||||
% https://www.reddit.com/r/Sourdough/comments/13sdex9/fairy_bread_for_my_daughters_class_party_with/
|
||||
% https://www.reddit.com/r/Sourdough/comments/keyx88/roasted_onion_and_garlic_loaf_this_loaf_didnt/
|
||||
% https://myloveofbaking.com/rye-molasses-and-orange-sourdough/
|
||||
% https://www.reddit.com/r/Sourdough/comments/qd3y4k/pick_your_player_miso_sesame_or_cranberry_walnut/
|
||||
% https://www.reddit.com/r/Sourdough/comments/lziedg/10_spelt_flour_80_hydration_50_buttermilk_50/
|
||||
% https://www.reddit.com/r/Sourdough/comments/lbrc4a/squid_ink_sourdough_with_sharp_cheddar_and/
|
||||
% https://www.reddit.com/r/Sourdough/comments/na0zed/was_hoping_for_a_more_pronounced_purple_but_i/
|
||||
% https://www.reddit.com/r/Sourdough/comments/10rzgif/sesame_and_poppyseed_64_hydration/
|
||||
% https://www.reddit.com/r/Sourdough/comments/11lcgvr/sesame_seed_crusted_loaf_w_everything_bagel/
|
||||
of dough before the last folding, just before shaping. This way the colored
|
||||
layers won't mix and the resulting dough will have differently colored and
|
||||
tasting layers. \footnote{I once made an experimental dough by merging a wheat,
|
||||
rye, spelt and einkorn dough into a single dough. The resulting dough was
|
||||
layered featuring different colors, textures, and flavors.}
|
||||
|
||||
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 |
@@ -16,7 +16,7 @@
|
||||
note = {Accessed: 2022-03-24}
|
||||
}
|
||||
|
||||
@article{rye-defects,
|
||||
@misc{rye-defects,
|
||||
author = {Marie Oest et al.},
|
||||
title = {Rye Bread Defects: Analysis of Composition and
|
||||
Further Influence Factors as Determinants
|
||||
@@ -26,7 +26,7 @@
|
||||
howpublished = {\url{https://www.mdpi.com/2304-8158/9/12/1900/pdf}}
|
||||
}
|
||||
|
||||
@article{stiff+starter,
|
||||
@misc{stiff+starter,
|
||||
title = {Stiff sourdough starter},
|
||||
author = {Hendrik Kleinwächter},
|
||||
howpublished = {\url{https://www.youtube.com/watch?v=MqH3GVfjfBc}},
|
||||
@@ -34,7 +34,7 @@
|
||||
note = {Accessed: 2022-04-26}
|
||||
}
|
||||
|
||||
@article{baking+twice,
|
||||
@misc{baking+twice,
|
||||
title = {Baking your dough twice to make a sourer bread},
|
||||
author = {Hendrik Kleinwächter},
|
||||
howpublished = {\url{https://youtu.be/0v1QhtyUic4}},
|
||||
@@ -42,7 +42,7 @@
|
||||
note = {Accessed: 2022-04-28}
|
||||
}
|
||||
|
||||
@article{more+active+starter,
|
||||
@misc{more+active+starter,
|
||||
title = {4 tips to make a more active starter},
|
||||
author = {Hendrik Kleinwächter},
|
||||
howpublished = {\url{https://www.youtube.com/watch?v=yYkTrGHNW2w}},
|
||||
@@ -50,7 +50,7 @@
|
||||
note = {Accessed: 2022-04-29}
|
||||
}
|
||||
|
||||
@article{baking+powder+reduce-acidity,
|
||||
@misc{baking+powder+reduce-acidity,
|
||||
title = {Use baking powder to reduce dough acidity},
|
||||
author = {Hendrik Kleinwächter},
|
||||
howpublished = {\url{https://www.youtube.com/watch?v=c8GId0ByASo}},
|
||||
@@ -58,7 +58,7 @@
|
||||
note = {Accessed: 2022-04-29}
|
||||
}
|
||||
|
||||
@article{food+safe+ph,
|
||||
@misc{food+safe+ph,
|
||||
title = {Acidified Foods: Food Safety Considerations for Food Processors},
|
||||
author = {Felix H. Barron and Angela M. Fraser},
|
||||
howpublished = {\url{https://www.intechopen.com/chapters/41654}},
|
||||
@@ -75,7 +75,7 @@
|
||||
year = {2022}
|
||||
}
|
||||
|
||||
@article{liquid+on+starter,
|
||||
@misc{liquid+on+starter,
|
||||
title = {Acidified Foods: Food Safety Considerations for Food Processors},
|
||||
author = {Sourdoughhome},
|
||||
howpublished = {\url{https://www.sourdoughhome.com/what-is-hooch/}},
|
||||
@@ -83,57 +83,59 @@
|
||||
note = {Accessed: 2022-04-29}
|
||||
}
|
||||
|
||||
@article{acetic+acid+production,
|
||||
@misc{acetic+acid+production,
|
||||
title = {Acetic Acid (or Ethanoic acid). The main constituent of vinegar.},
|
||||
author = {chm.bris.ac.uk},
|
||||
howpublished = {\url{http://www.chm.bris.ac.uk/motm/acetic-acid/acetic-acidjs.htm}},
|
||||
note = {Accessed: 2022-04-29}
|
||||
}
|
||||
|
||||
@article{jordan+bread,
|
||||
@misc{jordan+bread,
|
||||
author = {Amaia Arranz-Otaegui et al.},
|
||||
title = {Archaeobotanical evidence reveals the origins of bread 14,400 years ago in northeastern Jordan},
|
||||
title = {Archaeobotanical evidence reveals the origins of
|
||||
bread 14,400 years ago in northeastern Jordan},
|
||||
journal = {Proc Natl Acad Sci USA},
|
||||
year = {2018},
|
||||
howpublished = {\url{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6077754/}}
|
||||
}
|
||||
|
||||
@article{fleischmann+history,
|
||||
@misc{fleischmann+history,
|
||||
author = {Fleischmann History},
|
||||
title = {History of Fleischmann's},
|
||||
howpublished = {\url{https://www.fleischmannsyeast.com/our-history/}},
|
||||
note = {Accessed: 2023-12-04}
|
||||
}
|
||||
|
||||
@article{evans+mill,
|
||||
@misc{evans+mill,
|
||||
author = {Jeremy Norman},
|
||||
title = {Oliver Evans Builds the First Automated Flour Mill: Origins of the Integrated and Automated Factory},
|
||||
title = {Oliver Evans Builds the First Automated Flour Mill: Origins
|
||||
of the Integrated and Automated Factory},
|
||||
howpublished = {\url{https://www.historyofinformation.com/detail.php?entryid=3567}},
|
||||
note = {Accessed: 2023-12-04}
|
||||
}
|
||||
|
||||
@article{first+mixer,
|
||||
@misc{first+mixer,
|
||||
author = {United States Patent office},
|
||||
title = {Eastman Mixer for cream, eggs and liquors},
|
||||
howpublished = {\url{https://patents.google.com/patent/US330829}},
|
||||
note = {Accessed: 2023-12-04}
|
||||
}
|
||||
|
||||
@article{egypt+beer,
|
||||
@misc{egypt+beer,
|
||||
author = {Smithsonian Magazine},
|
||||
title = {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/}},
|
||||
note = {Accessed: 2023-12-04}
|
||||
}
|
||||
|
||||
@article{kitchenaid+history,
|
||||
@misc{kitchenaid+history,
|
||||
author = {KitchenAid},
|
||||
title = {KitchenAid Brand History},
|
||||
howpublished = {\url{https://www.kitchenaid.com/100year/history.html}},
|
||||
note = {Accessed: 2023-12-04}
|
||||
}
|
||||
|
||||
@article{aboriginal+grinding+stones,
|
||||
@misc{aboriginal+grinding+stones,
|
||||
author = {First Peoples - State Relations},
|
||||
title = {Fact sheet: Aboriginal grinding stones},
|
||||
howpublished = {\url{https://www.firstpeoplesrelations.vic.gov.au/fact-sheet-aboriginal-grinding-stones}},
|
||||
@@ -193,9 +195,10 @@
|
||||
}
|
||||
|
||||
@article{egyptian+bread,
|
||||
title = {Investigation of ancient Egyptian baking and brewing methods by correlative microscopy},
|
||||
title = {Investigation of ancient Egyptian baking
|
||||
and brewing methods by correlative microscopy},
|
||||
volume = {273},
|
||||
DOI = {10.1126/science.273.5274.488},
|
||||
doi = {10.1126/science.273.5274.488},
|
||||
number = {5274},
|
||||
journal = {Science},
|
||||
author = {Samuel, Delwen},
|
||||
@@ -203,7 +206,7 @@
|
||||
pages = {488–490}
|
||||
}
|
||||
|
||||
@article{vienna+breadrolls,
|
||||
@misc{vienna+breadrolls,
|
||||
author = {Eben Norton Horsford},
|
||||
title = {Report on Vienna bread},
|
||||
year = {1875},
|
||||
@@ -211,7 +214,7 @@
|
||||
note = {Accessed: 2022-05-02}
|
||||
}
|
||||
|
||||
@article{coeliac+disease,
|
||||
@misc{coeliac+disease,
|
||||
author = {Giovanni Battista Gasbarrini et al.},
|
||||
title = {Coeliac disease: an old or a new disease? History of a pathology},
|
||||
year = {2014},
|
||||
@@ -219,7 +222,7 @@
|
||||
howpublished = {\url{https://pubmed.ncbi.nlm.nih.gov/24435555/}}
|
||||
}
|
||||
|
||||
@article{interview+karl+de+smedt,
|
||||
@misc{interview+karl+de+smedt,
|
||||
author = {Hendrik Kleinwächter},
|
||||
title = {Interview with Karl de Smedt},
|
||||
year = {2021},
|
||||
@@ -251,7 +254,8 @@
|
||||
|
||||
@article{effects+oxygen+yeast+growth,
|
||||
author = {Hiroshi Kuriyama et al.},
|
||||
title = {Effects of oxygen supply on yeast growth and metabolism in continuous fermentation},
|
||||
title = {Effects of oxygen supply on yeast growth
|
||||
and metabolism in continuous fermentation},
|
||||
year = {1993},
|
||||
journal = {Journal of Fermentation and Bioengineering},
|
||||
publisher = {Elsevier},
|
||||
@@ -270,7 +274,8 @@
|
||||
|
||||
@article{leaf+surface+sugars+epiphytes,
|
||||
author = {Julien Mercier},
|
||||
title = {Role of Leaf Surface Sugars in Colonization of Plants by Bacterial Epiphytes},
|
||||
title = {Role of Leaf Surface Sugars in Colonization of
|
||||
Plants by Bacterial Epiphytes},
|
||||
year = {2000},
|
||||
journal = {Applied and Environmental Microbiology},
|
||||
volume = {66,1}
|
||||
@@ -278,7 +283,8 @@
|
||||
|
||||
@article{yeasts+biocontrol+agent,
|
||||
author = {Gianluca Bleve et al.},
|
||||
title = {Isolation of epiphytic yeasts with potential for biocontrol of Aspergillus carbonarius and A. niger on grape},
|
||||
title = {Isolation of epiphytic yeasts with potential for
|
||||
biocontrol of Aspergillus carbonarius and A. niger on grape},
|
||||
year = {2006},
|
||||
journal = {International Journal of Food Microbiology},
|
||||
volume = {108,2}
|
||||
@@ -286,13 +292,14 @@
|
||||
|
||||
@article{saccharomyces+cerevisiae+pathogen,
|
||||
author = {Sabine Gognies et al.},
|
||||
title = {Saccharomyces cerevisiae, a potential pathogen towards grapevine, Vitis vinifera},
|
||||
title = {Saccharomyces cerevisiae, a potential pathogen
|
||||
towards grapevine, Vitis vinifera},
|
||||
year = {2001},
|
||||
journal = {FEMS Microbiology Ecology},
|
||||
volume = {37,2}
|
||||
}
|
||||
|
||||
@article{pickled+foods+expiration,
|
||||
@misc{pickled+foods+expiration,
|
||||
title = {Hardcore hibernation},
|
||||
author = {David Adam},
|
||||
howpublished = {\url{https://www.nature.com/articles/news001019-9}},
|
||||
@@ -300,7 +307,7 @@
|
||||
note = {Accessed: 2022-06-23}
|
||||
}
|
||||
|
||||
@article{old+spores,
|
||||
@misc{old+spores,
|
||||
title = {Do Pickles Go Bad?},
|
||||
author = {thrillist.com},
|
||||
howpublished = {\url{https://www.thrillist.com/eat/nation/do-pickles-go-bad-refrigerator-pickles-shelf-life}},
|
||||
@@ -308,7 +315,7 @@
|
||||
note = {Accessed: 2022-06-23}
|
||||
}
|
||||
|
||||
@article{mold+anaerobic,
|
||||
@misc{mold+anaerobic,
|
||||
title = {Differences between Yeasts and Molds},
|
||||
author = {Sagar Aryal},
|
||||
howpublished = {\url{https://microbenotes.com/differences-between-yeasts-and-molds/}},
|
||||
@@ -317,7 +324,8 @@
|
||||
}
|
||||
|
||||
@article{effects+temperature+flavor+wine,
|
||||
title = {Effects of Fermentation Temperature on Key Aroma Compounds and Sensory Properties of Apple Wine},
|
||||
title = {Effects of Fermentation Temperature on Key Aroma
|
||||
Compounds and Sensory Properties of Apple Wine},
|
||||
author = {Bangzhu Peng et al.},
|
||||
year = {2015},
|
||||
journal = {Food science},
|
||||
@@ -325,7 +333,9 @@
|
||||
}
|
||||
|
||||
@article{effects+temperature+flavor,
|
||||
title = {Analysis of domestic refrigerator temperatures and home storage time distributions for shelf-life studies and food safety risk assessment},
|
||||
title = {Analysis of domestic refrigerator temperatures and home
|
||||
storage time distributions for shelf-life
|
||||
studies and food safety risk assessment},
|
||||
author = {Anna Roccato et al.},
|
||||
year = {2017},
|
||||
journal = {Food Research},
|
||||
@@ -333,7 +343,8 @@
|
||||
}
|
||||
|
||||
@article{lactobacillus+sanfrancisco,
|
||||
title = {Lactobacillus sanfrancisco a key sourdough lactic acid bacterium: a review},
|
||||
title = {Lactobacillus sanfrancisco a key sourdough
|
||||
lactic acid bacterium: a review},
|
||||
author = {M. Gobbetti et al.},
|
||||
year = {1997},
|
||||
journal = {Food Microbiology},
|
||||
@@ -349,7 +360,8 @@
|
||||
}
|
||||
|
||||
@article{shelflife+acidity,
|
||||
title = {The effect of pH on shelf-life of pork during aging and simulated retail display},
|
||||
title = {The effect of pH on shelf-life of pork during
|
||||
aging and simulated retail display},
|
||||
author = {S F Holmer et al.},
|
||||
year = {2009},
|
||||
journal = {Meat Science},
|
||||
@@ -357,7 +369,8 @@
|
||||
}
|
||||
|
||||
@article{temperature+bacteria+corn,
|
||||
title = {Effect of temperature (5-25°C) on epiphytic lactic acid bacteria populations and fermentation of whole-plant corn silage},
|
||||
title = {Effect of temperature (5-25°C) on epiphytic lactic acid
|
||||
bacteria populations and fermentation of whole-plant corn silage},
|
||||
author = {Y Zhou et al.},
|
||||
year = {2016},
|
||||
journal = {Applied Microbiology and Biotechnology},
|
||||
@@ -365,7 +378,8 @@
|
||||
}
|
||||
|
||||
@article{acetic+acid+oxygen,
|
||||
title = {Effects of Oxygen Availability on Acetic Acid Tolerance and Intracellular pH in Dekkera bruxellensis},
|
||||
title = {Effects of Oxygen Availability on Acetic Acid Tolerance
|
||||
and Intracellular pH in Dekkera bruxellensis},
|
||||
author = {Claudia Capusoni et al.},
|
||||
year = {2016},
|
||||
journal = {Applied Microbiology and Biotechnology},
|
||||
@@ -373,14 +387,15 @@
|
||||
}
|
||||
|
||||
@article{starch+damage+flour,
|
||||
title = {A review of milling damaged starch: Generation, measurement, functionality and its effect on starch-based food systems},
|
||||
title = {A review of milling damaged starch: Generation, measurement,
|
||||
functionality and its effect on starch-based food systems},
|
||||
author = {Qingfa Wang et al.},
|
||||
year = {2020},
|
||||
journal = {Food chemistry},
|
||||
volume = {15,31}
|
||||
}
|
||||
|
||||
@article{how+does+gluten+work,
|
||||
@misc{how+does+gluten+work,
|
||||
title = {Gluten: How Does It Work?},
|
||||
author = {Modernist Cuisine},
|
||||
howpublished = {\url{https://modernistcuisine.com/mc/gluten-how-does-it-work/}},
|
||||
@@ -389,7 +404,7 @@
|
||||
}
|
||||
|
||||
|
||||
@article{bassinage+technique,
|
||||
@misc{bassinage+technique,
|
||||
title = {The Bassinage Method},
|
||||
author = {The Sourdough School},
|
||||
howpublished = {\url{https://www.sourdough.co.uk/glossary/bassinage/}},
|
||||
@@ -397,7 +412,7 @@
|
||||
note = {Accessed: 2022-12-22}
|
||||
}
|
||||
|
||||
@article{oxidization+dough,
|
||||
@misc{oxidization+dough,
|
||||
title = {Enzymes and pH matter, troubleshoot my loaf},
|
||||
author = {Bread Blog},
|
||||
howpublished = {\url{https://bread.blog/enzymes-and-ph-matter-troubleshoot-my-loaf/}},
|
||||
@@ -405,7 +420,7 @@
|
||||
note = {Accessed: 2022-12-28}
|
||||
}
|
||||
|
||||
@article{stretch+and+fold+technique,
|
||||
@misc{stretch+and+fold+technique,
|
||||
title = {How And When To Stretch And Fold Your Sourdough},
|
||||
author = {The Bread Code YouTube},
|
||||
howpublished = {\url{https://www.youtube.com/watch?v=gMbZeUIVzZY}},
|
||||
@@ -414,7 +429,8 @@
|
||||
}
|
||||
|
||||
@article{rye+pentosans,
|
||||
author = {Krzysztof Buksa and Anna Nowotna and Werner Praznik and Halina Gambu{\'s} and Rafa{\l} Ziobro and Jan Krawontka},
|
||||
author = {Krzysztof Buksa and Anna Nowotna and Werner Praznik
|
||||
and Halina Gambu{\'s} and Rafa{\l} Ziobro and Jan Krawontka},
|
||||
journal = {Food Research International},
|
||||
keywords = {Rye bread, Wholemeal, Pentosans, Starch},
|
||||
number = {8},
|
||||
@@ -443,12 +459,14 @@
|
||||
author = {Rachana Poudel},
|
||||
title = {Enzymatic Activities and Compostional Properties of Whole Wheat Flour},
|
||||
year = {2018},
|
||||
page = {67},
|
||||
page = {67}
|
||||
}
|
||||
|
||||
@article{review+of+sourdough+starters,
|
||||
author = {Calvert MD, Madden AA et al.},
|
||||
title = {A review of sourdough starters: ecology, practices, and sensory quality with applications for baking and recommendations for future research},
|
||||
title = {A review of sourdough starters: ecology, practices, and
|
||||
sensory quality with applications for baking
|
||||
and recommendations for future research},
|
||||
year = {2021},
|
||||
page = {3},
|
||||
url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8117929/#ref-36},
|
||||
@@ -457,7 +475,8 @@
|
||||
|
||||
@article{gluten+development+temperatures,
|
||||
author = {Koga S., Böcker U. et al.},
|
||||
title = {Influence of temperature during grain filling on gluten viscoelastic properties and gluten protein composition.},
|
||||
title = {Influence of temperature during grain filling on gluten
|
||||
viscoelastic properties and gluten protein composition.},
|
||||
year = {2015},
|
||||
journal = {Journal of the Science of Food and Agriculture},
|
||||
number = {96},
|
||||
@@ -469,7 +488,21 @@
|
||||
journal = {Cereal Chemistry},
|
||||
number = {2},
|
||||
pages = {239-252},
|
||||
title = {Characterizing whole-wheat flours produced using a commercial stone mill, laboratory mills, and household single-stream flour mills},
|
||||
title = {Characterizing whole-wheat flours produced using a
|
||||
commercial stone mill, laboratory mills, and household
|
||||
single-stream flour mills},
|
||||
volume = {95},
|
||||
year = {2018}
|
||||
}
|
||||
|
||||
@article{freezing+toasting+bread,
|
||||
title = {The impact of freezing and toasting on the
|
||||
glycaemic response of White Bread},
|
||||
volume = {62},
|
||||
doi = {10.1038/sj.ejcn.1602746},
|
||||
number = {5},
|
||||
journal = {European Journal of Clinical Nutrition},
|
||||
author = {Burton, P and Lightowler, H J},
|
||||
year = {2007},
|
||||
pages = {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}{\percent} in terms of baker's
|
||||
math). If my starter is very young and had just been fed 6 to 8~hours ago I~might
|
||||
end up going up to \qty{20}{\percent} of starter. Remember that your dough is nothing
|
||||
end up going up to \qty{20}{\percent} of starter. As mentioned earlier,
|
||||
remember that your dough is nothing
|
||||
else other than a big starter. It will tremendously help you to figure out
|
||||
your best next steps.
|
||||
|
||||
@@ -97,8 +98,8 @@ a longer fermentation before most gluten is broken down.
|
||||
The regular sourdough starter is made at a hydration of around \qty{100}{\percent}.
|
||||
This means the starter has equal parts of flour and water. This is the most
|
||||
common and most universal sourdough starter there is. The starter has a good
|
||||
balance of yeast and bacteria. After a feeding, the volume increases and
|
||||
increases. After it reaches a certain peak, it will start to collapse again.
|
||||
balance of yeast and bacteria. After a feeding, the volume of the dough
|
||||
greatly increases. After it reaches a certain peak, it will start to collapse again.
|
||||
|
||||
The best way to judge whether the starter is ready is to look at signs such as
|
||||
air pockets on the edges of your container. Also use the nose to evaluate the
|
||||
@@ -278,13 +279,13 @@ production.
|
||||
\label{fig:stollen}
|
||||
\end{figure}
|
||||
|
||||
I~then proceeded and bought a cheap low cake flour in my nearby supermarket.
|
||||
I~then proceeded and bought a cheap low-gluten cake flour in my nearby supermarket.
|
||||
This flour before had caused me massive headaches in the past. I~made a sourdough bread
|
||||
exactly how I~would normally do---I~had to reduce the hydration a bit as a low
|
||||
gluten flour does not soak up as much water. Then I~replaced the starter with
|
||||
the stiff starter. The dough felt amazing and was suddenly able to withstand a
|
||||
much longer fermentation period. The bread had great oven spring and tasted
|
||||
very mild. I~am still yet to find a proper explanation why the yeast part of
|
||||
very mild. I~am still yet to find a proper scientific explanation why the yeast part of
|
||||
the dough is more active. Maybe it is not. It could also be that the bacteria
|
||||
is inhibited by the lack of water.
|
||||
|
||||
@@ -301,8 +302,9 @@ pockets of air on the sides of your container. Use your nose to smell the
|
||||
starter. It should have a mild smell. It also tends to smell much more
|
||||
alcoholic than the other starters.
|
||||
|
||||
When using a stiff starter, use around \qtyrange{1}{20}{\percent} depending on
|
||||
the ripeness of your starter. In summer I~typically use around
|
||||
When using a stiff starter, use around \qtyrange{1}{20}{\percent} starter for your
|
||||
dough. This depends on the ripeness of your starter.
|
||||
In summer I~typically use around
|
||||
\qty{10}{\percent} and in winter around \qty{20}{\percent}. This way you can
|
||||
also control the fermentation speed.
|
||||
Mixing the starter can be a little bit annoying as it hardly homogenizes with
|
||||
|
||||
@@ -128,9 +128,9 @@ properly hydrated. This step activates the microbial spores
|
||||
in your mixture, drawing them out of hibernation and
|
||||
reviving them.
|
||||
Finally, cover your mixture but make sure the covering is
|
||||
not airtight. I~like to use a glass and place another
|
||||
inverted one on top. The container shouldn't be airtight,
|
||||
you still want some gas exchange to be possible.
|
||||
not airtight. You still want some gas exchange to be possible.
|
||||
I~like to use a glass and place another
|
||||
inverted one on top.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
|
||||
@@ -10,13 +10,12 @@
|
||||
\usepackage[mode=match, reset-text-family=false]{siunitx}
|
||||
\usepackage{fontspec}
|
||||
\usepackage{calc}
|
||||
\usepackage{enumitem}
|
||||
\usepackage[font={sffamily, sbseries}]{quoting}
|
||||
\usepackage{enumitem}
|
||||
\usepackage{microtype}
|
||||
|
||||
% style=nextline breaks on make4ht
|
||||
\ifdefined\HCode\else
|
||||
\usepackage{enumitem}
|
||||
\setlist[description]{style=nextline, leftmargin=0cm}
|
||||
\fi
|
||||
|
||||
@@ -106,6 +105,7 @@
|
||||
{wheat-sourdough/}
|
||||
{wheat-sourdough/shaping/}
|
||||
{non-wheat-sourdough/}
|
||||
{mix-ins/}
|
||||
}
|
||||
|
||||
% Caption and figure size below images
|
||||
|
||||
@@ -116,3 +116,9 @@ that you like.
|
||||
This option is great for very long-term storage. Personally
|
||||
I~like having a few slices of bread frozen as an emergency
|
||||
backup when I~have had no time to bake.
|
||||
|
||||
A 2008 study hints that there might be some health
|
||||
benefits to freezing and toasting your bread. By doing so
|
||||
the starch molecules could become more resistant to digestion
|
||||
and thus lower your body's blood sugar
|
||||
response by almost 40\%~\cite{freezing+toasting+bread}.
|
||||
234
book/style.css
@@ -6,11 +6,15 @@
|
||||
--fw-bold: 800;
|
||||
--f-lh: 28px;
|
||||
--c-black: #282828;
|
||||
--c-black-background: #1c1819;
|
||||
--fs-xxxl: 32px;
|
||||
--fs-xxl: 26px;
|
||||
--fs-xl: 24px;
|
||||
--fs-l: 22px;
|
||||
--fs-m: 16px;
|
||||
--padding-hamburger: 5px;
|
||||
--c-beige: #F3EDE6;
|
||||
--border-radius: 7px;
|
||||
}
|
||||
|
||||
@media (min-width: 1200px){
|
||||
@@ -37,6 +41,7 @@ body{
|
||||
font-family: var(--ff-sans);
|
||||
font-weight: var(--fw-regular);
|
||||
font-size: var(--fs-m);
|
||||
color: var(--c-black);
|
||||
}
|
||||
|
||||
@media screen and (min-width: 57rem) {
|
||||
@@ -59,7 +64,6 @@ body{
|
||||
/* ****************** */
|
||||
|
||||
main.main-content,main.titlepage,div.footnotes{
|
||||
padding:1rem;
|
||||
}
|
||||
|
||||
.permalink {
|
||||
@@ -143,9 +147,7 @@ nav.TOC a, nav.TOC a:visited{
|
||||
|
||||
|
||||
body{
|
||||
background-color:#F8F8F8;
|
||||
background: url("bg.jpg") center center no-repeat;
|
||||
background-size: cover;
|
||||
background-color: var(--c-beige);
|
||||
}
|
||||
|
||||
a {
|
||||
@@ -175,6 +177,7 @@ figure.texsource, figure.shellcommand, figure.htmlsource, figure.luasource, figu
|
||||
|
||||
.main-content {
|
||||
line-height: var(--f-lh);
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
div.footnotes {
|
||||
@@ -230,6 +233,7 @@ figcaption.caption {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.menu-items .chapterToc, .menu-items .likechapterToc {
|
||||
@@ -240,6 +244,14 @@ figcaption.caption {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.home-link {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.home-title {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.toggle-menu-label {
|
||||
display: block;
|
||||
@@ -249,7 +261,8 @@ figcaption.caption {
|
||||
|
||||
.hamb{
|
||||
cursor: pointer;
|
||||
padding: 5px;
|
||||
padding: var(--padding-hamburger);
|
||||
margin-right: calc(var(--padding-hamburger) * -1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
@@ -284,7 +297,7 @@ figcaption.caption {
|
||||
.menu {
|
||||
background: var(--c-black);
|
||||
display: flex;
|
||||
padding: 10px 0px;
|
||||
padding: 10px 1rem;
|
||||
position: relative;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
@@ -303,13 +316,16 @@ figcaption.caption {
|
||||
color: #000;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
padding-left: 17px;
|
||||
}
|
||||
|
||||
.chapterToc a, .sectionToc a, .subsectionToc a, .likechapterToc a {
|
||||
padding-left: 17px;
|
||||
}
|
||||
|
||||
.menu-items .chapterToc.home-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.home-title {
|
||||
display: none;
|
||||
}
|
||||
@@ -320,7 +336,7 @@ div.center {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
main.titlepage h2.chapterHead {
|
||||
main.main-content h2.chapterHead, main.main-content h2.likechapterHead {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
@@ -368,3 +384,205 @@ h4 {
|
||||
max-width: 100%;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
img[alt~="PIC"], iframe, a img {
|
||||
border-radius: var(--border-radius);
|
||||
border: 2px solid var(--c-black);
|
||||
}
|
||||
|
||||
main.main-content, div.footnotes, main.titlepage {
|
||||
background-color: var(--c-beige);
|
||||
}
|
||||
|
||||
.main-content {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: var(--c-black-background);
|
||||
width: 100%;
|
||||
height: 340px;
|
||||
display: flex;
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.header img {
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
width: 710px;
|
||||
}
|
||||
|
||||
body {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.book-content {
|
||||
display: flex;
|
||||
padding: 0px 40px;
|
||||
max-width: 1200px;
|
||||
}
|
||||
|
||||
.TOC.menu {
|
||||
width: 330px;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
width: 100%;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
nav.TOC, nav.TOC a, nav.TOC a:visited {
|
||||
background-color: transparent;
|
||||
color: var(--c-black);
|
||||
}
|
||||
|
||||
.menu-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.menu-inner {
|
||||
border: 2px solid var(--c-black);
|
||||
border-radius: var(--border-radius);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.menu-entry {
|
||||
padding: 1px;
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.menu-arrow {
|
||||
width: 14px;
|
||||
border: none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
nav.TOC span:hover, nav.TOC span:hover *, nav.TOC span.chapterToc.selected, nav.TOC span.chapterToc.selected a {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.menu-entry:hover {
|
||||
background-color: #c8c8c8;
|
||||
}
|
||||
|
||||
p.flowchart-image-wrapper {
|
||||
background: white;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.menu-items .menu-group:last-of-type .menu-arrow {
|
||||
display: none;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.crosslinks-bottom {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.crosslinks-bottom a {
|
||||
display: inline-block;
|
||||
border-radius: var(--border-radius);
|
||||
border: 2px solid var(--c-black);
|
||||
color: var(--c-black);
|
||||
padding: 4px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
.crosslinks-bottom a.prev {
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.crosslinks-bottom a:hover {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.menu-group.selected .menu-inner {
|
||||
background-color: #c8c8c8;
|
||||
}
|
||||
|
||||
.TOC.menu {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.mobile-banner {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.book-content {
|
||||
padding: 0px;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
width: 100%;
|
||||
margin-left: 0px;
|
||||
box-sizing: border-box;
|
||||
padding: 0px 14px;
|
||||
margin-top: 20px;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.TOC.menu {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
background: var(--c-black-background);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
nav.TOC, nav.TOC a, nav.TOC a:visited {
|
||||
color: #fff;
|
||||
}
|
||||
.menu-arrow {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.menu-inner {
|
||||
border: none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.menu-group.selected .menu-inner {
|
||||
background: var(--c-black-background);
|
||||
}
|
||||
|
||||
p.flowchart-image-wrapper {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.menu-entry:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.TOC.menu {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.mobile-banner {
|
||||
display: block;
|
||||
background-color: var(--c-black-background);
|
||||
padding: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
\textbf{USA} & \textbf{UK} & {\textbf{Germany}} & {\textbf{France}} & {\textbf{Italy}} \\ \midrule
|
||||
Cake & Soft flour & T405 & T45 & 00 \\
|
||||
All purpose & Plain flour & T550 & T55 & 0 \\
|
||||
Bread flour & Bread flour & T405 or T550 & T45 or T55 & 00 or 0 \\
|
||||
& & T812 & T80 & 1 \\
|
||||
& & T1050 & T110 & 2 \\
|
||||
Whole & Whole & Vollkorn & T150 & Integrale \\ \bottomrule
|
||||
|
||||
@@ -7,8 +7,8 @@ Room temperature & The easiest option. Best for bread that is eaten
|
||||
Crust typically stays crisp when humidity not too high.
|
||||
& Bread dries out very quickly.\\
|
||||
|
||||
Room temperature in container & Good for up to a week. Catches mold more quickly.
|
||||
& Bread needs to be toasted for crust to become crisp again.\\
|
||||
Room temperature in airtight container & Good for up to a week.
|
||||
& Bread needs to be toasted for crust to become crisp again. Catches mold more quickly\\
|
||||
|
||||
Fridge & Bread stays good for weeks. Can dry out a little bit when not using air-tight container.
|
||||
& Bread needs to be toasted. Requires fridge and energy.\\
|
||||
|
||||
@@ -111,7 +111,7 @@ I~would use a lot of rice flour in my banneton to dry out the surface of the dou
|
||||
This way the dough wouldn't stick, despite being overfermented. However as it
|
||||
turns out the stickiness issue has been my lack of understanding the fermentation
|
||||
process. Now I~never use rice flour, except when trying to apply decorative scorings.
|
||||
Properly managing fermentation results in a dough that is not sticky.
|
||||
Managing properly fermentation results in a dough that is not sticky.
|
||||
|
||||
If you are noticing, during a stretch and fold or during shaping, that your dough
|
||||
is suddenly overly sticky, then the best option is to use a loaf pan. Simply take
|
||||
@@ -139,7 +139,7 @@ dough with less bacterial activity. A better yeast activity also will result
|
||||
in less acidity in your final bread. If you are a chaser of a very strong tangy
|
||||
flavor profile, then a stronger flour with more gluten will help.
|
||||
|
||||
When retarding sourdough (cold proofing in the refrigerator), temperature plays a
|
||||
When retarding sourdough (cold-proofing in the refrigerator), temperature plays a
|
||||
pivotal role in fermentation rates. As the dough chills in the refrigerator,
|
||||
fermentation decelerates. Starting the retarding process at a warmer
|
||||
temperature means this deceleration takes longer.
|
||||
@@ -318,8 +318,8 @@ can heat up the surface of your dough faster. I~tested this by putting an apple
|
||||
a Dutch oven and measuring its surface temperature using a barbecue thermometer.
|
||||
I~then changed the steaming methods to plot how quickly the temperature
|
||||
close to the surface changes. I~tested an ice cube inside of a preheated
|
||||
Dutch oven, a preheated Dutch oven, a preheated Dutch oven with spritzes
|
||||
of water on the apple's surface, a non-preheated Dutch oven where I~would only preheat
|
||||
Dutch oven, a plain preheated Dutch oven, a preheated Dutch oven with spritzes
|
||||
of water on the apple's surface and a non-preheated Dutch oven where I~would only preheat
|
||||
the bottom part. The experiment then showed that the ice-cube method would heat up
|
||||
the surface of the apple a lot quicker. When replicating this with a bread dough,
|
||||
I~would achieve less oven spring.
|
||||
|
||||
@@ -117,7 +117,7 @@ acid-producing bacteria. So it is recommended to keep
|
||||
a backup of your original starter.
|
||||
|
||||
A downside to the liquid starter is the overall
|
||||
enhanced bacterial activity. This means the baked bread
|
||||
enhanced bacterial activity compared to yeast activity. This means the baked bread
|
||||
will have more acidity (but milder). The dough will degrade
|
||||
faster during fermentation. For this reason, you
|
||||
will need to use strong high-gluten flour when using
|
||||
@@ -345,6 +345,17 @@ made with such a starter. The flavor when taking a bite
|
||||
is incredible. It nicely plays with soups as well. Just take
|
||||
a bit of this bread and dip it in your soup.
|
||||
|
||||
\subsection{Why does my starter not float after using the float test?}
|
||||
The float test may not reliably determine your starter's readiness for dough
|
||||
inoculation. While it's effective for wheat-based doughs, where ample gas gets
|
||||
trapped in the gluten matrix, it's less reliable for non-wheat doughs. In non-
|
||||
wheat doughs, the gas generated during fermentation tends to escape, causing
|
||||
the starter to likely sink.
|
||||
|
||||
For more accurate assessments of your starter's readiness, watch for bubbles
|
||||
at the container's edge and consider its aroma. A mature starter should emit a
|
||||
mildly sour scent without being overly pungent.
|
||||
|
||||
\section{Dough}
|
||||
\subsection{Should I~autolyse my dough?}
|
||||
|
||||
@@ -450,8 +461,8 @@ Please also note that you can only make bread with
|
||||
great oven spring when making wheat based doughs. When
|
||||
starting with this hobby I~always wondered why my rye
|
||||
breads would turn out so flat. Yes, rye has gluten, but
|
||||
small particles called \emph{hemicelluloses} (arabinoxylan and beta-glucan)~\cite{rye-defects}.
|
||||
prevent the dough from developing a gluten network it can
|
||||
small particles called \emph{pentosans} (arabinoxylan and beta-glucan)~\cite{rye-defects}.
|
||||
They prevent the dough from developing a gluten network it can
|
||||
with wheat. Your efforts will be in vain, and your dough will
|
||||
stay flat. Only spelt- and wheat-based doughs have the capability
|
||||
of retaining the \ch{CO2} created by the fermentation.
|
||||
|
||||
@@ -19,8 +19,8 @@ and technique than other types of bread. You have to perfectly
|
||||
balance the fermentation process. You cannot ferment for too
|
||||
short and also not for too long. The techniques you need to
|
||||
learn also require a bit more skill. It took me several attempts
|
||||
to get this right. One of the challenges I~faced was that
|
||||
I~had the wrong flour. I~didn't properly know how to use my oven.
|
||||
to get this right. I faced several challenges: I~had the wrong flour.
|
||||
I~didn't properly know how to use my oven.
|
||||
When should I~stop the fermentation? There is a lot of information
|
||||
out there. I~dug through most of it and have tried almost everything.
|
||||
In many cases the information was wrong; in other cases, I~found another
|
||||
@@ -210,7 +210,7 @@ Find below an example recipe for 1 loaf including baker's math calculation:
|
||||
\item \qty{400}{\gram} of bread flour
|
||||
\item \qty{100}{\gram} of whole-wheat flour
|
||||
% Manual unit so we can use emphasis
|
||||
\item \emph{500~g of flour in total}
|
||||
\item \emph{Total: 500~g of flour}
|
||||
\item \qtyrange{300}{450}{\gram} of room temperature water (\qty{60}{\percent} up to \qty{90}{\percent}). More on
|
||||
this topic in the next chapter.
|
||||
\item \qty{50}{\gram} of stiff sourdough starter (\qty{10}{\percent})
|
||||
@@ -222,10 +222,10 @@ how much flour you have. Let's say you have \qty{2000}{\gram} of flour available
|
||||
recipe would look like this:
|
||||
|
||||
\begin{itemize}
|
||||
\item \qty{1800}{\gram} of bread flour
|
||||
\item \qty{200}{\gram} of whole-wheat flour
|
||||
\item \qty{1600}{\gram} of bread flour
|
||||
\item \qty{400}{\gram} of whole-wheat flour
|
||||
% Manual unit so we can use emphasis again
|
||||
\item \emph{2000 g of flour}, equaling 4 loaves
|
||||
\item \emph{Total: 2000~g of flour}, equaling 4 loaves
|
||||
\item \qty{1200}{\gram} up to \qty{1800}{\gram} of room temperature water (60 to \qty{90}{\percent})
|
||||
\item \qty{200}{\gram} of stiff sourdough starter (\qty{10}{\percent})
|
||||
\item \qty{40}{\gram} of salt (\qty{2}{\percent})
|
||||
@@ -247,7 +247,7 @@ When a seed gets into contact initially, the outer layers soak up the water.
|
||||
That's why when using whole-wheat (still containing these layers) you have to
|
||||
use a little bit more water.
|
||||
|
||||
By forming gluten strands, water is absorbed into your dough. The higher the
|
||||
By forming gluten strands, water is absorbed into your dough's gluten matrix. The higher the
|
||||
protein value, the more water can be used.
|
||||
|
||||
Some bakers like to use highly hydrated doughs to create fluffier
|
||||
@@ -334,7 +334,7 @@ and not fluffy crumb. That is because only very little gluten is broken down whe
|
||||
finishing the fermentation period in 1~hour. If you were to slow things down,
|
||||
the dough would look completely different.
|
||||
Try this again and use much less yeast. This is the
|
||||
secret of Neapolitan Pizza. Only a tiny bit of yeast is used to make the
|
||||
secret of Neapolitan pizza. Only a tiny bit of yeast is used to make the
|
||||
dough. My default pizza recipe calls for around \qty{150}{\mg} of dry
|
||||
yeast per \unit{\kg} of flour. Give it a shot yourself the next time you
|
||||
make a yeast-based dough. Try to push the fermentation to at least 8~hours.
|
||||
@@ -409,7 +409,7 @@ slower the process.
|
||||
While food is available, the microorganisms will reproduce and increase in
|
||||
quantity. The process is a self-limiting: it stops when there is no
|
||||
more food available. This can be compared to wine making where
|
||||
the yeast ultimately dies as ethanol levels increase. The ethanol creates an
|
||||
the yeast ultimately sporulates and dies as ethanol levels increase. The ethanol creates an
|
||||
environment that makes it impossible for other
|
||||
microorganisms to join the feast. The same thing happens with the acidity
|
||||
created by the bacteria. The high acidity slows the fermentation process and
|
||||
@@ -445,12 +445,13 @@ I~use around \qty{5}{\percent} of sourdough starter in summer times
|
||||
kitchen). In winter times I~opt for around \qty{10}{\percent} up to
|
||||
\qty{20}{\percent} sourdough starter (kitchen temperature around
|
||||
\qty{20}{\degreeCelsius} (\qty{68}{\degF})). This
|
||||
allows me to use a sourdough starter that's not in perfect condition. Your
|
||||
allows me to use a sourdough starter that's not in perfect condition. As
|
||||
explained earlier, your
|
||||
bread dough is essentially a gigantic starter. The low inoculation rate allows
|
||||
the starter to regrow inside your main dough into a desirable balance.
|
||||
Furthermore, the enzymes have enough time to break down the flour. This also
|
||||
allows me to skip the so-called autolysis step completely (more in the next chapter).
|
||||
Making dough becomes very simple.
|
||||
This greatly simplifies the whole process.
|
||||
|
||||
\section{Autolysis}%
|
||||
\label{section:autolysis}
|
||||
@@ -477,7 +478,7 @@ dough will start to taste sweeter and sweeter. The protease and amylase enzymes
|
||||
are doing their job. The same process is used when making oat milk. By letting
|
||||
the mixture sit for some time, enzymes work on the oats. The taste is perceived as
|
||||
sweeter and more appreciated. This process is further accelerated the more
|
||||
whole-wheat your flour is. The hull contains more enzymes. The gluten network
|
||||
whole-grain your flour is. The hull contains more enzymes. The gluten network
|
||||
will ultimately tear, and your dough flattens out. For wheat sourdough, this is
|
||||
your worst enemy. When this happens, your dough will become leaky and release
|
||||
all that precious gas created during the fermentation. You need to find the
|
||||
@@ -652,12 +653,16 @@ the sign of a not well enough developed gluten network.
|
||||
\label{fig:dough-touch-points}
|
||||
\end{figure}
|
||||
|
||||
Kneading more is great in almost all cases. You'll have a stronger
|
||||
gluten network. Unless you are making soft milk breads, you
|
||||
might want to have a more extensible dough, to begin with. For every
|
||||
other type of wheat-based dough, kneading is helpful. When you use
|
||||
a stand mixer, you can run into the issue of kneading too much. This
|
||||
is almost impossible though. Even after kneading for 30~minutes on medium
|
||||
Kneading more is generally beneficial in almost all cases, as it results in a
|
||||
stronger gluten network. However, when making soft milk breads, you might prefer
|
||||
a more extensible dough from the start. In this scenario, excessive kneading
|
||||
could lead to a chewier final bread, which is not desirable if you aim for a
|
||||
fluffier texture. Achieving this fluffier dough can be accomplished by kneading
|
||||
less. While this is an exception, properly kneading your wheat-based doughs
|
||||
is generally advised.
|
||||
|
||||
When you use a stand mixer, you can run into the issue of kneading too much. This
|
||||
is almost impossible in practice though. Even after kneading for 30~minutes on medium
|
||||
speed, my doughs hardly ever were over-kneaded. The moment you knead
|
||||
too much, the color of the dough can begin to change. You mostly
|
||||
notice this, though, during baking. The resulting loaf looks very
|
||||
@@ -1071,7 +1076,8 @@ so, you will be gluing together the two sticky bottom sides. The top smooth side
|
||||
not be sticky in your hands, while the bottom rough surface should tend
|
||||
to stick to your hands. Rotate the container
|
||||
and repeat the same thing from the other side. Rotate the container 90°
|
||||
clockwise and then repeat the process once again. Rotate the container another 180° clockwise
|
||||
and then repeat the process once again. Rotate the container another 180° in
|
||||
the same direction
|
||||
and repeat the fold one last time. By doing so you have applied 4 folds in total. Your
|
||||
dough should now stay in place and resist flowing outwards\footnote{Please
|
||||
also refer to~\cite{stretch+and+fold+technique} for a video showing you how to
|
||||
@@ -1150,7 +1156,7 @@ Now that you have cut your dough, the resulting chunks are not in an equal shape
|
||||
This is problematic for the next stage when you are shaping your dough.
|
||||
The resulting loaves wouldn't look nice and even. You would probably
|
||||
end up with areas that tear the moment you are shaping your dough.
|
||||
You wouldn't start the whole process on a good foundation. For that
|
||||
You wouldn't start the whole proofing process on a good foundation. For that
|
||||
reason, you need to pre-shape your dough.
|
||||
|
||||
Pre-shaping is done for several reasons:
|
||||
@@ -1446,7 +1452,7 @@ There are two proofing techniques. One strategy is to proof the dough
|
||||
at room temperature whereas the other proofs the dough in the fridge.
|
||||
Fridge-proofing is also commonly known as retarding.
|
||||
|
||||
Some bakers claim that cold proofing improves the final flavor of the bread.
|
||||
Some bakers claim that cold-proofing improves the final flavor of the bread.
|
||||
In all the loaves that I~retarded I~could not tell a difference
|
||||
in terms of flavor for cold-proofed doughs. The microorganisms work
|
||||
at a slower rate at colder temperatures. But I~doubt that they alter
|
||||
@@ -1463,7 +1469,7 @@ of retarding and flavor development.
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
To me, the sole purpose of cold proofing is its ability to allow you
|
||||
To me, the sole purpose of cold-proofing is its ability to allow you
|
||||
to better manage the timing of the whole process. Assuming you finished shaping
|
||||
your dough at 10 pm, chances are you wouldn't want to wait for another
|
||||
2~hours to proof the dough and then another 1 hour to bake it. In this case,
|
||||
@@ -1481,13 +1487,13 @@ dough is big. It can be as little as 6~hours later up to 24~hours later.
|
||||
Assuming you made an overnight dough and your dough is ready in the morning,
|
||||
the situation might be different. You potentially want to bake the dough directly
|
||||
for breakfast, or at lunchtime. In this case, you wouldn't want to proof the dough for
|
||||
another 6~hours in the fridge. Room temperature proofing is your technique
|
||||
another 6~hours in the fridge. Room temperature-proofing is your technique
|
||||
of choice.
|
||||
|
||||
To summarize, choose the technique that works for you depending on your
|
||||
schedule and availability.
|
||||
|
||||
\subsection{Room temperature proofing}
|
||||
\subsection{Room temperature-proofing}
|
||||
|
||||
The easiest and most reliable way to proof your dough is to proof the dough at
|
||||
room temperature. It is my method of choice if my schedule allows it. This method
|
||||
@@ -1527,7 +1533,7 @@ over-proofed dough when the dough suddenly becomes very sticky. At the same
|
||||
time, the dough is likely to collapse during baking and will not spring back.
|
||||
Generally, it is better to end proofing too early rather than too late.
|
||||
|
||||
\subsection{Cold proofing (retarding)}
|
||||
\subsection{Cold-proofing (retarding)}
|
||||
|
||||
The second proofing option is to place your dough inside the fridge for
|
||||
proofing. This option is great if you do not want to bake the dough
|
||||
@@ -1566,7 +1572,7 @@ meter. By checking the amount of piled-up acidity you can ensure
|
||||
each of your doughs has the right amount of acidity. Opt for an iterative
|
||||
approach and check the pH for multiple proofing times. Find the pH
|
||||
the value that creates the best bread for you. Once you have identified
|
||||
your perfect pH level you can resort to that value on all following
|
||||
your perfect pH value you can resort to that number on all following
|
||||
doughs. See Table~\ref{table:sample-ph-values} for some sample pH values
|
||||
to follow.
|
||||
|
||||
@@ -1667,11 +1673,11 @@ until you are happy with your technique. After proofing, you only
|
||||
have a single chance to practice scoring. It's either hit or miss.
|
||||
|
||||
An additional trick that can help you to combine the benefits
|
||||
of room temperature proofing and easy cold proofing scoring
|
||||
of room temperature-proofing and easy cold-proofing scoring
|
||||
is to place your dough in the freezer for 30~minutes before baking.
|
||||
Once you notice your dough is almost done proofing, move it to the
|
||||
freezer. The freezer will dry out the surface even further and make
|
||||
scoring easier.
|
||||
freezer. The freezer will dry out the doughs's surface even further
|
||||
while also lowering its viscosity, making scoring easier.
|
||||
|
||||
Another interesting trick is to bake your dough for 30 seconds without steam.
|
||||
The hot air will dry out the dough's surface even further and simplify
|
||||
|
||||
2
makefile
@@ -1,7 +1,7 @@
|
||||
.DEFAULT_GOAL := build_pdf
|
||||
|
||||
DOCKER_IMAGE := ghcr.io/hendricius/the-sourdough-framework
|
||||
DOCKER_CMD := docker run -it -v $(PWD):/opt/repo --platform linux/x86_64 $(DOCKER_IMAGE) /bin/bash -c
|
||||
DOCKER_CMD := docker run --rm -it -v $(PWD):/opt/repo --platform linux/x86_64 $(DOCKER_IMAGE) /bin/bash -c
|
||||
|
||||
.PHONY: bake build_pdf build_docker_image push_docker_image validate website
|
||||
.PHONY: print_os_version start_shell printvars show_tools_version mrproper
|
||||
|
||||
@@ -5,6 +5,8 @@ GEM
|
||||
method_source (1.0.0)
|
||||
nokogiri (1.15.3-arm64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.15.3-x86_64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.15.3-x86_64-linux)
|
||||
racc (~> 1.4)
|
||||
pry (0.14.2)
|
||||
@@ -14,6 +16,7 @@ GEM
|
||||
|
||||
PLATFORMS
|
||||
arm64-darwin-22
|
||||
x86_64-darwin-22
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
|
||||
BIN
website/assets/arrow.png
Normal file
|
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_menu(text)
|
||||
text = fix_cover_page(text) if is_cover_page?(filename)
|
||||
text = add_header_banner(text)
|
||||
text = add_home_link_to_menu(text)
|
||||
text = fix_anchor_hyperlinks_menu(text)
|
||||
text = add_favicon(text)
|
||||
text = add_meta_tags(text, filename)
|
||||
text = remove_section_table_of_contents(text)
|
||||
text = mark_menu_as_selected_if_on_page(text, extract_file_from_path(filename))
|
||||
text = add_canonical_for_duplicates(text, extract_file_from_path(filename))
|
||||
text = include_javascript(text)
|
||||
text = add_text_to_coverpage(text, extract_file_from_path(filename))
|
||||
text = fix_js_dependency_link(text)
|
||||
text = fix_list_of_tables_figures_duplicates(text)
|
||||
text = add_anchors_to_headers(text)
|
||||
text = create_menu_groups(text)
|
||||
text = fix_top_links(text)
|
||||
text = fix_flowchart_background(text)
|
||||
text = remove_empty_menu_links(text)
|
||||
text = fix_bottom_cross_links(text)
|
||||
text = insert_mobile_header_graphic(text)
|
||||
text = fix_https_links(text)
|
||||
text = add_anchors_to_glossary_items(text) if is_glossary_page?(filename)
|
||||
text = mark_menu_as_selected_if_on_page(text, extract_file_from_path(filename))
|
||||
text = fix_menus_list_figures_tables(text) if is_list_figures_tables?(filename)
|
||||
text = fix_list_of_figures_tables_display(text) if is_list_figures_tables?(filename)
|
||||
File.open(filename, "w:UTF-8") {|file| file.puts text }
|
||||
@@ -75,6 +84,10 @@ class ModifyBuild
|
||||
end
|
||||
end
|
||||
|
||||
def is_glossary_page?(filename)
|
||||
filename.include?("Glossary.html")
|
||||
end
|
||||
|
||||
def is_list_figures_tables?(filename)
|
||||
["listfigurename.html", "listtablename.html", "listoflocname.html", "bibname.html"].any? do |name|
|
||||
filename.include?(name)
|
||||
@@ -146,6 +159,45 @@ class ModifyBuild
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
def create_menu_groups(text)
|
||||
doc = build_doc(text)
|
||||
groups = build_groups(doc.css(".menu-items > span"))
|
||||
menu_el = doc.css(".menu-items")[0]
|
||||
html = ""
|
||||
groups.each do |group|
|
||||
out = ""
|
||||
group.each do |g|
|
||||
if g.to_html.length > 0
|
||||
out += %Q{<div class="menu-entry">#{g.to_html}</div>}
|
||||
end
|
||||
end
|
||||
html += %Q{<div class="menu-group">
|
||||
<div class="menu-inner">
|
||||
#{out}
|
||||
</div>
|
||||
<img class="menu-arrow" src="arrow.png" />
|
||||
</div>}
|
||||
end
|
||||
menu_el.inner_html = html
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
def build_groups(menu_items)
|
||||
final_groups = []
|
||||
tmp_groups = []
|
||||
menu_items.each_with_index do |el, index|
|
||||
# Get next item and check if it is a lower entry level in the menu.
|
||||
next_item = menu_items[index + 1]
|
||||
if next_item && next_item["class"].include?("chapterToc") || next_item.nil?
|
||||
final_groups.push(tmp_groups.push(el))
|
||||
tmp_groups = []
|
||||
else
|
||||
tmp_groups.push(el)
|
||||
end
|
||||
end
|
||||
final_groups
|
||||
end
|
||||
|
||||
# By default the titles look boring. This changes the titles of all the
|
||||
# pages and adds the book name as appendix
|
||||
def fix_titles(text)
|
||||
@@ -231,7 +283,7 @@ class ModifyBuild
|
||||
content = doc.css("body > .main-content")[0]
|
||||
menu = doc.css("body > nav")[0]
|
||||
content = %Q{
|
||||
<main class="titlepage">
|
||||
<main class="titlepage main-content">
|
||||
<a href="Thehistoryofsourdough.html">
|
||||
<img src="cover-page.jpg" />
|
||||
<div class="version"><p>#{version}</p></div>
|
||||
@@ -251,7 +303,7 @@ class ModifyBuild
|
||||
menu = doc.css(".menu-items")[0]
|
||||
return text if menu.nil?
|
||||
|
||||
home_html = %Q{<span class="chapterToc home-link"><a href="/">Home</a></span>}
|
||||
home_html = %Q{<span class="chapterToc home-link"><a href="/">🍞 The Sourdough Framework</a></span>}
|
||||
# Normally the flowcharts link should be automatically added, but there
|
||||
# seems to be a problem in the generation. See:
|
||||
# https://github.com/hendricius/the-sourdough-framework/pull/188 for more
|
||||
@@ -262,12 +314,12 @@ class ModifyBuild
|
||||
<span class="link_text">List of Flowcharts</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class="chapterToc">
|
||||
<span class="chapterToc listtables-menu">
|
||||
<a href="listtablename.html">
|
||||
<span class="link_text">List of Tables</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class="chapterToc">
|
||||
<span class="chapterToc listfigures-menu">
|
||||
<a href="listfigurename.html">
|
||||
<span class="link_text">List of Figures</span>
|
||||
</a>
|
||||
@@ -278,9 +330,15 @@ class ModifyBuild
|
||||
</a>
|
||||
</span>
|
||||
<span class="chapterToc">
|
||||
<a href="https://breadco.de/kofi">
|
||||
<span class="chapter_number">⭐️</span>
|
||||
<span class="link_text">Donate</span>
|
||||
<a href="https://www.the-bread-code.io/book.pdf">
|
||||
<span class="chapter_number">⬇️</span>
|
||||
<span class="link_text">Book .PDF</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class="chapterToc">
|
||||
<a href="https://www.the-bread-code.io/book.epub">
|
||||
<span class="chapter_number">⬇️</span>
|
||||
<span class="link_text">Book .EPUB</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class="chapterToc">
|
||||
@@ -289,11 +347,55 @@ class ModifyBuild
|
||||
<span class="link_text">Hardcover Book</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class="chapterToc">
|
||||
<a href="https://www.github.com/hendricius/the-sourdough-framework">
|
||||
<span class="chapter_number">⚙️</span>
|
||||
<span class="link_text">Source code</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class="chapterToc">
|
||||
<a href="https://breadco.de/kofi">
|
||||
<span class="chapter_number">⭐️</span>
|
||||
<span class="link_text">Support me</span>
|
||||
</a>
|
||||
</span>
|
||||
}
|
||||
menu.inner_html = "#{home_html} #{menu.inner_html} #{appendix_html}"
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
# Adds a header banner to each page
|
||||
def add_header_banner(text)
|
||||
doc = build_doc(text)
|
||||
body = doc.css("body")[0]
|
||||
footnotes = doc.css(".footnotes")[0]
|
||||
main = doc.css(".main-content")[0]
|
||||
menu = doc.css(".menu")[0]
|
||||
if main.nil? || menu.nil?
|
||||
#raise ArgumentError.new("Don't know how to handle")
|
||||
return doc.to_html
|
||||
end
|
||||
body.inner_html = %Q{
|
||||
<div class='wrapper'>
|
||||
#{build_header_html}
|
||||
<div class='book-content'>
|
||||
#{menu.to_html}
|
||||
<main class='main-content'>
|
||||
#{main.inner_html}
|
||||
#{footnotes ? footnotes.to_html : ''}
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
return doc.to_html
|
||||
end
|
||||
|
||||
def build_header_html
|
||||
%Q{
|
||||
<div class="header"><img src="banner.png"></div>
|
||||
}
|
||||
end
|
||||
|
||||
# Some of the menu links are added in the wrong order. Remove them since we
|
||||
# later on add them in the structure that we want.
|
||||
def remove_duplicate_entries_menu(text)
|
||||
@@ -411,13 +513,14 @@ class ModifyBuild
|
||||
"Sourdoughstartertypes.html" => "og_image_sourdough_starter_types.png",
|
||||
"Storingbread.html" => "og_image_storing_bread.png",
|
||||
"Thehistoryofsourdough.html" => "og_image_the_history_of_sourdough.png",
|
||||
"Wheatsourdough.html" => "og_image_troubleshooting.png",
|
||||
"Wheatsourdough.html" => "og_image_wheat_sourdough.png",
|
||||
"Troubleshooting.html" => "og_image_troubleshooting.png",
|
||||
"Mixins.html" => "og_image_mixins.png",
|
||||
}
|
||||
end
|
||||
|
||||
def mark_menu_as_selected_if_on_page(text, filename)
|
||||
doc = build_doc(text)
|
||||
return doc.to_html
|
||||
|
||||
selected = doc.css(".menu-items .chapterToc > a").find do |el|
|
||||
el["href"] == ""
|
||||
@@ -432,7 +535,17 @@ class ModifyBuild
|
||||
# Special case for the flowcharts page which is added by us to the menu.
|
||||
# This needs to be done for future manually added pages too
|
||||
if "listoflocname.html" == filename
|
||||
doc.css(".menu-items .chapterToc.flowcharts-menu")[0].add_class("selected")
|
||||
doc.css(".menu-items .chapterToc.flowcharts-menu")[0].ancestors(".menu-group")[0].add_class("selected")
|
||||
return doc.to_html
|
||||
end
|
||||
|
||||
if "listtablename.html" == filename
|
||||
doc.css(".menu-items .chapterToc.listtables-menu")[0].ancestors(".menu-group")[0].add_class("selected")
|
||||
return doc.to_html
|
||||
end
|
||||
|
||||
if "listfigurename.html" == filename
|
||||
doc.css(".menu-items .chapterToc.listfigures-menu")[0].ancestors(".menu-group")[0].add_class("selected")
|
||||
return doc.to_html
|
||||
end
|
||||
|
||||
@@ -441,7 +554,7 @@ class ModifyBuild
|
||||
# Fix that when the menu is selected the href is empty. This way users can
|
||||
# click the menu and the page will reload.
|
||||
selected["href"] = filename
|
||||
selected.parent.add_class("selected")
|
||||
selected.ancestors(".menu-group")[0].add_class("selected")
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
@@ -472,14 +585,28 @@ class ModifyBuild
|
||||
def add_text_to_coverpage(text, filename)
|
||||
return text unless is_cover_page?(filename)
|
||||
doc = build_doc(text)
|
||||
content = doc.css(".titlepage")[0]
|
||||
raise ArgumentError.new(".titlepage not found in HTML") if content.nil?
|
||||
|
||||
content.add_class("main-content")
|
||||
content = doc.css(".main-content")[0]
|
||||
content.inner_html = "#{build_cover_page_content} #{content.inner_html}"
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
def add_anchors_to_glossary_items(text)
|
||||
doc = build_doc(text)
|
||||
content = doc.css("dt.description")
|
||||
content.each do |el|
|
||||
term = el.css("span")[0]
|
||||
item_name = term&.text
|
||||
# No anchor for whatever reason
|
||||
next unless item_name
|
||||
|
||||
anchor = item_name.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
|
||||
copy_link = %Q{<a href="#term-#{anchor}" class="permalink">🔗</a>}
|
||||
el.set_attribute("id", "term-#{anchor}")
|
||||
term.inner_html = "#{term.inner_html}#{copy_link}"
|
||||
end
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
def build_cover_page_content
|
||||
%Q{
|
||||
<h2 class="chapterHead home-title">
|
||||
@@ -586,13 +713,10 @@ class ModifyBuild
|
||||
# this.
|
||||
def fix_menus_list_figures_tables(text)
|
||||
doc = build_doc(text)
|
||||
content = doc.css(".menu-items > .subsectionToc, .menu-items > .sectionToc")
|
||||
content = doc.css(".menu-group .subsectionToc, .menu-group .sectionToc")
|
||||
content.each do |node|
|
||||
node.remove
|
||||
node.ancestors(".menu-entry")[0].remove
|
||||
end
|
||||
doc.css(".menu-items > .lotToc").each(&:remove)
|
||||
doc.css(".menu-items > .lofToc").each(&:remove)
|
||||
doc.css(".menu-items > br").each(&:remove)
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
@@ -626,6 +750,69 @@ class ModifyBuild
|
||||
end
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
# For some reason some of the links are broken in the conversion process.
|
||||
# They have https:/www and are missing a slash.
|
||||
def fix_https_links(text)
|
||||
text.gsub(/https:\/(?!\/)/, 'https://')
|
||||
end
|
||||
|
||||
def fix_top_links(text)
|
||||
doc = build_doc(text)
|
||||
el = doc.css(".crosslinks-top")[0]
|
||||
el.remove if el
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
def remove_empty_menu_links(text)
|
||||
doc = build_doc(text)
|
||||
menus = doc.css(".menu-group")
|
||||
menus.each do |m|
|
||||
element = m.css("span.chapterToc")[0]
|
||||
next unless element
|
||||
if element.inner_html == "" || element.inner_html == " "
|
||||
m.remove
|
||||
end
|
||||
end
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
def insert_mobile_header_graphic(text)
|
||||
doc = build_doc(text)
|
||||
content = doc.css(".TOC.menu")[0]
|
||||
content.after('<div class="mobile-banner"><img src="banner.png" /></div>')
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
def fix_flowchart_background(text)
|
||||
doc = build_doc(text)
|
||||
images = doc.css("img")
|
||||
images.each do |img|
|
||||
src = img.attr("src")
|
||||
is_flowchart = src.include?(".svg")
|
||||
next unless is_flowchart
|
||||
img.parent.add_class("flowchart-image-wrapper")
|
||||
|
||||
end
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
def fix_bottom_cross_links(text)
|
||||
doc = build_doc(text)
|
||||
link_cont = doc.css(".crosslinks-bottom")[0]
|
||||
return doc.to_html unless link_cont
|
||||
|
||||
links = doc.css(".crosslinks-bottom a")
|
||||
prev_link = links.find {|l| l.inner_html == "prev" }
|
||||
next_link = links.find {|l| l.inner_html == "next" }
|
||||
prev_html = prev_link ? "<a class='prev' href='#{prev_link.attr('href')}'>Previous page</a>" : ''
|
||||
next_html = next_link ? "<a class='next' href='#{next_link.attr('href')}'>Next page</a>" : ''
|
||||
link_cont.inner_html = %Q{
|
||||
#{prev_html}
|
||||
#{next_html}
|
||||
}
|
||||
doc.to_html
|
||||
end
|
||||
end
|
||||
|
||||
ModifyBuild.build
|
||||
|
||||