packages feed

happstack-hamlet 0.2.1 → 6.0.0

raw patch · 2 files changed

+9/−37 lines, 2 filesdep ~hamletdep ~happstack-server

Dependency ranges changed: hamlet, happstack-server

Files

Happstack/Server/Hamlet.hs view
@@ -1,3 +1,4 @@+-- |This module provides support for using Hamlet with Happstack. Hamlet provides type-safe HTML generation. More information can be found at <http://patch-tag.com/r/mae/happstack/snapshot/current/content/pretty/happstack-hamlet/demo.hs> and <http://hackage.haskell.org/package/hamlet>. {-# LANGUAGE QuasiQuotes, ScopedTypeVariables, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, UndecidableInstances #-} module Happstack.Server.Hamlet      ( hamletToResponse @@ -10,48 +11,19 @@ import qualified Data.Text.Lazy.Encoding    as T      import Text.Hamlet-import Text.Hamlet.Monad (hamletToText, liftHamlet) import Happstack.Server   -- |turn a 'Hamlet' template into a Happstack 'Response'-hamletToResponse :: (Monad m) => -                    (url -> String) -> -- ^ function to 'url' values in the template into their 'String' representation-                    Hamlet url m () -> -- ^ a 'Hamlet' template-                    m Response+hamletToResponse :: (url -> [(String, String)] -> String) -- ^ function to 'url' values in the template into their 'String' representation+                 -> Hamlet url  -- ^ a 'Hamlet' template+                 -> Response hamletToResponse showFn hamlet = -    do msg <- hamletToText showFn hamlet-       return $ toResponse_ (B.pack "text/html; charset=UTF-8") (T.encodeUtf8 msg)+    let msg = renderHamlet showFn hamlet+     in toResponse_ (B.pack "text/html; charset=UTF-8") msg  -- available as toResponseBS in happstack-server >= 0.5 toResponse_ :: B.ByteString -> L.ByteString -> Response toResponse_ contentType message =     let res = Response 200 M.empty nullRsFlags message Nothing     in setHeaderBS (B.pack "Content-Type") contentType res--mapHamlet :: forall a b url m. (Monad m) => (m a -> m b) -> Hamlet url m a -> Hamlet url m b-mapHamlet f m = -    Hamlet $ \showFn seed iteratee -> f' (runHamlet m showFn seed iteratee)-        where-          f' :: m (Either seed (a, seed)) -> m (Either seed (b, seed))-          f' m =-              do e <- m-                 case e of-                   (Left s) -> return (Left s)-                   (Right (a, seed)) -> -                       do b <- f (return a)-                          return (Right (b, seed))--instance (ServerMonad m) => ServerMonad (Hamlet url m) where-    askRq   = liftHamlet askRq-    localRq f = mapHamlet (localRq f)--instance (FilterMonad r m) => FilterMonad r (Hamlet url m) where-    setFilter     = liftHamlet . setFilter-    composeFilter = liftHamlet . composeFilter-    getFilter     = mapHamlet getFilter--instance (WebMonad a m) => WebMonad a (Hamlet url m) where-    finishWith = liftHamlet . finishWith--
happstack-hamlet.cabal view
@@ -1,5 +1,5 @@ Name:                happstack-hamlet-Version:             0.2.1+Version:             6.0.0 Synopsis:            Support for Hamlet HTML templates in Happstack  Description:         Happstack is a web application development framework. @@ -27,8 +27,8 @@   Build-depends:       base >= 3 && <5,                        bytestring,                        containers,-                       happstack-server >= 0.4.3 && <0.6 ,-                       hamlet >= 0.2 && <3,+                       happstack-server >= 6.0 && < 6.1 ,+                       hamlet >= 0.5 && <0.8,                        text      -- Modules not exported by this package.