module IndexPage (make) where import qualified Data.Text.Lazy as Lazy import Data.Text.Lazy.Builder (Builder, toLazyText) import BuilderQQ import Info make :: IndexInfo -> Lazy.Text make info = toLazyText $ make' info make' :: IndexInfo -> Builder make' (IndexInfo {title, galleries, footer}) = [b|@0 $*title

$*title

|] where items = map makeItem galleries 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