{-# LANGUAGE OverloadedStrings #-} module Blaze where import Control.Monad import Text.Blaze.Html5 ((!)) import qualified Text.Blaze.Html5 as B import qualified Text.Blaze.Html5.Attributes as BA blazeMinimal :: B.Html -> B.Html blazeMinimal = B.div blazeHelloWorld :: B.Html -> B.Html blazeHelloWorld x = B.html $ do B.head $ do B.title x B.body $ do B.p "Hello World!" blazePage :: B.Html -> B.Html blazePage x = B.html $ do B.body $ do B.h1 $ do B.img B.strong (B.toHtml (0 :: Int)) B.div $ do B.div (B.toHtml (1 :: Int)) B.div $ do B.form $ do B.fieldset $ do B.div $ do B.div $ do B.label "a" B.select $ do B.option "b" B.option "c" B.div "d" B.i x B.button $ B.i "e" blazeAttrShort :: B.AttributeValue -> B.Html blazeAttrShort x = B.i ! BA.accesskey "a" $ B.i ! BA.class_ "b" $ B.i ! BA.contenteditable "c" $ B.i ! BA.contextmenu "d" $ B.i ! BA.dir "e" $ B.i ! BA.draggable "f" $ B.i ! BA.hidden mempty $ B.i ! BA.id "h" $ B.i ! BA.itemprop "i" $ B.i ! BA.lang "j" $ B.i ! BA.spellcheck "k" $ B.i ! BA.style "l" $ B.i ! BA.title x $ "m" blazeAttrLong :: B.AttributeValue -> B.Html blazeAttrLong x = B.i ! BA.accesskey "a" ! BA.class_ "b" ! BA.contenteditable "c" ! BA.contextmenu "d" ! BA.dir "e" ! BA.draggable "f" ! BA.hidden mempty ! BA.id "h" ! BA.itemprop "i" ! BA.lang "j" ! BA.spellcheck "k" ! BA.style "l" ! BA.title x $ "m" blazePageA :: B.Html -> B.Html blazePageA x = B.html $ do B.body $ do B.h1 ! BA.id "a" $ do B.img B.strong ! BA.class_ "b" $ (B.toHtml (0 :: Int)) B.div $ do B.div ! BA.id "c" $ (B.toHtml (1 :: Int)) B.div $ do B.form ! BA.class_ "d" $ do B.fieldset $ do B.div ! BA.id "e" $ do B.div $ do B.label ! BA.class_ "f" $ "a" B.select $ do B.option ! BA.id "g" $ "b" B.option "c" B.div ! BA.class_ "h" $ "d" B.i x B.button ! BA.id "i" $ B.i "e" blazeTable :: (Int, Int) -> B.Html blazeTable (n, m) = B.table . replicateM_ n . B.tr $ mapM_ (B.td . B.toHtml) [1..m]