packages feed

type-of-html-1.4.0.1: bench/Blaze.hs

{-# 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]