blaze-html-0.1: src/Text/Blaze/Html5.hs
{-# LANGUAGE OverloadedStrings #-}
-- | This module exports HTML combinators used to create documents.
--
module Text.Blaze.Html5
( module Text.Blaze
, html
, docType
, a
, abbr
, address
, area
, article
, aside
, audio
, b
, base
, bdo
, blockquote
, body
, br
, button
, canvas
, caption
, cite
, code
, col
, colgroup
, command
, datalist
, dd
, del
, details
, dfn
, div
, dl
, dt
, em
, embed
, fieldset
, figcaption
, figure
, footer
, form
, h1
, h2
, h3
, h4
, h5
, h6
, head
, header
, hgroup
, hr
, htmlNoDocType
, i
, iframe
, img
, input
, ins
, kbd
, keygen
, label
, legend
, li
, link
, map
, mark
, menu
, meta
, meter
, nav
, noscript
, object
, ol
, optgroup
, option
, output
, p
, param
, pre
, progress
, q
, rp
, rt
, ruby
, samp
, script
, section
, select
, small
, source
, span
, strong
, style
, sub
, summary
, sup
, table
, tbody
, td
, textarea
, tfoot
, th
, thead
, time
, title
, tr
, ul
, var
, video
) where
import Prelude ()
import Data.Monoid (mappend)
import Text.Blaze
import Text.Blaze.Internal (parent, leaf, open)
-- | Combinator for the @\<html>@ element. This combinator will also
-- insert the correct doctype.
--
-- Example:
--
-- > html $ span $ text "foo"
--
-- Result:
--
-- > <!DOCTYPE HTML>
-- > <html><span>foo</span></html>
--
html :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
html inner = docType `mappend` htmlNoDocType inner
{-# INLINE html #-}
-- | Combinator for the document type. This should be placed at the top
-- of every HTML page.
--
-- Example:
--
-- > docType
--
-- Result:
--
-- > <!DOCTYPE HTML>
--
docType :: Html a -- ^ The document type HTML.
docType = preEscapedText "<!DOCTYPE HTML>\n"
{-# INLINE docType #-}
-- | Combinator for the @\<a>@ element.
--
-- Example:
--
-- > a $ span $ text "foo"
--
-- Result:
--
-- > <a><span>foo</span></a>
--
a :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
a = parent "<a" "</a>"
{-# INLINE a #-}
-- | Combinator for the @\<abbr>@ element.
--
-- Example:
--
-- > abbr $ span $ text "foo"
--
-- Result:
--
-- > <abbr><span>foo</span></abbr>
--
abbr :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
abbr = parent "<abbr" "</abbr>"
{-# INLINE abbr #-}
-- | Combinator for the @\<address>@ element.
--
-- Example:
--
-- > address $ span $ text "foo"
--
-- Result:
--
-- > <address><span>foo</span></address>
--
address :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
address = parent "<address" "</address>"
{-# INLINE address #-}
-- | Combinator for the @\<area />@ element.
--
-- Example:
--
-- > area
--
-- Result:
--
-- > <area />
--
area :: Html a -- ^ Resulting HTML.
area = leaf "<area"
{-# INLINE area #-}
-- | Combinator for the @\<article>@ element.
--
-- Example:
--
-- > article $ span $ text "foo"
--
-- Result:
--
-- > <article><span>foo</span></article>
--
article :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
article = parent "<article" "</article>"
{-# INLINE article #-}
-- | Combinator for the @\<aside>@ element.
--
-- Example:
--
-- > aside $ span $ text "foo"
--
-- Result:
--
-- > <aside><span>foo</span></aside>
--
aside :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
aside = parent "<aside" "</aside>"
{-# INLINE aside #-}
-- | Combinator for the @\<audio>@ element.
--
-- Example:
--
-- > audio $ span $ text "foo"
--
-- Result:
--
-- > <audio><span>foo</span></audio>
--
audio :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
audio = parent "<audio" "</audio>"
{-# INLINE audio #-}
-- | Combinator for the @\<b>@ element.
--
-- Example:
--
-- > b $ span $ text "foo"
--
-- Result:
--
-- > <b><span>foo</span></b>
--
b :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
b = parent "<b" "</b>"
{-# INLINE b #-}
-- | Combinator for the @\<base>@ element.
--
-- Example:
--
-- > base $ span $ text "foo"
--
-- Result:
--
-- > <base><span>foo</span></base>
--
base :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
base = parent "<base" "</base>"
{-# INLINE base #-}
-- | Combinator for the @\<bdo>@ element.
--
-- Example:
--
-- > bdo $ span $ text "foo"
--
-- Result:
--
-- > <bdo><span>foo</span></bdo>
--
bdo :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
bdo = parent "<bdo" "</bdo>"
{-# INLINE bdo #-}
-- | Combinator for the @\<blockquote>@ element.
--
-- Example:
--
-- > blockquote $ span $ text "foo"
--
-- Result:
--
-- > <blockquote><span>foo</span></blockquote>
--
blockquote :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
blockquote = parent "<blockquote" "</blockquote>"
{-# INLINE blockquote #-}
-- | Combinator for the @\<body>@ element.
--
-- Example:
--
-- > body $ span $ text "foo"
--
-- Result:
--
-- > <body><span>foo</span></body>
--
body :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
body = parent "<body" "</body>"
{-# INLINE body #-}
-- | Combinator for the @\<br />@ element.
--
-- Example:
--
-- > br
--
-- Result:
--
-- > <br />
--
br :: Html a -- ^ Resulting HTML.
br = leaf "<br"
{-# INLINE br #-}
-- | Combinator for the @\<button>@ element.
--
-- Example:
--
-- > button $ span $ text "foo"
--
-- Result:
--
-- > <button><span>foo</span></button>
--
button :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
button = parent "<button" "</button>"
{-# INLINE button #-}
-- | Combinator for the @\<canvas>@ element.
--
-- Example:
--
-- > canvas $ span $ text "foo"
--
-- Result:
--
-- > <canvas><span>foo</span></canvas>
--
canvas :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
canvas = parent "<canvas" "</canvas>"
{-# INLINE canvas #-}
-- | Combinator for the @\<caption>@ element.
--
-- Example:
--
-- > caption $ span $ text "foo"
--
-- Result:
--
-- > <caption><span>foo</span></caption>
--
caption :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
caption = parent "<caption" "</caption>"
{-# INLINE caption #-}
-- | Combinator for the @\<cite>@ element.
--
-- Example:
--
-- > cite $ span $ text "foo"
--
-- Result:
--
-- > <cite><span>foo</span></cite>
--
cite :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
cite = parent "<cite" "</cite>"
{-# INLINE cite #-}
-- | Combinator for the @\<code>@ element.
--
-- Example:
--
-- > code $ span $ text "foo"
--
-- Result:
--
-- > <code><span>foo</span></code>
--
code :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
code = parent "<code" "</code>"
{-# INLINE code #-}
-- | Combinator for the @\<col />@ element.
--
-- Example:
--
-- > col
--
-- Result:
--
-- > <col />
--
col :: Html a -- ^ Resulting HTML.
col = leaf "<col"
{-# INLINE col #-}
-- | Combinator for the @\<colgroup>@ element.
--
-- Example:
--
-- > colgroup $ span $ text "foo"
--
-- Result:
--
-- > <colgroup><span>foo</span></colgroup>
--
colgroup :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
colgroup = parent "<colgroup" "</colgroup>"
{-# INLINE colgroup #-}
-- | Combinator for the @\<command>@ element.
--
-- Example:
--
-- > command $ span $ text "foo"
--
-- Result:
--
-- > <command><span>foo</span></command>
--
command :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
command = parent "<command" "</command>"
{-# INLINE command #-}
-- | Combinator for the @\<datalist>@ element.
--
-- Example:
--
-- > datalist $ span $ text "foo"
--
-- Result:
--
-- > <datalist><span>foo</span></datalist>
--
datalist :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
datalist = parent "<datalist" "</datalist>"
{-# INLINE datalist #-}
-- | Combinator for the @\<dd>@ element.
--
-- Example:
--
-- > dd $ span $ text "foo"
--
-- Result:
--
-- > <dd><span>foo</span></dd>
--
dd :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
dd = parent "<dd" "</dd>"
{-# INLINE dd #-}
-- | Combinator for the @\<del>@ element.
--
-- Example:
--
-- > del $ span $ text "foo"
--
-- Result:
--
-- > <del><span>foo</span></del>
--
del :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
del = parent "<del" "</del>"
{-# INLINE del #-}
-- | Combinator for the @\<details>@ element.
--
-- Example:
--
-- > details $ span $ text "foo"
--
-- Result:
--
-- > <details><span>foo</span></details>
--
details :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
details = parent "<details" "</details>"
{-# INLINE details #-}
-- | Combinator for the @\<dfn>@ element.
--
-- Example:
--
-- > dfn $ span $ text "foo"
--
-- Result:
--
-- > <dfn><span>foo</span></dfn>
--
dfn :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
dfn = parent "<dfn" "</dfn>"
{-# INLINE dfn #-}
-- | Combinator for the @\<div>@ element.
--
-- Example:
--
-- > div $ span $ text "foo"
--
-- Result:
--
-- > <div><span>foo</span></div>
--
div :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
div = parent "<div" "</div>"
{-# INLINE div #-}
-- | Combinator for the @\<dl>@ element.
--
-- Example:
--
-- > dl $ span $ text "foo"
--
-- Result:
--
-- > <dl><span>foo</span></dl>
--
dl :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
dl = parent "<dl" "</dl>"
{-# INLINE dl #-}
-- | Combinator for the @\<dt>@ element.
--
-- Example:
--
-- > dt $ span $ text "foo"
--
-- Result:
--
-- > <dt><span>foo</span></dt>
--
dt :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
dt = parent "<dt" "</dt>"
{-# INLINE dt #-}
-- | Combinator for the @\<em>@ element.
--
-- Example:
--
-- > em $ span $ text "foo"
--
-- Result:
--
-- > <em><span>foo</span></em>
--
em :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
em = parent "<em" "</em>"
{-# INLINE em #-}
-- | Combinator for the @\<embed />@ element.
--
-- Example:
--
-- > embed
--
-- Result:
--
-- > <embed />
--
embed :: Html a -- ^ Resulting HTML.
embed = leaf "<embed"
{-# INLINE embed #-}
-- | Combinator for the @\<fieldset>@ element.
--
-- Example:
--
-- > fieldset $ span $ text "foo"
--
-- Result:
--
-- > <fieldset><span>foo</span></fieldset>
--
fieldset :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
fieldset = parent "<fieldset" "</fieldset>"
{-# INLINE fieldset #-}
-- | Combinator for the @\<figcaption>@ element.
--
-- Example:
--
-- > figcaption $ span $ text "foo"
--
-- Result:
--
-- > <figcaption><span>foo</span></figcaption>
--
figcaption :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
figcaption = parent "<figcaption" "</figcaption>"
{-# INLINE figcaption #-}
-- | Combinator for the @\<figure>@ element.
--
-- Example:
--
-- > figure $ span $ text "foo"
--
-- Result:
--
-- > <figure><span>foo</span></figure>
--
figure :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
figure = parent "<figure" "</figure>"
{-# INLINE figure #-}
-- | Combinator for the @\<footer>@ element.
--
-- Example:
--
-- > footer $ span $ text "foo"
--
-- Result:
--
-- > <footer><span>foo</span></footer>
--
footer :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
footer = parent "<footer" "</footer>"
{-# INLINE footer #-}
-- | Combinator for the @\<form>@ element.
--
-- Example:
--
-- > form $ span $ text "foo"
--
-- Result:
--
-- > <form><span>foo</span></form>
--
form :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
form = parent "<form" "</form>"
{-# INLINE form #-}
-- | Combinator for the @\<h1>@ element.
--
-- Example:
--
-- > h1 $ span $ text "foo"
--
-- Result:
--
-- > <h1><span>foo</span></h1>
--
h1 :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
h1 = parent "<h1" "</h1>"
{-# INLINE h1 #-}
-- | Combinator for the @\<h2>@ element.
--
-- Example:
--
-- > h2 $ span $ text "foo"
--
-- Result:
--
-- > <h2><span>foo</span></h2>
--
h2 :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
h2 = parent "<h2" "</h2>"
{-# INLINE h2 #-}
-- | Combinator for the @\<h3>@ element.
--
-- Example:
--
-- > h3 $ span $ text "foo"
--
-- Result:
--
-- > <h3><span>foo</span></h3>
--
h3 :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
h3 = parent "<h3" "</h3>"
{-# INLINE h3 #-}
-- | Combinator for the @\<h4>@ element.
--
-- Example:
--
-- > h4 $ span $ text "foo"
--
-- Result:
--
-- > <h4><span>foo</span></h4>
--
h4 :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
h4 = parent "<h4" "</h4>"
{-# INLINE h4 #-}
-- | Combinator for the @\<h5>@ element.
--
-- Example:
--
-- > h5 $ span $ text "foo"
--
-- Result:
--
-- > <h5><span>foo</span></h5>
--
h5 :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
h5 = parent "<h5" "</h5>"
{-# INLINE h5 #-}
-- | Combinator for the @\<h6>@ element.
--
-- Example:
--
-- > h6 $ span $ text "foo"
--
-- Result:
--
-- > <h6><span>foo</span></h6>
--
h6 :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
h6 = parent "<h6" "</h6>"
{-# INLINE h6 #-}
-- | Combinator for the @\<head>@ element.
--
-- Example:
--
-- > head $ span $ text "foo"
--
-- Result:
--
-- > <head><span>foo</span></head>
--
head :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
head = parent "<head" "</head>"
{-# INLINE head #-}
-- | Combinator for the @\<header>@ element.
--
-- Example:
--
-- > header $ span $ text "foo"
--
-- Result:
--
-- > <header><span>foo</span></header>
--
header :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
header = parent "<header" "</header>"
{-# INLINE header #-}
-- | Combinator for the @\<hgroup>@ element.
--
-- Example:
--
-- > hgroup $ span $ text "foo"
--
-- Result:
--
-- > <hgroup><span>foo</span></hgroup>
--
hgroup :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
hgroup = parent "<hgroup" "</hgroup>"
{-# INLINE hgroup #-}
-- | Combinator for the @\<hr />@ element.
--
-- Example:
--
-- > hr
--
-- Result:
--
-- > <hr />
--
hr :: Html a -- ^ Resulting HTML.
hr = leaf "<hr"
{-# INLINE hr #-}
-- | Combinator for the @\<html>@ element.
--
-- Example:
--
-- > htmlNoDocType $ span $ text "foo"
--
-- Result:
--
-- > <html><span>foo</span></html>
--
htmlNoDocType :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
htmlNoDocType = parent "<html" "</html>"
{-# INLINE htmlNoDocType #-}
-- | Combinator for the @\<i>@ element.
--
-- Example:
--
-- > i $ span $ text "foo"
--
-- Result:
--
-- > <i><span>foo</span></i>
--
i :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
i = parent "<i" "</i>"
{-# INLINE i #-}
-- | Combinator for the @\<iframe>@ element.
--
-- Example:
--
-- > iframe $ span $ text "foo"
--
-- Result:
--
-- > <iframe><span>foo</span></iframe>
--
iframe :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
iframe = parent "<iframe" "</iframe>"
{-# INLINE iframe #-}
-- | Combinator for the @\<img />@ element.
--
-- Example:
--
-- > img
--
-- Result:
--
-- > <img />
--
img :: Html a -- ^ Resulting HTML.
img = leaf "<img"
{-# INLINE img #-}
-- | Combinator for the @\<input />@ element.
--
-- Example:
--
-- > input
--
-- Result:
--
-- > <input />
--
input :: Html a -- ^ Resulting HTML.
input = leaf "<input"
{-# INLINE input #-}
-- | Combinator for the @\<ins>@ element.
--
-- Example:
--
-- > ins $ span $ text "foo"
--
-- Result:
--
-- > <ins><span>foo</span></ins>
--
ins :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
ins = parent "<ins" "</ins>"
{-# INLINE ins #-}
-- | Combinator for the @\<kbd>@ element.
--
-- Example:
--
-- > kbd $ span $ text "foo"
--
-- Result:
--
-- > <kbd><span>foo</span></kbd>
--
kbd :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
kbd = parent "<kbd" "</kbd>"
{-# INLINE kbd #-}
-- | Combinator for the @\<keygen>@ element.
--
-- Example:
--
-- > keygen $ span $ text "foo"
--
-- Result:
--
-- > <keygen><span>foo</span></keygen>
--
keygen :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
keygen = parent "<keygen" "</keygen>"
{-# INLINE keygen #-}
-- | Combinator for the @\<label>@ element.
--
-- Example:
--
-- > label $ span $ text "foo"
--
-- Result:
--
-- > <label><span>foo</span></label>
--
label :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
label = parent "<label" "</label>"
{-# INLINE label #-}
-- | Combinator for the @\<legend>@ element.
--
-- Example:
--
-- > legend $ span $ text "foo"
--
-- Result:
--
-- > <legend><span>foo</span></legend>
--
legend :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
legend = parent "<legend" "</legend>"
{-# INLINE legend #-}
-- | Combinator for the @\<li>@ element.
--
-- Example:
--
-- > li $ span $ text "foo"
--
-- Result:
--
-- > <li><span>foo</span></li>
--
li :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
li = parent "<li" "</li>"
{-# INLINE li #-}
-- | Combinator for the @\<link />@ element.
--
-- Example:
--
-- > link
--
-- Result:
--
-- > <link />
--
link :: Html a -- ^ Resulting HTML.
link = leaf "<link"
{-# INLINE link #-}
-- | Combinator for the @\<map>@ element.
--
-- Example:
--
-- > map $ span $ text "foo"
--
-- Result:
--
-- > <map><span>foo</span></map>
--
map :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
map = parent "<map" "</map>"
{-# INLINE map #-}
-- | Combinator for the @\<mark>@ element.
--
-- Example:
--
-- > mark $ span $ text "foo"
--
-- Result:
--
-- > <mark><span>foo</span></mark>
--
mark :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
mark = parent "<mark" "</mark>"
{-# INLINE mark #-}
-- | Combinator for the @\<menu>@ element.
--
-- Example:
--
-- > menu $ span $ text "foo"
--
-- Result:
--
-- > <menu><span>foo</span></menu>
--
menu :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
menu = parent "<menu" "</menu>"
{-# INLINE menu #-}
-- | Combinator for the @\<meta />@ element.
--
-- Example:
--
-- > meta
--
-- Result:
--
-- > <meta />
--
meta :: Html a -- ^ Resulting HTML.
meta = leaf "<meta"
{-# INLINE meta #-}
-- | Combinator for the @\<meter>@ element.
--
-- Example:
--
-- > meter $ span $ text "foo"
--
-- Result:
--
-- > <meter><span>foo</span></meter>
--
meter :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
meter = parent "<meter" "</meter>"
{-# INLINE meter #-}
-- | Combinator for the @\<nav>@ element.
--
-- Example:
--
-- > nav $ span $ text "foo"
--
-- Result:
--
-- > <nav><span>foo</span></nav>
--
nav :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
nav = parent "<nav" "</nav>"
{-# INLINE nav #-}
-- | Combinator for the @\<noscript>@ element.
--
-- Example:
--
-- > noscript $ span $ text "foo"
--
-- Result:
--
-- > <noscript><span>foo</span></noscript>
--
noscript :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
noscript = parent "<noscript" "</noscript>"
{-# INLINE noscript #-}
-- | Combinator for the @\<object>@ element.
--
-- Example:
--
-- > object $ span $ text "foo"
--
-- Result:
--
-- > <object><span>foo</span></object>
--
object :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
object = parent "<object" "</object>"
{-# INLINE object #-}
-- | Combinator for the @\<ol>@ element.
--
-- Example:
--
-- > ol $ span $ text "foo"
--
-- Result:
--
-- > <ol><span>foo</span></ol>
--
ol :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
ol = parent "<ol" "</ol>"
{-# INLINE ol #-}
-- | Combinator for the @\<optgroup>@ element.
--
-- Example:
--
-- > optgroup $ span $ text "foo"
--
-- Result:
--
-- > <optgroup><span>foo</span></optgroup>
--
optgroup :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
optgroup = parent "<optgroup" "</optgroup>"
{-# INLINE optgroup #-}
-- | Combinator for the @\<option>@ element.
--
-- Example:
--
-- > option $ span $ text "foo"
--
-- Result:
--
-- > <option><span>foo</span></option>
--
option :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
option = parent "<option" "</option>"
{-# INLINE option #-}
-- | Combinator for the @\<output>@ element.
--
-- Example:
--
-- > output $ span $ text "foo"
--
-- Result:
--
-- > <output><span>foo</span></output>
--
output :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
output = parent "<output" "</output>"
{-# INLINE output #-}
-- | Combinator for the @\<p>@ element.
--
-- Example:
--
-- > p $ span $ text "foo"
--
-- Result:
--
-- > <p><span>foo</span></p>
--
p :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
p = parent "<p" "</p>"
{-# INLINE p #-}
-- | Combinator for the @\<param />@ element.
--
-- Example:
--
-- > param
--
-- Result:
--
-- > <param />
--
param :: Html a -- ^ Resulting HTML.
param = leaf "<param"
{-# INLINE param #-}
-- | Combinator for the @\<pre>@ element.
--
-- Example:
--
-- > pre $ span $ text "foo"
--
-- Result:
--
-- > <pre><span>foo</span></pre>
--
pre :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
pre = parent "<pre" "</pre>"
{-# INLINE pre #-}
-- | Combinator for the @\<progress>@ element.
--
-- Example:
--
-- > progress $ span $ text "foo"
--
-- Result:
--
-- > <progress><span>foo</span></progress>
--
progress :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
progress = parent "<progress" "</progress>"
{-# INLINE progress #-}
-- | Combinator for the @\<q>@ element.
--
-- Example:
--
-- > q $ span $ text "foo"
--
-- Result:
--
-- > <q><span>foo</span></q>
--
q :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
q = parent "<q" "</q>"
{-# INLINE q #-}
-- | Combinator for the @\<rp>@ element.
--
-- Example:
--
-- > rp $ span $ text "foo"
--
-- Result:
--
-- > <rp><span>foo</span></rp>
--
rp :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
rp = parent "<rp" "</rp>"
{-# INLINE rp #-}
-- | Combinator for the @\<rt>@ element.
--
-- Example:
--
-- > rt $ span $ text "foo"
--
-- Result:
--
-- > <rt><span>foo</span></rt>
--
rt :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
rt = parent "<rt" "</rt>"
{-# INLINE rt #-}
-- | Combinator for the @\<ruby>@ element.
--
-- Example:
--
-- > ruby $ span $ text "foo"
--
-- Result:
--
-- > <ruby><span>foo</span></ruby>
--
ruby :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
ruby = parent "<ruby" "</ruby>"
{-# INLINE ruby #-}
-- | Combinator for the @\<samp>@ element.
--
-- Example:
--
-- > samp $ span $ text "foo"
--
-- Result:
--
-- > <samp><span>foo</span></samp>
--
samp :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
samp = parent "<samp" "</samp>"
{-# INLINE samp #-}
-- | Combinator for the @\<script>@ element.
--
-- Example:
--
-- > script $ span $ text "foo"
--
-- Result:
--
-- > <script><span>foo</span></script>
--
script :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
script = parent "<script" "</script>"
{-# INLINE script #-}
-- | Combinator for the @\<section>@ element.
--
-- Example:
--
-- > section $ span $ text "foo"
--
-- Result:
--
-- > <section><span>foo</span></section>
--
section :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
section = parent "<section" "</section>"
{-# INLINE section #-}
-- | Combinator for the @\<select>@ element.
--
-- Example:
--
-- > select $ span $ text "foo"
--
-- Result:
--
-- > <select><span>foo</span></select>
--
select :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
select = parent "<select" "</select>"
{-# INLINE select #-}
-- | Combinator for the @\<small>@ element.
--
-- Example:
--
-- > small $ span $ text "foo"
--
-- Result:
--
-- > <small><span>foo</span></small>
--
small :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
small = parent "<small" "</small>"
{-# INLINE small #-}
-- | Combinator for the @\<source>@ element.
--
-- Example:
--
-- > source $ span $ text "foo"
--
-- Result:
--
-- > <source><span>foo</span></source>
--
source :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
source = parent "<source" "</source>"
{-# INLINE source #-}
-- | Combinator for the @\<span>@ element.
--
-- Example:
--
-- > span $ span $ text "foo"
--
-- Result:
--
-- > <span><span>foo</span></span>
--
span :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
span = parent "<span" "</span>"
{-# INLINE span #-}
-- | Combinator for the @\<strong>@ element.
--
-- Example:
--
-- > strong $ span $ text "foo"
--
-- Result:
--
-- > <strong><span>foo</span></strong>
--
strong :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
strong = parent "<strong" "</strong>"
{-# INLINE strong #-}
-- | Combinator for the @\<style>@ element.
--
-- Example:
--
-- > style $ span $ text "foo"
--
-- Result:
--
-- > <style><span>foo</span></style>
--
style :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
style = parent "<style" "</style>"
{-# INLINE style #-}
-- | Combinator for the @\<sub>@ element.
--
-- Example:
--
-- > sub $ span $ text "foo"
--
-- Result:
--
-- > <sub><span>foo</span></sub>
--
sub :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
sub = parent "<sub" "</sub>"
{-# INLINE sub #-}
-- | Combinator for the @\<summary>@ element.
--
-- Example:
--
-- > summary $ span $ text "foo"
--
-- Result:
--
-- > <summary><span>foo</span></summary>
--
summary :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
summary = parent "<summary" "</summary>"
{-# INLINE summary #-}
-- | Combinator for the @\<sup>@ element.
--
-- Example:
--
-- > sup $ span $ text "foo"
--
-- Result:
--
-- > <sup><span>foo</span></sup>
--
sup :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
sup = parent "<sup" "</sup>"
{-# INLINE sup #-}
-- | Combinator for the @\<table>@ element.
--
-- Example:
--
-- > table $ span $ text "foo"
--
-- Result:
--
-- > <table><span>foo</span></table>
--
table :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
table = parent "<table" "</table>"
{-# INLINE table #-}
-- | Combinator for the @\<tbody>@ element.
--
-- Example:
--
-- > tbody $ span $ text "foo"
--
-- Result:
--
-- > <tbody><span>foo</span></tbody>
--
tbody :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
tbody = parent "<tbody" "</tbody>"
{-# INLINE tbody #-}
-- | Combinator for the @\<td>@ element.
--
-- Example:
--
-- > td $ span $ text "foo"
--
-- Result:
--
-- > <td><span>foo</span></td>
--
td :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
td = parent "<td" "</td>"
{-# INLINE td #-}
-- | Combinator for the @\<textarea>@ element.
--
-- Example:
--
-- > textarea $ span $ text "foo"
--
-- Result:
--
-- > <textarea><span>foo</span></textarea>
--
textarea :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
textarea = parent "<textarea" "</textarea>"
{-# INLINE textarea #-}
-- | Combinator for the @\<tfoot>@ element.
--
-- Example:
--
-- > tfoot $ span $ text "foo"
--
-- Result:
--
-- > <tfoot><span>foo</span></tfoot>
--
tfoot :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
tfoot = parent "<tfoot" "</tfoot>"
{-# INLINE tfoot #-}
-- | Combinator for the @\<th>@ element.
--
-- Example:
--
-- > th $ span $ text "foo"
--
-- Result:
--
-- > <th><span>foo</span></th>
--
th :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
th = parent "<th" "</th>"
{-# INLINE th #-}
-- | Combinator for the @\<thead>@ element.
--
-- Example:
--
-- > thead $ span $ text "foo"
--
-- Result:
--
-- > <thead><span>foo</span></thead>
--
thead :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
thead = parent "<thead" "</thead>"
{-# INLINE thead #-}
-- | Combinator for the @\<time>@ element.
--
-- Example:
--
-- > time $ span $ text "foo"
--
-- Result:
--
-- > <time><span>foo</span></time>
--
time :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
time = parent "<time" "</time>"
{-# INLINE time #-}
-- | Combinator for the @\<title>@ element.
--
-- Example:
--
-- > title $ span $ text "foo"
--
-- Result:
--
-- > <title><span>foo</span></title>
--
title :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
title = parent "<title" "</title>"
{-# INLINE title #-}
-- | Combinator for the @\<tr>@ element.
--
-- Example:
--
-- > tr $ span $ text "foo"
--
-- Result:
--
-- > <tr><span>foo</span></tr>
--
tr :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
tr = parent "<tr" "</tr>"
{-# INLINE tr #-}
-- | Combinator for the @\<ul>@ element.
--
-- Example:
--
-- > ul $ span $ text "foo"
--
-- Result:
--
-- > <ul><span>foo</span></ul>
--
ul :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
ul = parent "<ul" "</ul>"
{-# INLINE ul #-}
-- | Combinator for the @\<var>@ element.
--
-- Example:
--
-- > var $ span $ text "foo"
--
-- Result:
--
-- > <var><span>foo</span></var>
--
var :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
var = parent "<var" "</var>"
{-# INLINE var #-}
-- | Combinator for the @\<video>@ element.
--
-- Example:
--
-- > video $ span $ text "foo"
--
-- Result:
--
-- > <video><span>foo</span></video>
--
video :: Html a -- ^ Inner HTML.
-> Html b -- ^ Resulting HTML.
video = parent "<video" "</video>"
{-# INLINE video #-}