#! /usr/bin/env nix-shell #! nix-shell --pure -i bash #! nix-shell --pure -p nodejs_24 bash harfbuzz soupault woff2 jotdown python3 recode nodePackages_latest.katex 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.toml.frag* >>soupault.toml } source ./pgvv/bin/activate 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,Medium,MediumItalic,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 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 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