module Text.Blaze.Builder.Html
(
writeHtmlEscapedChar
, fromHtmlEscapedChar
, fromHtmlEscapedString
, fromHtmlEscapedText
) where
import Data.ByteString.Char8 ()
import Data.Monoid (mempty, mappend)
import Data.Text (Text)
import qualified Data.Text as T
import Text.Blaze.Builder.Core
import Text.Blaze.Builder.Utf8
writeHtmlEscapedChar :: Char
-> Write
writeHtmlEscapedChar '<' = writeByteString "<"
writeHtmlEscapedChar '>' = writeByteString ">"
writeHtmlEscapedChar '&' = writeByteString "&"
writeHtmlEscapedChar '"' = writeByteString """
writeHtmlEscapedChar '\'' = writeByteString "'"
writeHtmlEscapedChar c = writeChar c
fromHtmlEscapedChar :: Char
-> Builder
fromHtmlEscapedChar = writeSingleton writeHtmlEscapedChar
fromHtmlEscapedString :: String
-> Builder
fromHtmlEscapedString = writeList writeHtmlEscapedChar
fromHtmlEscapedText :: Text
-> Builder
fromHtmlEscapedText = writeSingleton (T.foldl appendChar mempty)
where
appendChar w c = w `mappend` writeHtmlEscapedChar c