mirror of
https://github.com/hendricius/the-sourdough-framework
synced 2025-11-08 12:11:11 -06:00
Compare commits
7 Commits
95c3a91bee
...
637b2313f3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
637b2313f3 | ||
|
|
5bb5d8a48a | ||
|
|
f64fc55977 | ||
|
|
3e02af03ad | ||
|
|
7da9f5b0ad | ||
|
|
19df1546f0 | ||
|
|
4160557857 |
@@ -39,10 +39,16 @@ for oven spring as it retains the gas inside your dough.
|
|||||||
|
|
||||||
At around \qty{100}{\degreeCelsius} (\qty{212}{\degF}) the water starts to evaporate out of your
|
At around \qty{100}{\degreeCelsius} (\qty{212}{\degF}) the water starts to evaporate out of your
|
||||||
dough. If this weren't the case, your dough would taste soggy and
|
dough. If this weren't the case, your dough would taste soggy and
|
||||||
doughy. The higher hydration your dough has, the more water your bread
|
doughy. The higher the hydration your dough has, the more water your bread
|
||||||
still contains after the bake, changing its consistency. As a result the
|
still contains after the bake, changing its consistency. As a result the
|
||||||
crumb is going to taste a bit more moist.
|
crumb is going to taste a bit more moist.
|
||||||
|
|
||||||
|
The water starts to boil out of the
|
||||||
|
dough. As the water evaporates the surrounding dough is being cooled.
|
||||||
|
For this reason, the internal temperature of the dough never exceeds the aforementioned
|
||||||
|
\qty{100}{\degreeCelsius} (\qty{212}{\degF}). The bread's crust can exceed the boiling point
|
||||||
|
and continues increasing in size from the outer layer inwards~\cite{bread+temperature+baking}.
|
||||||
|
|
||||||
Another often undervalued step is the evaporation of acids.
|
Another often undervalued step is the evaporation of acids.
|
||||||
At~\qty{118}{\degreeCelsius} (\qty{244}{\degF}) the acetic acid in your dough
|
At~\qty{118}{\degreeCelsius} (\qty{244}{\degF}) the acetic acid in your dough
|
||||||
starts to evaporate.
|
starts to evaporate.
|
||||||
|
|||||||
134
book/makefile
134
book/makefile
@@ -7,8 +7,8 @@ CHECK_1 := lacheck
|
|||||||
CHECK_2 := chktex
|
CHECK_2 := chktex
|
||||||
CONVERT_PIC := convert
|
CONVERT_PIC := convert
|
||||||
REDUCE_PIC := -resize '800x800>' \
|
REDUCE_PIC := -resize '800x800>' \
|
||||||
-strip -interlace Plane -gaussian-blur 0.05 -quality 85\% \
|
-strip -interlace Plane -gaussian-blur 0.05 -quality 85\% \
|
||||||
-set colorspace Gray -separate -evaluate-sequence Mean
|
-set colorspace Gray -separate -evaluate-sequence Mean
|
||||||
REDUCE_PIC_COLOR := -quality 80\%
|
REDUCE_PIC_COLOR := -quality 80\%
|
||||||
RSYNC := rsync -au --exclude 'book.epub' --exclude '*.jpg'
|
RSYNC := rsync -au --exclude 'book.epub' --exclude '*.jpg'
|
||||||
GIT := git --no-pager
|
GIT := git --no-pager
|
||||||
@@ -30,7 +30,7 @@ endif
|
|||||||
# and building everything take a long time.
|
# and building everything take a long time.
|
||||||
.DEFAULT_GOAL := serif
|
.DEFAULT_GOAL := serif
|
||||||
|
|
||||||
# List all files that are dependencies {{{
|
# Dependencies {{{
|
||||||
chapters = baking basics bread-types cover flour-types history intro mix-ins\
|
chapters = baking basics bread-types cover flour-types history intro mix-ins\
|
||||||
non-wheat-sourdough sourdough-starter storing-bread troubleshooting\
|
non-wheat-sourdough sourdough-starter storing-bread troubleshooting\
|
||||||
wheat-sourdough glossary
|
wheat-sourdough glossary
|
||||||
@@ -75,15 +75,17 @@ low_res_images := $(filter-out %.png, $(low_res_images))
|
|||||||
# All together.
|
# All together.
|
||||||
src_all := $(src_tex) $(src_figures) $(src_tables) $(images) $(src_plots)
|
src_all := $(src_tex) $(src_figures) $(src_tables) $(images) $(src_plots)
|
||||||
|
|
||||||
# And format specific configurations
|
# Format specific configuration files
|
||||||
ebook_src := $(src_all) tex4ebook.cfg book.mk4 book-ebook.css
|
ebook_src := $(src_all) tex4ebook.cfg book.mk4 book-ebook.css
|
||||||
|
|
||||||
website_src := $(src_all) website.cfg style.css
|
website_src := $(src_all) website.cfg style.css
|
||||||
website_dir := static_website_html
|
website_dir := static_website_html
|
||||||
website_assets := $(wildcard ../website/assets/*)
|
website_assets := $(wildcard ../website/assets/*)
|
||||||
ruby_src := ../website/modify_build.rb $(website_assets)
|
ruby_src := ../website/modify_build.rb $(website_assets)
|
||||||
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
|
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
|
||||||
|
# }}}
|
||||||
|
|
||||||
|
# Internal build rules {{{
|
||||||
# Flowcharts {{{
|
# Flowcharts {{{
|
||||||
# TODO: check if it works on github CI
|
# TODO: check if it works on github CI
|
||||||
%.png: %.tex
|
%.png: %.tex
|
||||||
@@ -98,7 +100,7 @@ ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
|
|||||||
ebb -x $<
|
ebb -x $<
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# pdf {{{
|
# Pdf {{{
|
||||||
# Default rules for pdf, getting overwritten when built in a sub-directory
|
# Default rules for pdf, getting overwritten when built in a sub-directory
|
||||||
%.pdf: %.tex
|
%.pdf: %.tex
|
||||||
$(LATEX) $<
|
$(LATEX) $<
|
||||||
@@ -116,15 +118,15 @@ book_sans_serif/book_sans_serif.pdf: $(src_all)
|
|||||||
epub/%.epub: %.tex $(ebook_src) cover/cover-page.xbb
|
epub/%.epub: %.tex $(ebook_src) cover/cover-page.xbb
|
||||||
$(EBOOK) $<
|
$(EBOOK) $<
|
||||||
|
|
||||||
copy_ebook_files: build_ebook
|
copy_ebook_files: ebook
|
||||||
$(RSYNC) --exclude '*.png' epub_build/book-epub/ bw-book-epub/
|
$(RSYNC) --exclude '*.png' epub_build/book-epub/ bw-book-epub/
|
||||||
|
|
||||||
# Now that we have built the ebook we will generate 2 more versions
|
# Now that we have built the ebook we will generate 2 more versions
|
||||||
#
|
#
|
||||||
# 1) With kindle app on phone we want a colour version with size < 50 MB
|
# 1) With kindle app on phone we want a colour version with size < 50 MB
|
||||||
# 2) A black-white version for actual eink readers
|
# 2) A black-white version for actual eink readers
|
||||||
#
|
#
|
||||||
# In both cases we just convert images and repack the ebpub
|
# In both cases we just convert images and repack the ebpub
|
||||||
|
|
||||||
# We do not convert SVG to B&W or lower res for now as they are super small
|
# We do not convert SVG to B&W or lower res for now as they are super small
|
||||||
# anyway
|
# anyway
|
||||||
@@ -151,7 +153,7 @@ low-res-book-epub/OEBPS/%.jpg: %.jpg
|
|||||||
epub/low_res_book.epub: copy_ebook_files_low_res $(low_res_images)
|
epub/low_res_book.epub: copy_ebook_files_low_res $(low_res_images)
|
||||||
cd low-res-book-epub; zip -q0X ../epub/low_res_book.epub mimetype
|
cd low-res-book-epub; zip -q0X ../epub/low_res_book.epub mimetype
|
||||||
cd low-res-book-epub; zip -q9XrD ../epub/low_res_book.epub ./
|
cd low-res-book-epub; zip -q9XrD ../epub/low_res_book.epub ./
|
||||||
#}}}
|
# }}}
|
||||||
|
|
||||||
# Website {{{
|
# Website {{{
|
||||||
###################################
|
###################################
|
||||||
@@ -181,33 +183,47 @@ website: html ../website/_bundle_install_done $(ruby_src)
|
|||||||
export_figures: pdf $(tgt_figures)
|
export_figures: pdf $(tgt_figures)
|
||||||
cd figures/ && bash export_figures.sh
|
cd figures/ && bash export_figures.sh
|
||||||
# }}}
|
# }}}
|
||||||
|
# }}}
|
||||||
|
|
||||||
# Now with the targets {{{
|
# User level targets {{{
|
||||||
# Expected usual targets first
|
# Build targets {{{
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: bake
|
all: bake
|
||||||
|
|
||||||
# Finally actual project targets (i.e. build pdf and ebooks)
|
# Finally actual project targets (i.e. build pdf and ebooks)
|
||||||
.PHONY: pdf serif sans_serif ebook
|
.PHONY: pdf serif sans_serif ebook
|
||||||
|
|
||||||
pdf: serif sans_serif
|
pdf: serif sans_serif
|
||||||
|
|
||||||
serif: book_serif/book.pdf
|
serif: book_serif/book.pdf
|
||||||
sans_serif: book_sans_serif/book_sans_serif.pdf
|
sans_serif: book_sans_serif/book_sans_serif.pdf
|
||||||
|
|
||||||
ebook: epub/book.epub
|
ebook: epub/book.epub
|
||||||
bw_ebook: epub/bw_book.epub
|
bw_ebook: epub/bw_book.epub
|
||||||
low_res_ebook: epub/low_res_book.epub
|
low_res_ebook: epub/low_res_book.epub
|
||||||
|
# }}}
|
||||||
|
|
||||||
# We keep the old target names for backward compatibility
|
# Old target names are disabled with helpful help message {{{
|
||||||
build_pdf: pdf
|
build_pdf:
|
||||||
build_serif_pdf: serif
|
@echo "build_pdf target is not supported anymore, please use make pdf"
|
||||||
build_sans_serif_pdf: sans_serif
|
@exit
|
||||||
build_ebook: ebook
|
build_serif_pdf:
|
||||||
build_bw_ebook: bw_ebook
|
@echo "build_serif_pdf target is not supported anymore, please use make serif"
|
||||||
build_low_res_ebook: low_res_ebook
|
@exit
|
||||||
|
build_sans_serif_pdf:
|
||||||
|
@echo "build_sans_serif_pdf target is not supported anymore, please use make sans_serif"
|
||||||
|
@exit
|
||||||
|
build_ebook:
|
||||||
|
@echo "build_ebook target is not supported anymore, please use make ebook"
|
||||||
|
@exit
|
||||||
|
build_bw_ebook:
|
||||||
|
@echo "build_bw_ebook target is not supported anymore, please use make bw_ebook"
|
||||||
|
@exit
|
||||||
|
build_low_res_ebook:
|
||||||
|
@echo "build_low_res_ebook target is not supported anymore, please use make low_res_ebook"
|
||||||
|
@exit
|
||||||
|
# }}}
|
||||||
|
|
||||||
# top level releases rules
|
# Top level releases rules {{{
|
||||||
.PHONY: bake release_serif release_sans_serif
|
.PHONY: bake release_serif release_sans_serif
|
||||||
bake: release_serif release_sans_serif website
|
bake: release_serif release_sans_serif website
|
||||||
|
|
||||||
@@ -225,7 +241,7 @@ release_serif: serif ebook bw_ebook low_res_ebook | release
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
release_sans_serif: sans_serif | release
|
release_sans_serif: sans_serif | release
|
||||||
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
|
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Clean up {{{
|
# Clean up {{{
|
||||||
@@ -243,12 +259,9 @@ clean_figures:
|
|||||||
clean_ebook_build:
|
clean_ebook_build:
|
||||||
-rm epub_build/book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
-rm epub_build/book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
||||||
-rm epub_build/book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
|
-rm epub_build/book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
|
||||||
|
-rm epub_build/{book.css,content.opf} epub_build/book-epub/mimetype
|
||||||
-rm epub_build/book*x.svg
|
-rm epub_build/book*x.svg
|
||||||
-rm epub_build/book.css
|
-rm -rf epub_build/book-epub/META-INF epub_build/book-epub/OEBPS
|
||||||
-rm epub_build/content.opf
|
|
||||||
-rm epub_build/book-epub/mimetype
|
|
||||||
-rm -rf epub_build/book-epub/META-INF
|
|
||||||
-rm -rf epub_build/book-epub/OEBPS
|
|
||||||
|
|
||||||
clean_website_build:
|
clean_website_build:
|
||||||
-rm website_build/book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
-rm website_build/book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
||||||
@@ -265,15 +278,11 @@ mrproper: clean
|
|||||||
$(CLEAN) -C -output-directory=book_serif book.tex
|
$(CLEAN) -C -output-directory=book_serif book.tex
|
||||||
$(CLEAN) -C -output-directory=book_sans_serif book_sans_serif.tex
|
$(CLEAN) -C -output-directory=book_sans_serif book_sans_serif.tex
|
||||||
-rm figures/*.png
|
-rm figures/*.png
|
||||||
-rm -rf epub/
|
|
||||||
-rm -rf release/
|
-rm -rf release/
|
||||||
-rm -rf book_serif/
|
-rm -rf book_serif/ book_sans_serif/
|
||||||
-rm -rf book_sans_serif/
|
-rm -rf epub/ epub_build/ bw-book-epub/ low-res-book-epub/
|
||||||
-rm -rf *book-epub/
|
-rm -rf website_build/ $(website_dir)
|
||||||
-rm -rf epub_build/
|
# }}}
|
||||||
-rm -rf website_build/
|
|
||||||
-rm -rf $(website_dir)
|
|
||||||
#}}}
|
|
||||||
|
|
||||||
# Help {{{
|
# Help {{{
|
||||||
###################################
|
###################################
|
||||||
@@ -333,8 +342,9 @@ help:
|
|||||||
@echo ""
|
@echo ""
|
||||||
@echo "set DEBUG i.e make DEBUG=1 ebook to add debug flags to commands"
|
@echo "set DEBUG i.e make DEBUG=1 ebook to add debug flags to commands"
|
||||||
# }}}
|
# }}}
|
||||||
|
# }}}
|
||||||
|
|
||||||
# Debug Stuff from now on {{{
|
# Debug Stuff {{{
|
||||||
###################################
|
###################################
|
||||||
|
|
||||||
# Verify your spelling and TeX warnings {{{
|
# Verify your spelling and TeX warnings {{{
|
||||||
@@ -360,54 +370,54 @@ spell-check: $(src_tex) spelling_exceptions.txt
|
|||||||
.PHONY: quick quick_ebook show_tools_version printvars
|
.PHONY: quick quick_ebook show_tools_version printvars
|
||||||
# Those 2 targets allow fast debug cycles but not resolving references etc
|
# Those 2 targets allow fast debug cycles but not resolving references etc
|
||||||
# They also ignore dependencies and run each time you call them.
|
# They also ignore dependencies and run each time you call them.
|
||||||
quick: # run latex only once no biber, no references etc...
|
quick: # run latex only once no biber, no references etc...
|
||||||
$(LATEX) -e '$$max_repeat=1' -halt-on-error -output-directory=book_serif book.tex
|
$(LATEX) -e '$$max_repeat=1' -halt-on-error -output-directory=book_serif book.tex
|
||||||
|
|
||||||
quick_ebook: cover/cover-page.xbb # run latex only once no biber, ref etc...
|
quick_ebook: cover/cover-page.xbb # run latex only once no biber, ref etc...
|
||||||
$(EBOOK) --mode draft book.tex
|
$(EBOOK) --mode draft book.tex
|
||||||
|
|
||||||
show_tools_version: # Show version of tools used on the build machine {{{
|
show_tools_version: # Show version of tools used on the build machine {{{
|
||||||
- $(GIT) log -1 --pretty=%B
|
-$(GIT) log -5 --pretty="%h: %s by %an on %as"
|
||||||
@echo ""
|
@echo ""
|
||||||
- uname -a
|
-uname -a
|
||||||
@echo ""
|
@echo ""
|
||||||
- $(SHELL) --version
|
-$(SHELL) --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- @echo "PATH:"
|
-@echo "PATH:"
|
||||||
- @echo $(PATH) | tr ':' '\n'
|
-@echo $(PATH) | tr ':' '\n'
|
||||||
@echo ""
|
@echo ""
|
||||||
- latexmk --version
|
-latexmk --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- lualatex --version
|
-lualatex --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- tex4ebook --version
|
-tex4ebook --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- make4ht --version
|
-make4ht --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- tidy -version
|
-tidy -version
|
||||||
@echo ""
|
@echo ""
|
||||||
- dvisvgm --version
|
-dvisvgm --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- lacheck | head -5 | tail -1
|
-lacheck | head -5 | tail -1
|
||||||
@echo ""
|
@echo ""
|
||||||
- chktex --version
|
-chktex --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- make --version
|
-make --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- biber -version
|
-biber -version
|
||||||
@echo ""
|
@echo ""
|
||||||
- ruby --version
|
-ruby --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- $(CONVERT_PIC) --version
|
-$(CONVERT_PIC) --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- rsync --version
|
-rsync --version
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# You can find the value of variable X with the following command:
|
# You can find the value of variable X with the following command:
|
||||||
# make print-X
|
# make print-X
|
||||||
print-%: ; @echo $* = $($*) # Print a makefile variable
|
print-%: ; @echo $* = $($*) # Print a makefile variable
|
||||||
|
|
||||||
printvars: # Print all variables in the makefile
|
printvars: # Print all variables in the makefile
|
||||||
@$(foreach V,$(sort $(.VARIABLES)), \
|
@$(foreach V,$(sort $(.VARIABLES)), \
|
||||||
$(if $(filter-out environ% default automatic, \
|
$(if $(filter-out environ% default automatic, \
|
||||||
$(origin $V)),$(info $V=$($V) ($(value $V)))))
|
$(origin $V)),$(info $V=$($V) ($(value $V)))))
|
||||||
|
|||||||
@@ -448,6 +448,13 @@
|
|||||||
note = {Accessed: 2023-02-03}
|
note = {Accessed: 2023-02-03}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@article{bread+temperature+baking,
|
||||||
|
author = {Athanasius},
|
||||||
|
title = {What is the maximum internal temperature of baked goods?},
|
||||||
|
url = {https://cooking.stackexchange.com/questions/54068/what-is-the-maximum-internal-temperature-of-baked-goods},
|
||||||
|
note = {Accessed: 2023-03-03}
|
||||||
|
}
|
||||||
|
|
||||||
@misc{wheat+kernel,
|
@misc{wheat+kernel,
|
||||||
author = {W. Berghoff},
|
author = {W. Berghoff},
|
||||||
title = {A wheat kernel and its nutritional value.},
|
title = {A wheat kernel and its nutritional value.},
|
||||||
|
|||||||
Reference in New Issue
Block a user