-- |
-- Module : Text.XHtmlCombinators.Safe
-- Copyright : (c) Alasdair Armstrong 2010
-- License : BSD-style
-- Maintainer : alasdair.armstrong@googlemail.com
-- Stability : experimental
-- Portability : GHC
module Text.XHtmlCombinators.Safe
( module Text.XHtmlCombinators
, text
, title', title
, base', base
, meta', meta
, style', style
, script', script
, bdo', bdo
, map', map_
, area', area
, form', form
, optgroup', optgroup
, option', option
, textarea', textarea
) where
import Data.Text (Text)
import qualified Data.Text as T
import Text.XHtmlCombinators.Escape
import qualified Text.XHtmlCombinators as X
import Text.XHtmlCombinators hiding
( text
, title', title
, base', base
, meta', meta
, style', style
, script', script
, bdo', bdo
, img', img
, map', map_
, area', area
, form', form
, optgroup', optgroup
, option', option
, textarea', textarea
)
-- TODO: Comment these explaining how escaping is applied.
text :: (Functor t, Monad t, CData c) => Text -> XHtmlT t c
text = X.text . escape
title' :: (Functor t, Monad t) => Attrs -> Text -> XHtmlT t HeadContent
title' attrs = X.title' attrs . escape
title :: (Functor t, Monad t) => Text -> XHtmlT t HeadContent
title = title' []
base' :: (Functor t, Monad t) => Text -> Attrs -> XHtmlT t HeadContent
base' = X.base' . escapeAttr
base :: (Functor t, Monad t) => Text -> XHtmlT t HeadContent
base = flip base' []
meta' :: (Functor t, Monad t) => Text -> Attrs -> XHtmlT t HeadContent
meta' = X.meta' . escapeAttr
meta :: (Functor t, Monad t) => Text -> XHtmlT t HeadContent
meta = flip meta' []
style' :: (Functor t, Monad t) => Text -> Attrs -> Text -> XHtmlT t HeadContent
style' type_ attrs css = X.style' (escapeAttr type_) attrs (escapeCSS css)
style :: (Functor t, Monad t) => Text -> Text -> XHtmlT t HeadContent
style = flip style' []
script' :: (Functor t, Monad t) => Text -> Attrs -> Text -> XHtmlT t HeadContent
script' type_ attrs js = X.script' (escapeAttr type_) attrs (escapeJavaScript js)
script :: (Functor t, Monad t) => Text -> Text -> XHtmlT t HeadContent
script = flip script' []
bdo' :: (Functor t, Monad t, Inline c) => Text -> Attrs -> XHtmlT t InlineContent -> XHtmlT t c
bdo' dir = X.bdo' (escapeAttr dir)
bdo :: (Functor t, Monad t, Inline c) => Text -> XHtmlT t InlineContent -> XHtmlT t c
bdo = flip bdo' []
map' :: (Functor t, Monad t, Flow c) => Text -> Attrs -> XHtmlT t MapContent -> XHtmlT t c
map' id = X.map' (escapeAttr id)
map_ :: (Functor t, Monad t, Flow c) => Text -> XHtmlT t MapContent -> XHtmlT t c
map_ = flip map' []
area' :: (Functor t, Monad t) => Text -> Attrs -> XHtmlT t MapContent
area' alt = X.area' (escapeAttr alt)
area :: (Functor t, Monad t) => Text -> XHtmlT t MapContent
area = flip area' []
form' :: (Functor t, Monad t, Block c) => Text -> Attrs -> XHtmlT t FlowContent -> XHtmlT t c
form' action = X.form' (escapeAttr action)
form :: (Functor t, Monad t, Block c) => Text -> XHtmlT t FlowContent -> XHtmlT t c
form = flip form' []
optgroup' :: (Functor t, Monad t) => Text -> Attrs -> XHtmlT t OptionContent -> XHtmlT t OptionContent
optgroup' label = X.optgroup' (escapeAttr label)
optgroup :: (Functor t, Monad t) => Text -> XHtmlT t OptionContent -> XHtmlT t OptionContent
optgroup = flip optgroup' []
option' :: (Functor t, Monad t) => Attrs -> Text -> XHtmlT t OptionContent
option' attrs = option' attrs . escape
option :: (Functor t, Monad t) => Text -> XHtmlT t OptionContent
option = option' []
textarea' :: (Functor t, Monad t, Inline c) => Int -> Int -> Attrs -> Text -> XHtmlT t c
textarea' rows cols attrs = X.textarea' rows cols attrs . escape
textarea :: (Functor t, Monad t, Inline c) => Int -> Int -> Text -> XHtmlT t c
textarea rows cols = textarea' rows cols []