module Text.HTML.Moe.Utils where

import Data.ByteString.UTF8 (fromString, toString)
import Data.ByteString.Char8 (ByteString)
import Prelude hiding ((+))
import Data.Monoid

escape :: String -> String
escape = escape_html

escape_html :: String -> String
escape_html = concatMap fixChar
  where
    fixChar '&'  = "&"
    fixChar '<'  = "&lt;"
    fixChar '>'  = "&gt;"
    fixChar '\'' = "&#39;"
    fixChar '"'  = "&quot;"
    fixChar x    = [x]

pack :: String -> ByteString
pack = fromString

unpack :: ByteString -> String
unpack = toString

(+) :: (Monoid a) => a -> a -> a
(+) = mappend
infixl 5 +