{-# LANGUAGE OverloadedStrings #-} module Blizzard.Internal.Html ( documentTag , normalTag , voidTag ) where import Data.Maybe (catMaybes) import Data.Text (Text) import Text.Blaze.Html documentTag :: (Html -> Html) -> [Html] -> Html documentTag :: (Html -> Html) -> [Html] -> Html documentTag Html -> Html element [] = Html -> Html element (Html -> Html) -> Html -> Html forall a b. (a -> b) -> a -> b $ Text -> Html forall a. ToMarkup a => a -> Html toHtml (Text "" :: Text) documentTag Html -> Html element [Html] children = Html -> Html element (Html -> Html) -> Html -> Html forall a b. (a -> b) -> a -> b $ (Html -> Html -> Html) -> [Html] -> Html forall (t :: * -> *) a. Foldable t => (a -> a -> a) -> t a -> a foldl1 Html -> Html -> Html forall (m :: * -> *) a b. Monad m => m a -> m b -> m b (>>) [Html] children normalTag :: (Html -> Html) -> [Maybe Attribute] -> [Html] -> Html normalTag :: (Html -> Html) -> [Maybe Attribute] -> [Html] -> Html normalTag Html -> Html element [Maybe Attribute] attributes [] = ((Html -> Html) -> Attribute -> Html -> Html) -> (Html -> Html) -> [Attribute] -> Html -> Html forall (t :: * -> *) b a. Foldable t => (b -> a -> b) -> b -> t a -> b foldl (!) Html -> Html element ([Maybe Attribute] -> [Attribute] forall a. [Maybe a] -> [a] catMaybes [Maybe Attribute] attributes) (Html -> Html) -> Html -> Html forall a b. (a -> b) -> a -> b $ Text -> Html forall a. ToMarkup a => a -> Html toHtml (Text "" :: Text) normalTag Html -> Html element [Maybe Attribute] attributes [Html] children = ((Html -> Html) -> Attribute -> Html -> Html) -> (Html -> Html) -> [Attribute] -> Html -> Html forall (t :: * -> *) b a. Foldable t => (b -> a -> b) -> b -> t a -> b foldl (!) Html -> Html element ([Maybe Attribute] -> [Attribute] forall a. [Maybe a] -> [a] catMaybes [Maybe Attribute] attributes) (Html -> Html) -> Html -> Html forall a b. (a -> b) -> a -> b $ (Html -> Html -> Html) -> [Html] -> Html forall (t :: * -> *) a. Foldable t => (a -> a -> a) -> t a -> a foldl1 Html -> Html -> Html forall (m :: * -> *) a b. Monad m => m a -> m b -> m b (>>) [Html] children voidTag :: Html -> [Maybe Attribute] -> Html voidTag :: Html -> [Maybe Attribute] -> Html voidTag Html element [Maybe Attribute] attributes = (Html -> Attribute -> Html) -> Html -> [Attribute] -> Html forall (t :: * -> *) b a. Foldable t => (b -> a -> b) -> b -> t a -> b foldl (!) Html element ([Maybe Attribute] -> [Attribute] forall a. [Maybe a] -> [a] catMaybes [Maybe Attribute] attributes)