scotty-blaze-0.1.3: src/Web/Scotty/Blaze.hs
{-# LANGUAGE OverloadedStrings #-}
module Web.Scotty.Blaze (
blaze
, builder
) where
import Network.Wai
import Web.Scotty (ActionM, header)
import qualified Control.Monad.State as MS
import Text.Blaze.Html (Html)
import Blaze.ByteString.Builder (Builder)
import Text.Blaze.Html.Renderer.Utf8 (renderHtmlBuilder)
-- | Render some Blaze Html
--
blaze :: Html -> ActionM ()
blaze h = do
header "Content-Type" "text/html"
builder $ renderHtmlBuilder h
-- | Render a generic builder
--
builder :: Builder -> ActionM ()
builder = MS.modify . setContent
setContent :: Builder -> Response -> Response
setContent b (ResponseBuilder s h _) = ResponseBuilder s h b
setContent b (ResponseFile s h _ _) = ResponseBuilder s h b
setContent b (ResponseSource s h _) = ResponseBuilder s h b