84 lines
2.4 KiB
Bash
Executable file
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
|