From 0f2075380812559e8ea1cdbd5fa591d89aec0aec Mon Sep 17 00:00:00 2001 From: rhiannon morris Date: Sun, 15 Jan 2023 21:39:03 +0100 Subject: [PATCH] generate jxl from png,jpg,gif --- Makefile | 13 +++++++++++++ make-pages/Depend.hs | 17 +++++++++++------ make-pages/Info.hs | 4 ++-- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 59dd355..5589f90 100644 --- a/Makefile +++ b/Makefile @@ -66,6 +66,11 @@ $(TMPDIR)/%_big.jpg: $(DATADIR)/%.jpg $(call resize,$(BIG),$(BIG),>) +%.jxl: %.png ; $(call cjxl,-e 9) +%.jxl: %.jpg ; $(call cjxl,-e 9) +%.jxl: %.gif ; $(call cjxl) + + $(MAKEPAGES): make-pages/*.hs make-pages/make-pages.cabal echo "[make-pages]" mkdir -p $(dir $@) @@ -133,6 +138,14 @@ mkdir -p "$(dir $@)" convert -resize "$(1)x$(2)$(3)" $(4) "$^" "$@" endef +# args: +# 1. extra flags +define cjxl +echo "[cjxl] "$@ +mkdir -p "$(dir $@)" +cjxl -d 1 "$^" "$@" $(1) 2>/dev/null +endef + # no args define depend-gallery echo "[deps] "$@ diff --git a/make-pages/Depend.hs b/make-pages/Depend.hs index 534f91d..46b7648 100644 --- a/make-pages/Depend.hs +++ b/make-pages/Depend.hs @@ -29,17 +29,22 @@ dependSingle' yamlDir indexFile info prefix build nsfw = where images = #all if nsfw then #images info else #sfwImages info - paths = map #path images + paths = map #path images + thumb = thumbFile $ thumbnail info + jxls fs = [base <.> "jxl" | f <- fs, + let (base, ext) = splitExtension f, + ext `elem` imgTypes] + imgTypes = words ".png .jpg .gif" + + imgFiles0 = thumb : map pageFile paths ++ map bigFile paths + imgFiles = imgFiles0 ++ jxls imgFiles0 + dls = mapMaybe #download images extras = #extras info dir = build prefix yamlDir page = dir "index.html" - deps = unwords $ map (dir ) $ - thumbFile (thumbnail info) : - map pageFile paths ++ - map bigFile paths ++ - dls ++ extras + deps = unwords $ map (dir ) $ imgFiles ++ dls ++ extras dependGallery :: GalleryInfo -> FilePath -- ^ index file diff --git a/make-pages/Info.hs b/make-pages/Info.hs index 6e92cbb..3ed0280 100644 --- a/make-pages/Info.hs +++ b/make-pages/Info.hs @@ -33,7 +33,7 @@ import Data.Text (Text) import qualified Data.Text as Text import Data.YAML (FromYAML (..), (.:), (.:?), (.!=)) import qualified Data.YAML as YAML -import System.FilePath ((), takeBaseName, takeExtension, splitExtension) +import System.FilePath ((), takeBaseName, takeExtension, splitExtensions) import Data.Bifunctor (second) @@ -244,7 +244,7 @@ bigFile f addSuffix :: String -> FilePath -> FilePath addSuffix suf path = - let (pre, ext) = splitExtension path in + let (pre, ext) = splitExtensions path in pre ++ suf ++ ext