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