{-# 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 Data.Text.Lazy (Text) import qualified Data.Text as T import HSP.XMLGenerator import HSP.XML import Paths_clckwrks_theme_bootstrap (getDataDir) theme :: Theme theme = Theme { themeName = "bootstrap-theme" , _themeTemplate = pageTemplate , themeDataDir = getDataDir } 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 %>
  • 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 = <% ttl %> <% hdr %> <% googleAnalytics %>
    <% genNavBar %>
    <% bdy %>