pages/build.sh
2025-07-01 19:25:02 -04:00

84 lines
2.4 KiB
Bash
Executable file

#! /usr/bin/env nix-shell
#! nix-shell --pure -i bash
#! nix-shell --pure -p nodejs_24 bash harfbuzz soupault woff2 jotdown python3 recode perl538Packages.LaTeXML minify
if ! [[ -d pgvv/ ]]; then
python3 -m venv pgvv
source ./pgvv/bin/activate
python3 -m pip install --upgrade pip
pip install --upgrade pygments
deactivate
fi
function soup_config {
rm soupault.toml
cp ../soupault.toml soupault.toml
cat soupault.frag*.toml >>soupault.toml
}
source ./pgvv/bin/activate
if ! [[ -f lexers.out ]] || [[ "$(head -1 lexers.out)" != "$(pygmentize -V)" ]]; then
pygmentize -L lexer >lexers.out
echo "Created pygments lexer cache at lexers.out"
fi
find acl.cool/site/ ytheleus.org/site/ -type f \( -name '*.dj' -o -name '*.html' \) -exec cat {} + >all_chars.txt
cat common_chars.txt >>all_chars.txt
for font in fonts/LiterataTT/LiterataTT-Subhead{Regular,Italic,Semibold,SemiboldItalic,Bold,BoldItalic}.woff2 \
fonts/JuliaMono/*{-Light,-Regular,-SemiBold}{,Italic}.woff2; do
woff2_decompress "$font"
ttf_font="${font%.woff2}.ttf"
subset_ttf="${ttf_font%.ttf}-Subset.ttf"
hb-subset "$ttf_font" \
--output-file="$subset_ttf" \
--text-file=all_chars.txt \
--layout-features='*' \
--passthrough-tables
woff2_compress "$subset_ttf"
rm "$subset_ttf" "$ttf_font"
done
for font in \
fonts/Alegreya/static/Alegreya-{Regular,Italic,Bold,BoldItalic}.ttf \
fonts/Alegreya_Sans/AlegreyaSans-{Regular,Italic,Bold,BoldItalic}.ttf; do
subset_ttf="${font%.ttf}-Subset.ttf"
hb-subset "$font" \
--output-file="$subset_ttf" \
--text-file=all_chars.txt \
--layout-features='*' \
--passthrough-tables \
--unicodes+="0x0435" # this is the cyrillic e. For some reason, alegreya's ff calt breaks without it
woff2_compress "$subset_ttf"
rm "$subset_ttf"
done
rm css/code.css
pygmentize -f html -S algol_nu | grep -v 'line-height' >css/code.css
for site in acl.cool ytheleus.org; do
pushd "$site"
soup_config
rm -rf serve/
soupault
pushd serve/
find -type f -name '*.html' -o -name '*.css' -o -name '*.svg' | xargs -0 -d\\n -I{} minify -o {} {}
popd
NEXT_DIR="serve_$(date +%s)"
CUR_DIR=$(find . -maxdepth 1 -type d -regex './serve_[0-9]+')
echo "$PREV_DIR"
cp -a serve "$NEXT_DIR"
ln -sfn "$NEXT_DIR" serve_
for d in $CUR_DIR; do
rm -r $d
done
popd
done
deactivate