{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module Html
(
Html(..)
, Attribute(..)
, Buildable(..)
, Translatable(..)
, doctype
, a
, abbr
, address
, area
, article
, aside
, audio
, b
, base
, bdi
, bdo
, blockquote
, body
, br
, button
, canvas
, caption
, cite
, code
, col
, colgroup
, data_
, datalist
, dd
, del
, details
, dfn
, dialog
, div
, dl
, dt
, em
, embed
, fieldset
, figcaption
, figure
, footer
, form
, h1
, h2
, h3
, h4
, h5
, h6
, head
, header
, hgroup
, hr
, html
, i
, iframe
, img
, input
, ins
, kbd
, label
, legend
, li
, link
, main
, map
, mark
, menu
, meta
, meter
, nav
, noscript
, object
, ol
, optgroup
, option
, output
, p
, picture
, pre
, progress
, q
, rp
, rt
, ruby
, s
, samp
, script
, section
, select
, slot
, small
, source
, span
, strong
, style
, sub
, summary
, sup
, table
, tbody
, td
, template
, textarea
, tfoot
, th
, thead
, time
, title
, tr
, track
, u
, ul
, var
, video
, wbr
) where
import Data.Bool (Bool(..))
import Data.Foldable (foldr)
import Data.Function ((.))
import Data.Monoid ((<>), mempty)
import Data.String (IsString(..))
import Data.Text.Lazy (unpack)
import Data.Text.Lazy.Builder (Builder, singleton, toLazyText)
import Text.Show (Show(..))
data Html lng where
ParentNode :: Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
LeafNode :: Builder -> [Attribute] -> Html lng
RootNode :: Builder -> [Html lng] -> Html lng
TextNode :: Builder -> Html lng
IntlNode :: Translatable lng => lng -> Html lng
instance IsString (Html lng) where
fromString :: String -> Html lng
fromString = forall lng. Builder -> Html lng
TextNode forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. IsString a => String -> a
fromString
instance Show (Html lng) where
show :: Html lng -> String
show = Text -> String
unpack forall b c a. (b -> c) -> (a -> b) -> a -> c
. Builder -> Text
toLazyText forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Buildable a => a -> Builder
build
instance Buildable (Html lng) where
build :: Html lng -> Builder
build Html lng
html = case Html lng
html of
ParentNode Builder
startTag Builder
endTag [] [] -> Builder
startTag forall a. Semigroup a => a -> a -> a
<> Char -> Builder
singleton Char
'>' forall a. Semigroup a => a -> a -> a
<> Builder
endTag
ParentNode Builder
startTag Builder
endTag [Attribute]
attributes [] -> Builder
startTag forall a. Semigroup a => a -> a -> a
<> forall a. Buildable a => a -> Builder
build [Attribute]
attributes forall a. Semigroup a => a -> a -> a
<> Char -> Builder
singleton Char
'>' forall a. Semigroup a => a -> a -> a
<> Builder
endTag
ParentNode Builder
startTag Builder
endTag [] [Html lng]
children -> Builder
startTag forall a. Semigroup a => a -> a -> a
<> Char -> Builder
singleton Char
'>' forall a. Semigroup a => a -> a -> a
<> forall a. Buildable a => a -> Builder
build [Html lng]
children forall a. Semigroup a => a -> a -> a
<> Builder
endTag
ParentNode Builder
startTag Builder
endTag [Attribute]
attributes [Html lng]
children -> Builder
startTag forall a. Semigroup a => a -> a -> a
<> forall a. Buildable a => a -> Builder
build [Attribute]
attributes forall a. Semigroup a => a -> a -> a
<> Char -> Builder
singleton Char
'>' forall a. Semigroup a => a -> a -> a
<> forall a. Buildable a => a -> Builder
build [Html lng]
children forall a. Semigroup a => a -> a -> a
<> Builder
endTag
LeafNode Builder
startTag [] -> Builder
startTag forall a. Semigroup a => a -> a -> a
<> Char -> Builder
singleton Char
'>'
LeafNode Builder
startTag [Attribute]
attributes -> Builder
startTag forall a. Semigroup a => a -> a -> a
<> forall a. Buildable a => a -> Builder
build [Attribute]
attributes forall a. Semigroup a => a -> a -> a
<> Char -> Builder
singleton Char
'>'
RootNode Builder
startTag [] -> Builder
startTag
RootNode Builder
startTag [Html lng]
children -> Builder
startTag forall a. Semigroup a => a -> a -> a
<> forall a. Buildable a => a -> Builder
build [Html lng]
children
TextNode Builder
text -> Builder
text
IntlNode lng
intl -> Builder
text
where text :: Builder
text = forall a. Translatable a => a -> Builder
defaultLanguage lng
intl
instance {-# OVERLAPPING #-} Show [Html lng] where
show :: [Html lng] -> String
show = Text -> String
unpack forall b c a. (b -> c) -> (a -> b) -> a -> c
. Builder -> Text
toLazyText forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Buildable a => a -> Builder
build
instance Buildable [Html lng] where
build :: [Html lng] -> Builder
build = forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
foldr (forall a. Semigroup a => a -> a -> a
(<>) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Buildable a => a -> Builder
build) forall a. Monoid a => a
mempty
data Attribute
= BoolAttribute Builder Bool
| TextAttribute Builder Builder
instance Show Attribute where
show :: Attribute -> String
show = Text -> String
unpack forall b c a. (b -> c) -> (a -> b) -> a -> c
. Builder -> Text
toLazyText forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Buildable a => a -> Builder
build
instance Buildable Attribute where
build :: Attribute -> Builder
build Attribute
attribute = case Attribute
attribute of
BoolAttribute Builder
_ Bool
False -> forall a. Monoid a => a
mempty
BoolAttribute Builder
key Bool
True -> Builder
key
TextAttribute Builder
_ Builder
"" -> forall a. Monoid a => a
mempty
TextAttribute Builder
key Builder
value -> Builder
key forall a. Semigroup a => a -> a -> a
<> Builder
value forall a. Semigroup a => a -> a -> a
<> Char -> Builder
singleton Char
'"'
instance {-# OVERLAPPING #-} Show [Attribute] where
show :: [Attribute] -> String
show = Text -> String
unpack forall b c a. (b -> c) -> (a -> b) -> a -> c
. Builder -> Text
toLazyText forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Buildable a => a -> Builder
build
instance Buildable [Attribute] where
build :: [Attribute] -> Builder
build = forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
foldr (forall a. Semigroup a => a -> a -> a
(<>) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Buildable a => a -> Builder
build) forall a. Monoid a => a
mempty
class Buildable a where
build :: a -> Builder
class Translatable a where
defaultLanguage :: a -> Builder
doctype :: [Html lng] -> Html lng
doctype :: forall lng. [Html lng] -> Html lng
doctype = forall lng. Builder -> [Html lng] -> Html lng
RootNode Builder
"<!DOCTYPE html>\n"
{-# INLINE doctype #-}
a :: [Attribute] -> [Html lng] -> Html lng
a :: forall lng. [Attribute] -> [Html lng] -> Html lng
a = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<a" Builder
"</a>"
{-# INLINE a #-}
abbr :: [Attribute] -> [Html lng] -> Html lng
abbr :: forall lng. [Attribute] -> [Html lng] -> Html lng
abbr = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<abbr" Builder
"</abbr>"
{-# INLINE abbr #-}
address :: [Attribute] -> [Html lng] -> Html lng
address :: forall lng. [Attribute] -> [Html lng] -> Html lng
address = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<address" Builder
"</address>"
{-# INLINE address #-}
area :: [Attribute] -> Html lng
area :: forall lng. [Attribute] -> Html lng
area = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<area"
{-# INLINE area #-}
article :: [Attribute] -> [Html lng] -> Html lng
article :: forall lng. [Attribute] -> [Html lng] -> Html lng
article = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<article" Builder
"</article>"
{-# INLINE article #-}
aside :: [Attribute] -> [Html lng] -> Html lng
aside :: forall lng. [Attribute] -> [Html lng] -> Html lng
aside = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<aside" Builder
"</aside>"
{-# INLINE aside #-}
audio :: [Attribute] -> [Html lng] -> Html lng
audio :: forall lng. [Attribute] -> [Html lng] -> Html lng
audio = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<audio" Builder
"</audio>"
{-# INLINE audio #-}
b :: [Attribute] -> [Html lng] -> Html lng
b :: forall lng. [Attribute] -> [Html lng] -> Html lng
b = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<b" Builder
"</b>"
{-# INLINE b #-}
base :: [Attribute] -> Html lng
base :: forall lng. [Attribute] -> Html lng
base = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<base"
{-# INLINE base #-}
bdi :: [Attribute] -> [Html lng] -> Html lng
bdi :: forall lng. [Attribute] -> [Html lng] -> Html lng
bdi = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<bdi" Builder
"</bdi>"
{-# INLINE bdi #-}
bdo :: [Attribute] -> [Html lng] -> Html lng
bdo :: forall lng. [Attribute] -> [Html lng] -> Html lng
bdo = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<bdo" Builder
"</bdo>"
{-# INLINE bdo #-}
blockquote :: [Attribute] -> [Html lng] -> Html lng
blockquote :: forall lng. [Attribute] -> [Html lng] -> Html lng
blockquote = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<blockquote" Builder
"</blockquote>"
{-# INLINE blockquote #-}
body :: [Attribute] -> [Html lng] -> Html lng
body :: forall lng. [Attribute] -> [Html lng] -> Html lng
body = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<body" Builder
"</body>"
{-# INLINE body #-}
br :: [Attribute] -> Html lng
br :: forall lng. [Attribute] -> Html lng
br = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<br"
{-# INLINE br #-}
button :: [Attribute] -> [Html lng] -> Html lng
button :: forall lng. [Attribute] -> [Html lng] -> Html lng
button = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<button" Builder
"</button>"
{-# INLINE button #-}
canvas :: [Attribute] -> [Html lng] -> Html lng
canvas :: forall lng. [Attribute] -> [Html lng] -> Html lng
canvas = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<canvas" Builder
"</canvas>"
{-# INLINE canvas #-}
caption :: [Attribute] -> [Html lng] -> Html lng
caption :: forall lng. [Attribute] -> [Html lng] -> Html lng
caption = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<caption" Builder
"</caption>"
{-# INLINE caption #-}
cite :: [Attribute] -> [Html lng] -> Html lng
cite :: forall lng. [Attribute] -> [Html lng] -> Html lng
cite = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<cite" Builder
"</cite>"
{-# INLINE cite #-}
code :: [Attribute] -> [Html lng] -> Html lng
code :: forall lng. [Attribute] -> [Html lng] -> Html lng
code = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<code" Builder
"</code>"
{-# INLINE code #-}
col :: [Attribute] -> Html lng
col :: forall lng. [Attribute] -> Html lng
col = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<col"
{-# INLINE col #-}
colgroup :: [Attribute] -> [Html lng] -> Html lng
colgroup :: forall lng. [Attribute] -> [Html lng] -> Html lng
colgroup = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<colgroup" Builder
"</colgroup>"
{-# INLINE colgroup #-}
data_ :: [Attribute] -> [Html lng] -> Html lng
data_ :: forall lng. [Attribute] -> [Html lng] -> Html lng
data_ = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<data" Builder
"</data>"
{-# INLINE data_ #-}
datalist :: [Attribute] -> [Html lng] -> Html lng
datalist :: forall lng. [Attribute] -> [Html lng] -> Html lng
datalist = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<datalist" Builder
"</datalist>"
{-# INLINE datalist #-}
dd :: [Attribute] -> [Html lng] -> Html lng
dd :: forall lng. [Attribute] -> [Html lng] -> Html lng
dd = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<dd" Builder
"</dd>"
{-# INLINE dd #-}
del :: [Attribute] -> [Html lng] -> Html lng
del :: forall lng. [Attribute] -> [Html lng] -> Html lng
del = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<del" Builder
"</del>"
{-# INLINE del #-}
details :: [Attribute] -> [Html lng] -> Html lng
details :: forall lng. [Attribute] -> [Html lng] -> Html lng
details = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<details" Builder
"</details>"
{-# INLINE details #-}
dfn :: [Attribute] -> [Html lng] -> Html lng
dfn :: forall lng. [Attribute] -> [Html lng] -> Html lng
dfn = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<dfn" Builder
"</dfn>"
{-# INLINE dfn #-}
dialog :: [Attribute] -> [Html lng] -> Html lng
dialog :: forall lng. [Attribute] -> [Html lng] -> Html lng
dialog = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<dialog" Builder
"</dialog>"
{-# INLINE dialog #-}
div :: [Attribute] -> [Html lng] -> Html lng
div :: forall lng. [Attribute] -> [Html lng] -> Html lng
div = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<div" Builder
"</div>"
{-# INLINE div #-}
dl :: [Attribute] -> [Html lng] -> Html lng
dl :: forall lng. [Attribute] -> [Html lng] -> Html lng
dl = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<dl" Builder
"</dl>"
{-# INLINE dl #-}
dt :: [Attribute] -> [Html lng] -> Html lng
dt :: forall lng. [Attribute] -> [Html lng] -> Html lng
dt = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<dt" Builder
"</dt>"
{-# INLINE dt #-}
em :: [Attribute] -> [Html lng] -> Html lng
em :: forall lng. [Attribute] -> [Html lng] -> Html lng
em = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<em" Builder
"</em>"
{-# INLINE em #-}
embed :: [Attribute] -> Html lng
embed :: forall lng. [Attribute] -> Html lng
embed = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<embed"
{-# INLINE embed #-}
fieldset :: [Attribute] -> [Html lng] -> Html lng
fieldset :: forall lng. [Attribute] -> [Html lng] -> Html lng
fieldset = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<fieldset" Builder
"</fieldset>"
{-# INLINE fieldset #-}
figcaption :: [Attribute] -> [Html lng] -> Html lng
figcaption :: forall lng. [Attribute] -> [Html lng] -> Html lng
figcaption = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<figcaption" Builder
"</figcaption>"
{-# INLINE figcaption #-}
figure :: [Attribute] -> [Html lng] -> Html lng
figure :: forall lng. [Attribute] -> [Html lng] -> Html lng
figure = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<figure" Builder
"</figure>"
{-# INLINE figure #-}
footer :: [Attribute] -> [Html lng] -> Html lng
= forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<footer" Builder
"</footer>"
{-# INLINE footer #-}
form :: [Attribute] -> [Html lng] -> Html lng
form :: forall lng. [Attribute] -> [Html lng] -> Html lng
form = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<form" Builder
"</form>"
{-# INLINE form #-}
h1 :: [Attribute] -> [Html lng] -> Html lng
h1 :: forall lng. [Attribute] -> [Html lng] -> Html lng
h1 = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<h1" Builder
"</h1>"
{-# INLINE h1 #-}
h2 :: [Attribute] -> [Html lng] -> Html lng
h2 :: forall lng. [Attribute] -> [Html lng] -> Html lng
h2 = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<h2" Builder
"</h2>"
{-# INLINE h2 #-}
h3 :: [Attribute] -> [Html lng] -> Html lng
h3 :: forall lng. [Attribute] -> [Html lng] -> Html lng
h3 = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<h3" Builder
"</h3>"
{-# INLINE h3 #-}
h4 :: [Attribute] -> [Html lng] -> Html lng
h4 :: forall lng. [Attribute] -> [Html lng] -> Html lng
h4 = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<h4" Builder
"</h4>"
{-# INLINE h4 #-}
h5 :: [Attribute] -> [Html lng] -> Html lng
h5 :: forall lng. [Attribute] -> [Html lng] -> Html lng
h5 = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<h5" Builder
"</h5>"
{-# INLINE h5 #-}
h6 :: [Attribute] -> [Html lng] -> Html lng
h6 :: forall lng. [Attribute] -> [Html lng] -> Html lng
h6 = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<h6" Builder
"</h6>"
{-# INLINE h6 #-}
head :: [Attribute] -> [Html lng] -> Html lng
head :: forall lng. [Attribute] -> [Html lng] -> Html lng
head = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<head" Builder
"</head>"
{-# INLINE head #-}
header :: [Attribute] -> [Html lng] -> Html lng
= forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<header" Builder
"</header>"
{-# INLINE header #-}
hgroup :: [Attribute] -> [Html lng] -> Html lng
hgroup :: forall lng. [Attribute] -> [Html lng] -> Html lng
hgroup = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<hgroup" Builder
"</hgroup>"
{-# INLINE hgroup #-}
hr :: [Attribute] -> Html lng
hr :: forall lng. [Attribute] -> Html lng
hr = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<hr"
{-# INLINE hr #-}
html :: [Attribute] -> [Html lng] -> Html lng
html :: forall lng. [Attribute] -> [Html lng] -> Html lng
html = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<html" Builder
"</html>"
{-# INLINE html #-}
i :: [Attribute] -> [Html lng] -> Html lng
i :: forall lng. [Attribute] -> [Html lng] -> Html lng
i = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<i" Builder
"</i>"
{-# INLINE i #-}
iframe :: [Attribute] -> [Html lng] -> Html lng
iframe :: forall lng. [Attribute] -> [Html lng] -> Html lng
iframe = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<iframe" Builder
"</iframe>"
{-# INLINE iframe #-}
img :: [Attribute] -> Html lng
img :: forall lng. [Attribute] -> Html lng
img = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<img"
{-# INLINE img #-}
input :: [Attribute] -> Html lng
input :: forall lng. [Attribute] -> Html lng
input = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<input"
{-# INLINE input #-}
ins :: [Attribute] -> [Html lng] -> Html lng
ins :: forall lng. [Attribute] -> [Html lng] -> Html lng
ins = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<ins" Builder
"</ins>"
{-# INLINE ins #-}
kbd :: [Attribute] -> [Html lng] -> Html lng
kbd :: forall lng. [Attribute] -> [Html lng] -> Html lng
kbd = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<kbd" Builder
"</kbd>"
{-# INLINE kbd #-}
label :: [Attribute] -> [Html lng] -> Html lng
label :: forall lng. [Attribute] -> [Html lng] -> Html lng
label = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<label" Builder
"</label>"
{-# INLINE label #-}
legend :: [Attribute] -> [Html lng] -> Html lng
legend :: forall lng. [Attribute] -> [Html lng] -> Html lng
legend = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<legend" Builder
"</legend>"
{-# INLINE legend #-}
li :: [Attribute] -> [Html lng] -> Html lng
li :: forall lng. [Attribute] -> [Html lng] -> Html lng
li = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<li" Builder
"</li>"
{-# INLINE li #-}
link :: [Attribute] -> Html lng
link :: forall lng. [Attribute] -> Html lng
link = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<link"
{-# INLINE link #-}
main :: [Attribute] -> [Html lng] -> Html lng
main :: forall lng. [Attribute] -> [Html lng] -> Html lng
main = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<main" Builder
"</main>"
{-# INLINE main #-}
map :: [Attribute] -> [Html lng] -> Html lng
map :: forall lng. [Attribute] -> [Html lng] -> Html lng
map = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<map" Builder
"</map>"
{-# INLINE map #-}
mark :: [Attribute] -> [Html lng] -> Html lng
mark :: forall lng. [Attribute] -> [Html lng] -> Html lng
mark = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<mark" Builder
"</mark>"
{-# INLINE mark #-}
menu :: [Attribute] -> [Html lng] -> Html lng
= forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<menu" Builder
"</menu>"
{-# INLINE menu #-}
meta :: [Attribute] -> Html lng
meta :: forall lng. [Attribute] -> Html lng
meta = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<meta"
{-# INLINE meta #-}
meter :: [Attribute] -> [Html lng] -> Html lng
meter :: forall lng. [Attribute] -> [Html lng] -> Html lng
meter = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<meter" Builder
"</meter>"
{-# INLINE meter #-}
nav :: [Attribute] -> [Html lng] -> Html lng
nav :: forall lng. [Attribute] -> [Html lng] -> Html lng
nav = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<nav" Builder
"</nav>"
{-# INLINE nav #-}
noscript :: [Attribute] -> [Html lng] -> Html lng
noscript :: forall lng. [Attribute] -> [Html lng] -> Html lng
noscript = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<noscript" Builder
"</noscript>"
{-# INLINE noscript #-}
object :: [Attribute] -> [Html lng] -> Html lng
object :: forall lng. [Attribute] -> [Html lng] -> Html lng
object = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<object" Builder
"</object>"
{-# INLINE object #-}
ol :: [Attribute] -> [Html lng] -> Html lng
ol :: forall lng. [Attribute] -> [Html lng] -> Html lng
ol = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<ol" Builder
"</ol>"
{-# INLINE ol #-}
optgroup :: [Attribute] -> [Html lng] -> Html lng
optgroup :: forall lng. [Attribute] -> [Html lng] -> Html lng
optgroup = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<optgroup" Builder
"</optgroup>"
{-# INLINE optgroup #-}
option :: [Attribute] -> [Html lng] -> Html lng
option :: forall lng. [Attribute] -> [Html lng] -> Html lng
option = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<option" Builder
"</option>"
{-# INLINE option #-}
output :: [Attribute] -> [Html lng] -> Html lng
output :: forall lng. [Attribute] -> [Html lng] -> Html lng
output = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<output" Builder
"</output>"
{-# INLINE output #-}
p :: [Attribute] -> [Html lng] -> Html lng
p :: forall lng. [Attribute] -> [Html lng] -> Html lng
p = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<p" Builder
"</p>"
{-# INLINE p #-}
picture :: [Attribute] -> [Html lng] -> Html lng
picture :: forall lng. [Attribute] -> [Html lng] -> Html lng
picture = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<picture" Builder
"</picture>"
{-# INLINE picture #-}
pre :: [Attribute] -> [Html lng] -> Html lng
pre :: forall lng. [Attribute] -> [Html lng] -> Html lng
pre = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<pre" Builder
"</pre>"
{-# INLINE pre #-}
progress :: [Attribute] -> [Html lng] -> Html lng
progress :: forall lng. [Attribute] -> [Html lng] -> Html lng
progress = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<progress" Builder
"</progress>"
{-# INLINE progress #-}
q :: [Attribute] -> [Html lng] -> Html lng
q :: forall lng. [Attribute] -> [Html lng] -> Html lng
q = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<q" Builder
"</q>"
{-# INLINE q #-}
rp :: [Attribute] -> [Html lng] -> Html lng
rp :: forall lng. [Attribute] -> [Html lng] -> Html lng
rp = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<rp" Builder
"</rp>"
{-# INLINE rp #-}
rt :: [Attribute] -> [Html lng] -> Html lng
rt :: forall lng. [Attribute] -> [Html lng] -> Html lng
rt = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<rt" Builder
"</rt>"
{-# INLINE rt #-}
ruby :: [Attribute] -> [Html lng] -> Html lng
ruby :: forall lng. [Attribute] -> [Html lng] -> Html lng
ruby = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<ruby" Builder
"</ruby>"
{-# INLINE ruby #-}
s :: [Attribute] -> [Html lng] -> Html lng
s :: forall lng. [Attribute] -> [Html lng] -> Html lng
s = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<s" Builder
"</s>"
{-# INLINE s #-}
samp :: [Attribute] -> [Html lng] -> Html lng
samp :: forall lng. [Attribute] -> [Html lng] -> Html lng
samp = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<samp" Builder
"</samp>"
{-# INLINE samp #-}
script :: [Attribute] -> [Html lng] -> Html lng
script :: forall lng. [Attribute] -> [Html lng] -> Html lng
script = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<script" Builder
"</script>"
{-# INLINE script #-}
section :: [Attribute] -> [Html lng] -> Html lng
section :: forall lng. [Attribute] -> [Html lng] -> Html lng
section = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<section" Builder
"</section>"
{-# INLINE section #-}
select :: [Attribute] -> [Html lng] -> Html lng
select :: forall lng. [Attribute] -> [Html lng] -> Html lng
select = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<select" Builder
"</select>"
{-# INLINE select #-}
slot :: [Attribute] -> [Html lng] -> Html lng
slot :: forall lng. [Attribute] -> [Html lng] -> Html lng
slot = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<slot" Builder
"</slot>"
{-# INLINE slot #-}
small :: [Attribute] -> [Html lng] -> Html lng
small :: forall lng. [Attribute] -> [Html lng] -> Html lng
small = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<small" Builder
"</small>"
{-# INLINE small #-}
source :: [Attribute] -> Html lng
source :: forall lng. [Attribute] -> Html lng
source = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<source"
{-# INLINE source #-}
span :: [Attribute] -> [Html lng] -> Html lng
span :: forall lng. [Attribute] -> [Html lng] -> Html lng
span = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<span" Builder
"</span>"
{-# INLINE span #-}
strong :: [Attribute] -> [Html lng] -> Html lng
strong :: forall lng. [Attribute] -> [Html lng] -> Html lng
strong = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<strong" Builder
"</strong>"
{-# INLINE strong #-}
style :: [Attribute] -> [Html lng] -> Html lng
style :: forall lng. [Attribute] -> [Html lng] -> Html lng
style = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<style" Builder
"</style>"
{-# INLINE style #-}
sub :: [Attribute] -> [Html lng] -> Html lng
sub :: forall lng. [Attribute] -> [Html lng] -> Html lng
sub = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<sub" Builder
"</sub>"
{-# INLINE sub #-}
summary :: [Attribute] -> [Html lng] -> Html lng
summary :: forall lng. [Attribute] -> [Html lng] -> Html lng
summary = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<summary" Builder
"</summary>"
{-# INLINE summary #-}
sup :: [Attribute] -> [Html lng] -> Html lng
sup :: forall lng. [Attribute] -> [Html lng] -> Html lng
sup = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<sup" Builder
"</sup>"
{-# INLINE sup #-}
table :: [Attribute] -> [Html lng] -> Html lng
table :: forall lng. [Attribute] -> [Html lng] -> Html lng
table = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<table" Builder
"</table>"
{-# INLINE table #-}
tbody :: [Attribute] -> [Html lng] -> Html lng
tbody :: forall lng. [Attribute] -> [Html lng] -> Html lng
tbody = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<tbody" Builder
"</tbody>"
{-# INLINE tbody #-}
td :: [Attribute] -> [Html lng] -> Html lng
td :: forall lng. [Attribute] -> [Html lng] -> Html lng
td = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<td" Builder
"</td>"
{-# INLINE td #-}
template :: [Attribute] -> [Html lng] -> Html lng
template :: forall lng. [Attribute] -> [Html lng] -> Html lng
template = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<template" Builder
"</template>"
{-# INLINE template #-}
textarea :: [Attribute] -> [Html lng] -> Html lng
textarea :: forall lng. [Attribute] -> [Html lng] -> Html lng
textarea = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<textarea" Builder
"</textarea>"
{-# INLINE textarea #-}
tfoot :: [Attribute] -> [Html lng] -> Html lng
= forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<tfoot" Builder
"</tfoot>"
{-# INLINE tfoot #-}
th :: [Attribute] -> [Html lng] -> Html lng
th :: forall lng. [Attribute] -> [Html lng] -> Html lng
th = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<th" Builder
"</th>"
{-# INLINE th #-}
thead :: [Attribute] -> [Html lng] -> Html lng
thead :: forall lng. [Attribute] -> [Html lng] -> Html lng
thead = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<thead" Builder
"</thead>"
{-# INLINE thead #-}
time :: [Attribute] -> [Html lng] -> Html lng
time :: forall lng. [Attribute] -> [Html lng] -> Html lng
time = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<time" Builder
"</time>"
{-# INLINE time #-}
title :: [Attribute] -> [Html lng] -> Html lng
title :: forall lng. [Attribute] -> [Html lng] -> Html lng
title = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<title" Builder
"</title>"
{-# INLINE title #-}
tr :: [Attribute] -> [Html lng] -> Html lng
tr :: forall lng. [Attribute] -> [Html lng] -> Html lng
tr = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<tr" Builder
"</tr>"
{-# INLINE tr #-}
track :: [Attribute] -> Html lng
track :: forall lng. [Attribute] -> Html lng
track = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<track"
{-# INLINE track #-}
u :: [Attribute] -> [Html lng] -> Html lng
u :: forall lng. [Attribute] -> [Html lng] -> Html lng
u = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<u" Builder
"</u>"
{-# INLINE u #-}
ul :: [Attribute] -> [Html lng] -> Html lng
ul :: forall lng. [Attribute] -> [Html lng] -> Html lng
ul = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<ul" Builder
"</ul>"
{-# INLINE ul #-}
var :: [Attribute] -> [Html lng] -> Html lng
var :: forall lng. [Attribute] -> [Html lng] -> Html lng
var = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<var" Builder
"</var>"
{-# INLINE var #-}
video :: [Attribute] -> [Html lng] -> Html lng
video :: forall lng. [Attribute] -> [Html lng] -> Html lng
video = forall lng.
Builder -> Builder -> [Attribute] -> [Html lng] -> Html lng
ParentNode Builder
"<video" Builder
"</video>"
{-# INLINE video #-}
wbr :: [Attribute] -> Html lng
wbr :: forall lng. [Attribute] -> Html lng
wbr = forall lng. Builder -> [Attribute] -> Html lng
LeafNode Builder
"<wbr"
{-# INLINE wbr #-}