{-# LANGUAGE FlexibleContexts, OverloadedStrings, RecordWildCards #-} {-# OPTIONS_GHC -F -pgmFhsx2hs #-} module Theme where import Clckwrks import Clckwrks.Types (NamedLink(..)) import Clckwrks.NavBar.API (getNavBarData) import Clckwrks.NavBar.Types (NavBar(..), NavBarItem(..)) import Clckwrks.Monad import Clckwrks.ProfileData.Acid (HasRole(..)) import qualified Data.Set as Set import Data.Text.Lazy (Text) import qualified Data.Text as T import HSP.XMLGenerator import HSP.XML (XML) import Paths_clckwrks_theme_clckwrks (getDataDir) theme :: Theme theme = Theme { themeName = "clckwrks" , _themeTemplate = standardTemplate , themeDataDir = getDataDir } pageTemplate :: ( EmbedAsChild (ClckT ClckURL (ServerPartT IO)) headers , EmbedAsChild (ClckT ClckURL (ServerPartT IO)) body ) => T.Text -> headers -> body -> XMLGenT (ClckT ClckURL (ServerPartT IO)) XML pageTemplate ttl hdr bdy = standardTemplate ttl hdr bdy genNavBar :: GenXML (Clck ClckURL) genNavBar = do menu <- lift getNavBarData navBarHTML menu navBarHTML :: NavBar -> GenXML (Clck ClckURL) navBarHTML (NavBar menuItems) = mkNavBarItem :: NavBarItem -> GenXML (Clck ClckURL) mkNavBarItem (NBLink (NamedLink ttl lnk)) =
  • <% ttl %>
  • standardTemplate :: ( EmbedAsChild (ClckT ClckURL (ServerPartT IO)) headers , EmbedAsChild (ClckT ClckURL (ServerPartT IO)) body ) => T.Text -> headers -> body -> XMLGenT (ClckT ClckURL (ServerPartT IO)) XML standardTemplate ttl hdr bdy = <% ttl %> <% hdr %> <% googleAnalytics %>
    <% genNavBar %>
    <% bdy %>