module HTMLEntities.Text where

import HTMLEntities.Prelude
import qualified Data.Text as Text


-- |
-- HTML-encodes the given char.
char :: Char -> Text
char :: Char -> Text
char =
  \case
    Char
'<' -> Text
"&lt;"
    Char
'>' -> Text
"&gt;"
    Char
'&' -> Text
"&amp;"
    Char
'"' -> Text
"&quot;"
    Char
'\'' -> Text
"&#39;"
    Char
x -> Char -> Text
Text.singleton Char
x

-- |
-- HTML-encodes the given text.
-- 
-- >>> Data.Text.IO.putStrLn $ text "<a href=\"\">"
-- &lt;a href=&quot;&quot;&gt;
-- 
text :: Text -> Text
text :: Text -> Text
text =
  (Char -> Text) -> Text -> Text
Text.concatMap Char -> Text
char