-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Support for using Heist templates in Happstack -- @package happstack-heist @version 7.2.4 -- | 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, noSplices)
--   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) noSplices "."
--          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) => Splices (Splice n) -> Splices (AttrSplice n) -> FilePath -> m (Either [String] (HeistState n)) heistServe :: Happstack m => HeistState m -> m Response