{-# LANGUAGE FlexibleContexts, QuasiQuotes, OverloadedStrings #-} module Clckwrks.MailingList.Page.Template where import Clckwrks import Clckwrks.MailingList.Monad import Clckwrks.MailingList.URL import Clckwrks.Plugin import Control.Monad.Reader import Control.Monad.State import Data.Text (Text) import Language.Haskell.HSX.QQ (hsx) import HSP hiding (escape) import Happstack.Server.HSP.HTML () import Web.Plugins.Core (Plugin(..), getPluginRouteFn, getTheme) template :: ( EmbedAsChild MailingListM headers , EmbedAsChild MailingListM body ) => Text -> headers -> body -> MailingListM Response template ttl hdrs bdy = do p <- plugins <$> get hdrXml <- fmap (map unClckChild) $ unXMLGenT $ asChild [hsx| <%> <% hdrs %> |] bdyXml <- fmap (map unClckChild) $ unXMLGenT $ asChild bdy clckT2MailingListT $ themeTemplate p (ThemeStyleId 0) ttl hdrXml bdyXml