{-# OPTIONS -fglasgow-exts -fno-monomorphism-restriction #-} module View where import Text.StringTemplate import Misc getTutTemplates = unsafeVolatileDirectoryGroup "templates" 1 -- 1 second reload time -- plug a base templatate with a string which is based on a template file withBaseTemplateW :: [(String,String)] -> String -> IO (StringTemplate String) withBaseTemplateW attrs contentTmpl = do content <- return . toString =<< renderTut attrs contentTmpl withBaseContentW content -- plug a base template with a string withBaseContentW :: String -> IO (StringTemplate String) withBaseContentW content = renderTut [("contentarea",content)] "base" renderTut :: [(String,String)] -> String -> IO ( StringTemplate String ) renderTut attrs tmpl = withTutTemplate ( renderDef attrs tmpl ) withTutTemplate :: (STGroup String -> a) -> IO a withTutTemplate = withTemplateDir "templates"