-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Support for using Heist templates in Happstack -- -- Happstack is a web application framework. Heist is an XML templating -- solution. This package makes it easy to use Heist templates with -- Happstack. @package happstack-heist @version 7.1.2 -- | This module provides support for serving compiled Heist templates -- using Happstack. -- -- The primary function provided by this module is: -- -- heistServe :: (Happstack m) => HeistState m -> m Response -- -- It also provides the initHeistCompiled helper function for -- creating a HeistState. Though you are free to use other -- functions from the Heist library instead. -- -- Here is a simple example: -- --
-- module Main where -- -- import Control.Applicative ((<$>)) -- import Control.Monad (msum) -- import qualified Data.Text as T -- import Happstack.Server (dir, nullConf, nullDir, simpleHTTP, seeOther, toResponse) -- import Happstack.Server.Heist (heistServe, initHeistCompiled) -- import Heist (getParamNode) -- import Heist.Compiled (Splice, yieldRuntimeText) -- import qualified Text.XmlHtml as X -- -- -- | factorial splice -- factSplice :: (Monad m) => Splice m -- factSplice = -- do intStr <- T.unpack . X.nodeText <$> getParamNode -- let res = yieldRuntimeText $ -- do case reads intStr of -- [(n,[])] -> -- return (T.pack $ show $ product [1..(n :: Integer)]) -- _ -> -- return (T.pack $ "Unable to parse " ++ intStr ++ " as an Integer.") -- return $ res -- -- main :: IO () -- main = -- do heistState <- do -- r <- initHeistCompiled [(T.pack "fact", factSplice)] [] "." -- case r of -- (Left e) -> error $ unlines e -- (Right heistState) -> return $ heistState -- simpleHTTP nullConf $ msum -- [ dir "heist" $ heistServe heistState -- , nullDir >> seeOther "/heist/factorial" (toResponse "/heist/factorial") -- ] ---- -- It uses the following template file (factorial.tpl): -- --
-- <html> -- <head> -- <title>Factorial Page</title> -- </head> -- <body> -- <h1>Factorial Page</h1> -- <p>The factorial of 6 is <fact>6</fact></p> -- </body> -- </html> ---- -- For more information on using Compiled Heist Templates see: -- -- http://snapframework.com/docs/tutorials/compiled-splices -- -- And also see the Heist Section of the Happstack Crash Course: -- -- http://happstack.com/docs/crashcourse/ module Happstack.Server.Heist initHeistCompiled :: (MonadIO m, Monad n) => [(Text, Splice n)] -> [(Text, AttrSplice n)] -> FilePath -> m (Either [String] (HeistState n)) heistServe :: Happstack m => HeistState m -> m Response