module Text.Hamlet
(
hamlet
, xhamlet
, hamletDebug
, hamletFile
, xhamletFile
, hamletFileDebug
, hamletWithSettings
, hamletFileWithSettings
, HamletSettings (..)
, defaultHamletSettings
, xhtmlHamletSettings
, Html
, Hamlet
, HamletValue (..)
, preEscapedString
, string
, unsafeByteString
, cdata
, renderHamlet
, renderHtml
, renderHamletText
, renderHtmlText
, HamletRT
, HamletData (..)
, HamletException (..)
, parseHamletRT
, renderHamletRT
) where
import Text.Hamlet.Parse
import Text.Hamlet.Quasi
import Text.Hamlet.RT
import Text.Hamlet.Debug
import qualified Data.ByteString.Lazy as L
import Data.Monoid (mappend)
import qualified Data.Text.Lazy as T
import qualified Data.Text.Lazy.Encoding as T
import qualified Data.Text.Encoding.Error as T
import Text.Blaze.Renderer.Utf8 (renderHtml)
import qualified Text.Blaze.Renderer.Text as BT
import Text.Blaze (preEscapedText, preEscapedString, string, unsafeByteString)
renderHamlet :: (url -> [(String, String)] -> String) -> Hamlet url -> L.ByteString
renderHamlet render h = renderHtml $ h render
renderHamletText :: (url -> [(String, String)] -> String) -> Hamlet url
-> T.Text
renderHamletText render h =
T.decodeUtf8With T.lenientDecode $ renderHtml $ h render
renderHtmlText :: Html -> T.Text
renderHtmlText = BT.renderHtml
cdata :: Html -> Html
cdata h =
preEscapedText "<![CDATA["
`mappend`
h
`mappend`
preEscapedText "]]>"