{-# LANGUAGE DeriveDataTypeable, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, OverloadedStrings, RecordWildCards, TemplateHaskell, TypeFamilies, TypeSynonymInstances, OverloadedStrings #-} {-# OPTIONS_GHC -F -pgmFhsx2hs #-} module Tiny.Template ( appTemplateHSP ) where import qualified Data.Text.Lazy as Lazy (Text) import Happstack.Foundation (Attr((:=)), defaultTemplate, EmbedAsAttr(asAttr), EmbedAsChild(..), fromStringLit, Response, ToMessage(toResponse), XMLGen(genEElement, genElement)) import Tiny.Route (App, App', Route(CSS, NewPaste, ViewRecent)) ------------------------------------------------------------------------------ -- appTemplate ------------------------------------------------------------------------------ -- | This renders the common parts of the application web pages, -- embedding the headers and body arguments in the page. appTemplateHSP :: (EmbedAsChild App' headers, EmbedAsChild App' body) => Lazy.Text -- ^ page title -> headers -- ^ extra headers to add to \
tag -> body -- ^ contents of \ tag -> App Response appTemplateHSP ttl moreHdrs bdy = do html <- defaultTemplate ttl <%><% moreHdrs %>%> $ <%>