module IndexPage (make) where import qualified Data.Text.Lazy as Lazy import Data.Text.Lazy.Builder (Builder, toLazyText) import BuilderQQ import Info make :: [GalleryInfo] -> Lazy.Text make ginfos = toLazyText $ make' ginfos make' :: [GalleryInfo] -> Builder make' ginfos = [b|@0 gallery list

gallery list

|] where items = map makeItem ginfos makeItem :: GalleryInfo -> Builder makeItem (GalleryInfo {title, prefix, filters}) = [b|@4 $*title |] where nsfw = if hasNsfw filters then " class=nsfw" else "" hasNsfw :: GalleryFilters -> Bool hasNsfw (GalleryFilters {nsfw}) = nsfw /= Just False