From 81b342a0c49af46f1e58eafe60f77e24efd4ee81 Mon Sep 17 00:00:00 2001 From: Rhiannon Morris Date: Mon, 2 May 2022 16:29:58 +0200 Subject: [PATCH] use category names when unambiguous if each category has only a single image (or is empty) after filtering, then reuse the category names for the buttons --- make-pages/SinglePage.hs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/make-pages/SinglePage.hs b/make-pages/SinglePage.hs index c067747..46ba3f2 100644 --- a/make-pages/SinglePage.hs +++ b/make-pages/SinglePage.hs @@ -199,7 +199,7 @@ makeDesc (LongDesc fs) = [b|@0 |] -addIds :: Images' (Image, a) -> Images' (Image, a, Text) +addIds :: Traversable t => t (Image, a) -> t (Image, a, Text) addIds = snd . mapAccumL makeId Set.empty where makeId used (img, x) = (Set.insert newId used, (img, x, newId)) where newId = head $ filter (\i -> not $ i `Set.member` used) ids @@ -213,7 +213,11 @@ makeButtonBar title images = Uncat [_] -> "" Cat [(_,[_])] -> "" Uncat imgs -> makeNav "uncat" $ makeAlts imgs - Cat cats -> makeNav "cat" $ map (uncurry makeCat) cats + Cat cats + | all ((<= 1) . length . snd) cats -> + makeButtonBar title $ Uncat $ flatten cats + | otherwise -> + makeNav "cat" $ map (uncurry makeCat) cats where makeNav (cls :: Text) inner = [b|@0