Better image optimizing

pull/1/head
mat ess 2022-08-21 17:46:49 -04:00
parent 49c0d757e7
commit 93463b54e0
3 changed files with 18 additions and 11 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

View File

@ -18,30 +18,37 @@
flake-parts.lib.mkFlake { inherit self; } { flake-parts.lib.mkFlake { inherit self; } {
imports = [ ]; imports = [ ];
systems = inputs.nixpkgs.lib.systems.flakeExposed; systems = inputs.nixpkgs.lib.systems.flakeExposed;
perSystem = { config, self', inputs', pkgs, system, ... }: { perSystem = { config, self', inputs', pkgs, system, ... }:
let
optimize-images = pkgs.writeShellScriptBin "optimize-images" ''
shopt -s globstar nullglob
${pkgs.scour}/bin/scour -i static/image/_favicon.svg -o static/image/favicon.svg
for image in content/**/_*.png static/image/**/_*.png; do
path=$(dirname $image)
file=$(basename $image)
${pkgs.pngquant}/bin/pngquant --quality 90-99 -f -o "$path/''${file:1}" $image
done
'';
in
{
packages.default = pkgs.stdenv.mkDerivation { packages.default = pkgs.stdenv.mkDerivation {
pname = "personal-site"; pname = "personal-site";
version = "2022-08-13"; version = "2022-08-13";
src = ./.; src = ./.;
nativeBuildInputs = with pkgs; [ pngquant scour zola ]; nativeBuildInputs = with pkgs; [ optimize-images zola ];
configurePhase = '' configurePhase = ''
mkdir -p "themes/${themeName}" mkdir -p "themes/${themeName}"
cp -r ${theme}/* "themes/${themeName}" cp -r ${theme}/* "themes/${themeName}"
scour -i static/image/_favicon.svg -o static/image/favicon.svg optimize-images
for image in content/**/_*.png static/image/**.png; do
path=$(dirname $image)
file=$(basename $image)
pngquant --quality 90-99 -f -o "$path/''${file:1}"
done
''; '';
buildPhase = "zola build"; buildPhase = "zola build";
installPhase = "cp -r public $out"; installPhase = "cp -r public $out";
}; };
devShells.default = pkgs.mkShell { devShells.default = with pkgs; mkShell {
packages = with pkgs; [ zola ]; packages = [ optimize-images flyctl zola ];
shellHook = '' shellHook = ''
mkdir -p themes mkdir -p themes
ln -sn "${theme}" "themes/${themeName}" ln -snf "${theme}" "themes/${themeName}"
''; '';
}; };
}; };