{-# LANGUAGE FlexibleContexts, OverloadedStrings, RecordWildCards #-} {-# OPTIONS_GHC -F -pgmFtrhsx #-} 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 (Text) import HSP import Paths_clckwrks_theme_geo_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 ) => Text -> headers -> body -> XMLGenT (ClckT ClckURL (ServerPartT IO)) XML pageTemplate ttl hdr bdy = <% ttl %> <% hdr %> <% googleAnalytics %>
    <% genNavBar %>
    <% bdy %>