mirror of
https://github.com/hendricius/the-sourdough-framework
synced 2026-02-12 01:07:14 -06:00
Compare commits
16 Commits
989c8b7eac
...
remove_old
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc9d1838f2 | ||
|
|
75287c955d | ||
|
|
278ce9f659 | ||
|
|
428cf075f5 | ||
|
|
17b667f4b4 | ||
|
|
93006f34c7 | ||
|
|
cc044c7776 | ||
|
|
505abb15b4 | ||
|
|
134e423277 | ||
|
|
91b073e0fd | ||
|
|
cef0d9c8f7 | ||
|
|
656404782a | ||
|
|
ea75a1ac8a | ||
|
|
9e4e03bcfa | ||
|
|
b783b1e274 | ||
|
|
fb5f526b2f |
56
.github/workflows/release-book-website.yml
vendored
56
.github/workflows/release-book-website.yml
vendored
@@ -65,15 +65,16 @@ jobs:
|
||||
run: |
|
||||
cd /app/book
|
||||
make -j -O bake
|
||||
- name: Release baked book to S3
|
||||
uses: shallwefootball/s3-upload-action@master
|
||||
- name: Copy book to downloads server
|
||||
uses: burnett01/rsync-deployments@7.0.2
|
||||
with:
|
||||
aws_key_id: ${{ secrets.AWS_KEY_ID }}
|
||||
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
|
||||
aws_bucket: ${{ secrets.AWS_BUCKET_BOOK }}
|
||||
source_dir: book/release
|
||||
destination_dir: release
|
||||
- name: Upload book Artifacts
|
||||
switches: "-avzr"
|
||||
remote_host: ${{ secrets.SSH_HOST }}
|
||||
remote_user: ${{ secrets.SSH_USERNAME }}
|
||||
remote_key: ${{ secrets.SSH_KEY }}
|
||||
path: "book/release/*"
|
||||
remote_path: "~/downloads/the-sourdough-framework/"
|
||||
- name: Upload book artifacts to GitHub
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: books
|
||||
@@ -81,36 +82,17 @@ jobs:
|
||||
book/book_serif/book.log
|
||||
book/book_serif/book.pdf
|
||||
book/book-epub/book.epub
|
||||
- name: Release baked website to S3
|
||||
uses: shallwefootball/s3-upload-action@master
|
||||
- name: Copy website to downloads server
|
||||
uses: burnett01/rsync-deployments@7.0.2
|
||||
with:
|
||||
aws_key_id: ${{ secrets.AWS_KEY_ID }}
|
||||
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
|
||||
aws_bucket: ${{ secrets.AWS_BUCKET_WEBSITE }}
|
||||
source_dir: website/static_website_html
|
||||
destination_dir: static_html_root
|
||||
- name: Upload website Artifacts
|
||||
switches: "-avzr --delete"
|
||||
remote_host: ${{ secrets.SSH_HOST }}
|
||||
remote_user: ${{ secrets.SSH_USERNAME }}
|
||||
remote_key: ${{ secrets.SSH_KEY }}
|
||||
path: "website/static_website_html/*"
|
||||
remote_path: "~/the-sourdough-framework/"
|
||||
- name: Upload website artifacts to GitHub
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: website
|
||||
path: website/static_website_html
|
||||
invalidate-book-website-cache:
|
||||
needs: release-book-website
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Invalidate Cloudfront book cache
|
||||
uses: chetan/invalidate-cloudfront-action@v2
|
||||
env:
|
||||
DISTRIBUTION: ${{ secrets.CLOUDFRONT_DISTRIBUTION_BOOK }}
|
||||
PATHS: "/*"
|
||||
AWS_REGION: "us-east-1"
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
- name: Invalidate Cloudfront website cache
|
||||
uses: chetan/invalidate-cloudfront-action@v2
|
||||
env:
|
||||
DISTRIBUTION: ${{ secrets.CLOUDFRONT_DISTRIBUTION_WEBSITE }}
|
||||
PATHS: "/*"
|
||||
AWS_REGION: "us-east-1"
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
path: website/static_website_html
|
||||
4
.github/workflows/test-book-website.yml
vendored
4
.github/workflows/test-book-website.yml
vendored
@@ -41,7 +41,7 @@ jobs:
|
||||
run: |
|
||||
cd /app/book
|
||||
make -j -O serif ebook website
|
||||
- name: Upload book Artifacts
|
||||
- name: Upload book artifacts to GitHub
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: books
|
||||
@@ -49,7 +49,7 @@ jobs:
|
||||
book/book_serif/book.log
|
||||
book/book_serif/book.pdf
|
||||
book/book-epub/book.epub
|
||||
- name: Upload website Artifacts
|
||||
- name: Upload website artifacts to GitHub
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: website
|
||||
|
||||
@@ -37,24 +37,24 @@ At \qty{75}{\degreeCelsius} (\qty{167}{\degF}) the surface of your dough turns
|
||||
holds together nicely but is still extensible. This gel is essential
|
||||
for oven spring as it retains the gas inside your dough.
|
||||
|
||||
As the dough warms up in the oven, the water starts to evaporate out of your
|
||||
dough. If this weren't the case, your bread would come out soggy and
|
||||
doughy. The higher the hydration of your dough, the more water your bread
|
||||
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
|
||||
doughy. The higher hydration your dough has, the more water your bread
|
||||
still contains after the bake, changing its consistency. As a result the
|
||||
crumb will be somewhat moister.
|
||||
crumb is going to taste a bit more moist.
|
||||
|
||||
Another often undervalued step is the evaporation of acids from the crust.
|
||||
Another often undervalued step is the evaporation of acids.
|
||||
At~\qty{118}{\degreeCelsius} (\qty{244}{\degF}) the acetic acid in your dough
|
||||
starts to evaporate.
|
||||
Shortly after at~\qty{122}{\degreeCelsius} (\qty{252}{\degF}) the lactic acid begins evaporating.
|
||||
This is crucial to understand and it opens the door to many interesting
|
||||
ways to influence your final bread's taste. As more and more water
|
||||
evaporates the acids in your dough become more concentrated.
|
||||
There is less water but in relation you have more acids, therefore a longer
|
||||
begins to evaporate the acids in your dough become more concentrated.
|
||||
There is less water but in relation you have more acids, therefore a shorter
|
||||
bake will lead to a more tangy dough. The longer you bake the bread,
|
||||
the more of the water evaporates, but also ultimately the acids will follow.
|
||||
The longer you bake, the less sour your bread is going to be. By controlling
|
||||
baking time you can somewhat influence which sourness level you would like to achieve. Since the inside of the bread will never go above \qty{100}{\degreeCelsius} (\qty{212}{\degF}), acids cannot evaporate from there.
|
||||
baking time you can influence which sourness level you would like to achieve.
|
||||
|
||||
It would be a very interesting experiment to bake a bread at different exact
|
||||
temperatures. How would a bread taste with only evaporated water but
|
||||
|
||||
@@ -229,7 +229,7 @@ During World~War~II the first packaged dry yeast was developed. This would
|
||||
ultimately allow bakeries and home bakers to make bread much faster and more
|
||||
consistently. Thanks to pure yeast, building industrial bread making machines
|
||||
was now possible. Provided you maintain the same temperature, same flour and
|
||||
yeast strains fermentation became precisely reproducible. This ultimately lead
|
||||
yeast strains fermentation became precisely reproducible. This ultimately led
|
||||
to the development of giga bakeries and flour blenders. The bakeries demanded
|
||||
the same flour from year to year to bake bread in their machines. For this
|
||||
reason, none of the supermarket flour you buy today is single origin. It is
|
||||
|
||||
@@ -35,21 +35,21 @@ chapters = baking basics bread-types cover flour-types history intro mix-ins\
|
||||
non-wheat-sourdough sourdough-starter storing-bread troubleshooting\
|
||||
wheat-sourdough glossary
|
||||
|
||||
# Actual book text and LaTeX code {{{
|
||||
src_tex := $(foreach directory, $(chapters), $(wildcard $(directory)/*.tex))
|
||||
src_tex += book.tex book_sans_serif.tex references.bib figures/vars.tex
|
||||
src_tex += supporters.csv sourdough.sty colors.tex abbreviations.tex
|
||||
src_tex += $(src_recipes)
|
||||
# }}}
|
||||
|
||||
# Tables and TikZ flowcharts/plots/drawings... {{{
|
||||
src_tables := $(wildcard tables/table-*.tex)
|
||||
src_figures := $(wildcard figures/fig-*.tex) figures/flowcharts_tikz.tex
|
||||
src_figures := $(wildcard figures/fig-*.tex) figures/flowcharts_tikz.tex figures/vars.tex
|
||||
src_figures += $(wildcard plots/fig-*.tex) abbreviations.tex colors.tex
|
||||
src_recipes := $(wildcard recipes/*.tex)
|
||||
src_plots := $(wildcard plots/*.table)
|
||||
# }}}
|
||||
|
||||
# Actual book text and LaTeX code {{{
|
||||
src_tex := $(foreach directory, $(chapters), $(wildcard $(directory)/*.tex))
|
||||
src_tex += book.tex book_sans_serif.tex colors.tex abbreviations.tex
|
||||
src_tex += $(src_recipes) supporters.csv references.bib
|
||||
src_tex += sourdough.sty
|
||||
# }}}
|
||||
|
||||
tgt_figures := $(patsubst %.tex, %.png,$(src_figures))
|
||||
|
||||
# Photos {{{
|
||||
@@ -76,7 +76,7 @@ low_res_images := $(filter-out %.png, $(low_res_images))
|
||||
src_all := $(src_tex) $(src_figures) $(src_tables) $(images) $(src_plots)
|
||||
|
||||
# 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 nameref.4ht
|
||||
|
||||
website_src := $(src_all) website.cfg style.css
|
||||
website_dir := static_website_html
|
||||
@@ -97,7 +97,7 @@ ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
|
||||
figures/export_figures.sh $@.pdf
|
||||
|
||||
%.xbb: %.jpg
|
||||
ebb -x $<
|
||||
extractbb -x $<
|
||||
# }}}
|
||||
|
||||
# Pdf {{{
|
||||
@@ -202,27 +202,6 @@ bw_ebook: epub/bw_book.epub
|
||||
low_res_ebook: epub/low_res_book.epub
|
||||
# }}}
|
||||
|
||||
# Old target names are disabled with helpful help message {{{
|
||||
build_pdf:
|
||||
@echo "build_pdf target is not supported anymore, please use make pdf"
|
||||
@exit
|
||||
build_serif_pdf:
|
||||
@echo "build_serif_pdf target is not supported anymore, please use make serif"
|
||||
@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 {{{
|
||||
.PHONY: bake release_serif release_sans_serif
|
||||
bake: release_serif release_sans_serif website
|
||||
@@ -326,7 +305,8 @@ help:
|
||||
@echo "figures: build TikZ figures only"
|
||||
@echo ""
|
||||
@echo "Quick builds:"
|
||||
@echo " quick: compiles serif_pdf but runs lulatex only once"
|
||||
@echo " quick: compiles serif but runs lulatex only once"
|
||||
@echo " will halt on first error"
|
||||
@echo " quick_ebook: compiles ebook but runs lulatex only once"
|
||||
@echo ""
|
||||
@echo "Checks:"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
In this chapter you will learn how to make your
|
||||
own sourdough starter, but before doing so you will
|
||||
quickly learn about baker's math. Don't worry,
|
||||
it's a very simple way how to write a recipe which
|
||||
it's a very simple way to write a recipe which
|
||||
is cleaner and more scalable. Once you get the hang
|
||||
of it you will want to write every recipe this way.
|
||||
You will learn to understand the signs indicating
|
||||
@@ -125,7 +125,7 @@ values are just shown as a reference.
|
||||
Don't use chlorinated water when setting up your starter.
|
||||
Ideally, you should use bottled water. In certain regions
|
||||
like Germany, tap water is perfectly fine. Chlorine is added
|
||||
to water as a disinfectant to kill microorganisms, you will
|
||||
to water as a disinfectant to kill microorganisms; you will
|
||||
not be able to grow a starter with chlorinated water.
|
||||
|
||||
In this process, the hydration of your starter is \qty{100}{\percent}.
|
||||
|
||||
@@ -19,27 +19,4 @@
|
||||
font-family: 'Open Sans';
|
||||
}
|
||||
</style>}}
|
||||
|
||||
% Deal with chemical equations in a single svg
|
||||
\ExplSyntaxOn
|
||||
\def\standaloneenv#1{}
|
||||
\pend:def\schemestart{\Picture+{}}
|
||||
\append:def\CF_schemestop{\EndPicture}
|
||||
\ExplSyntaxOff
|
||||
\makeatletter
|
||||
\def\texfourht@tikz@begin{
|
||||
\protect\csname nested:math\endcsname% support display math
|
||||
\Picture+[\csname a:Picture-alt\endcsname]{}%
|
||||
}
|
||||
\makeatother
|
||||
|
||||
% Warnig from Michal: Note that once you get the updated TeX Live with a new
|
||||
% `chemfig.4ht` file, you can remove this from the config file:
|
||||
%
|
||||
%```latex \pend:def\schemestart{\Picture+{}}
|
||||
%\append:def\CF_schemestop{\EndPicture} ```
|
||||
%
|
||||
%You could get an error otherwise, as there would be nested `\Picture+{}` and
|
||||
%`\EndPicture` commands.
|
||||
|
||||
\EndPreamble
|
||||
|
||||
@@ -300,7 +300,7 @@ Similar to baking too hot, when baking without enough steam, your dough's crust
|
||||
forms too quickly. It's hard to spot the difference between the two mistakes.
|
||||
I~typically first ask about the temperature and then about the steaming technique
|
||||
to determine what might be wrong with the baking process. Too little steam can
|
||||
typically be spotted by having a thick crust around all around your dough paired
|
||||
typically be spotted by having a thick crust all around your dough paired
|
||||
with large alveoli towards the edges.
|
||||
|
||||
The steam essentially prevents the Maillard reaction from happening too quickly
|
||||
|
||||
@@ -47,17 +47,5 @@
|
||||
}
|
||||
\ConfigureToc{loc}{\HCode{<span class="lofToc">}}{\ }{}{\HCode{</span><br />}}
|
||||
|
||||
\ExplSyntaxOn
|
||||
\def\standaloneenv#1{}
|
||||
\pend:def\schemestart{\Picture+{}}
|
||||
\append:def\CF_schemestop{\EndPicture}
|
||||
\ExplSyntaxOff
|
||||
\makeatletter
|
||||
\def\texfourht@tikz@begin{
|
||||
\protect\csname nested:math\endcsname% support display math
|
||||
\Picture+[\csname a:Picture-alt\endcsname]{}%
|
||||
}
|
||||
\makeatother
|
||||
|
||||
\begin{document}
|
||||
\EndPreamble
|
||||
|
||||
15
makefile
15
makefile
@@ -1,11 +1,11 @@
|
||||
.DEFAULT_GOAL := build_pdf
|
||||
.DEFAULT_GOAL := pdf
|
||||
|
||||
DOCKER_IMAGE := ghcr.io/hendricius/the-sourdough-framework
|
||||
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: build_docker_image push_docker_image
|
||||
.PHONY: print_os_version start_shell printvars show_tools_version mrproper
|
||||
.PHONY: build_serif_pdf build_ebook
|
||||
.PHONY: ebook serif website bake
|
||||
|
||||
# Dockers targets
|
||||
build_docker_image:
|
||||
@@ -15,8 +15,8 @@ push_docker_image: build_docker_image
|
||||
docker push $(DOCKER_IMAGE):latest
|
||||
|
||||
# Books/website
|
||||
serif_pdf:
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make serif_pdf"
|
||||
serif:
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make serif"
|
||||
|
||||
ebook:
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make ebook"
|
||||
@@ -45,8 +45,3 @@ print_os_version:
|
||||
|
||||
start_shell:
|
||||
docker run -it -v $(PWD):/opt/repo $(DOCKER_IMAGE) /bin/bash
|
||||
|
||||
# Old names for backward compatibility
|
||||
build_serif_pdf: serif_pdf
|
||||
build_ebook: ebook
|
||||
build_pdf: pdf
|
||||
|
||||
@@ -1 +1 @@
|
||||
3.3.7
|
||||
3.3.8
|
||||
|
||||
@@ -23,7 +23,7 @@ DEPENDENCIES
|
||||
pry
|
||||
|
||||
RUBY VERSION
|
||||
ruby 3.3.7p123
|
||||
ruby 3.3.8
|
||||
|
||||
BUNDLED WITH
|
||||
2.4.12
|
||||
|
||||
Reference in New Issue
Block a user