diff --git a/public/assets/css/app.css.zst b/public/assets/css/app.css.zst new file mode 100644 index 00000000..f27d4f69 Binary files /dev/null and b/public/assets/css/app.css.zst differ diff --git a/public/assets/css/code.css.br b/public/assets/css/code.css.br deleted file mode 100644 index c0809f08..00000000 Binary files a/public/assets/css/code.css.br and /dev/null differ diff --git a/public/assets/css/colours.css.zst b/public/assets/css/colours.css.zst new file mode 100644 index 00000000..fd30b78c Binary files /dev/null and b/public/assets/css/colours.css.zst differ diff --git a/public/assets/css/content.css.zst b/public/assets/css/content.css.zst new file mode 100644 index 00000000..01cfa187 Binary files /dev/null and b/public/assets/css/content.css.zst differ diff --git a/public/assets/css/fonts.css.zst b/public/assets/css/fonts.css.zst new file mode 100644 index 00000000..c8ec55f1 Binary files /dev/null and b/public/assets/css/fonts.css.zst differ diff --git a/public/assets/css/h-card.css.zst b/public/assets/css/h-card.css.zst new file mode 100644 index 00000000..b54e6a24 Binary files /dev/null and b/public/assets/css/h-card.css.zst differ diff --git a/public/assets/css/indieauth.css.zst b/public/assets/css/indieauth.css.zst new file mode 100644 index 00000000..5e9e979f Binary files /dev/null and b/public/assets/css/indieauth.css.zst differ diff --git a/public/assets/css/layout.css.zst b/public/assets/css/layout.css.zst new file mode 100644 index 00000000..aa9bded4 Binary files /dev/null and b/public/assets/css/layout.css.zst differ diff --git a/public/assets/css/notes.css.zst b/public/assets/css/notes.css.zst new file mode 100644 index 00000000..f9cdbf82 Binary files /dev/null and b/public/assets/css/notes.css.zst differ diff --git a/public/assets/css/variables.css.zst b/public/assets/css/variables.css.zst new file mode 100644 index 00000000..e1ccda8b Binary files /dev/null and b/public/assets/css/variables.css.zst differ diff --git a/public/assets/frontend/is-land.js.zst b/public/assets/frontend/is-land.js.zst new file mode 100644 index 00000000..fda6b38c Binary files /dev/null and b/public/assets/frontend/is-land.js.zst differ diff --git a/public/assets/frontend/snow-fall.js.zst b/public/assets/frontend/snow-fall.js.zst new file mode 100644 index 00000000..96c25ccc Binary files /dev/null and b/public/assets/frontend/snow-fall.js.zst differ diff --git a/public/assets/highlight/zenburn.css.zst b/public/assets/highlight/zenburn.css.zst new file mode 100644 index 00000000..f7ddaa93 Binary files /dev/null and b/public/assets/highlight/zenburn.css.zst differ diff --git a/public/assets/js/app.js.zst b/public/assets/js/app.js.zst new file mode 100644 index 00000000..5db3d9e5 Binary files /dev/null and b/public/assets/js/app.js.zst differ diff --git a/public/assets/js/auth.js.zst b/public/assets/js/auth.js.zst new file mode 100644 index 00000000..9c96525d Binary files /dev/null and b/public/assets/js/auth.js.zst differ diff --git a/scripts/compress.sh b/scripts/compress.sh index 727f1b83..eb9e34a2 100755 --- a/scripts/compress.sh +++ b/scripts/compress.sh @@ -1,13 +1,41 @@ #!/usr/bin/env zsh -if ! type fd &> /dev/null; then +if ! (( $+commands[fd] )) &> /dev/null; then echo "fd not installed" exit 1 fi -if ! type brotli &> /dev/null; then +if ! (( $+commands[brotli] )) &> /dev/null; then echo "brotli not installed" exit 1 fi -fd -e css -e js --search-path ./public/assets --type f -x brotli --force --best --output={}.br {} +if ! (( $+commands[zstd] )) &> /dev/null; then + echo "zstd not installed" + exit 1 +fi + +# Make .br files +fd --extension css --extension js --search-path ./public/assets --type f --exec brotli --force --best --output={}.br {} +# Make .zst files +fd --extension css --extension js --search-path ./public/assets --type f --exec zstd --quiet --force --ultra -22 --exclude-compressed {} -o {}.zst + +# Remove files that actually got bigger! +fd --extension br --extension zst --search-path ./public/assets --type f --exec sh -c ' +for file; do + src="${file%.br}" + src="${src%.zst}" + if [ -f "$src" ]; then + # Get file sizes using stat with cross-platform compatibility + if [ "$(uname)" = "Darwin" ]; then + file_size=$(stat -f%z "$file") + src_size=$(stat -f%z "$src") + else + file_size=$(stat -c%s "$file") + src_size=$(stat -c%s "$src") + fi + # Compare sizes and conditionally echo rm command + [ "$file_size" -ge "$src_size" ] && rm "$file" + fi +done +' _ {}