Source codeContentsIndex
Typeful.Text.HTMLs
Contents
General combinators
allowed_in class for strings
other allowed_in clases
Attribute possession classes
identity classes for elements that have nesting restrictions
HtmlTop type to manage the overloading of head elements
xhtml element generating functions
Attribute setters
insertion functions for style and script elements
Description

[x]html combinators that statically guarantee that the output will conform to the xhtml1-strict.dtd (and html-strict.dtd), including the restrictions on nesting — see Typeful.Text.HTMLs.Types.DocTree)

Rather than one Html type, we have Html (for the outermost structure) and Block, Flow, Inline, ... which represent the "content models" (contexts) of html. Each element E is then inserted by use of the member e of the class E_allowed_in, which has instances for each context in which the element E is allowed.

The chief differences in use from Text.XHtml.Strict are

  1. The overloading is "inside out"; combinators are overloaded on their results rather than their arguments.
  2. This means that strings have to be inserted with string
  3. where an element is required to have more than one child, they need to be supplied as a tuple.
  4. empty elements take empty rather than "". In fact any element that is permitted to be empty can take empty as its content.
  5. There are two combinators to produce map elements. map_areas that takes a nonempty list of area elements and map_block that takes a nonempty list of block elements. This is because I can't see a way of making the overloading (given the fourteen argument complication) insert the right one (Map_ can't legitimately be made an instance of Appendable)
  6. Most of the element generating combinators return values wrapped in an arbitrary Monad, so if you generate lists of elements programmatically, you'll find you need to use something like foldr (+++) [] or foldr1 (+++) and/or force a particular monad (eg Only) and extract from that. So to make a single Tr, you might use sole (tr << …)
Synopsis
module Typeful.Text.HTMLs.Types.DocTree
module Typeful.Text.HTMLs.CharacterEntities
module Typeful.Text.JavaScript
module Typeful.Text.ECMAScript
module Typeful.Text.Css
(<<) :: ([a] -> t -> t1) -> t -> t1
(!) :: ([a] -> t) -> [a] -> [a] -> t
class HCM t => String_allowed_in t where
string :: Monad m => String -> m (t a big button fieldset form img input label object select small sub sup textarea)
class Tr_allowed_in t where
tr :: Monad m => [Tr_Attrs -> Tr_Attrs] -> List1 (Th_or_Td a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
class HCM t => A_allowed_in t
class HCM t => Object_allowed_in t
class HCM t => Img_allowed_in t
class Param_allowed_in t where
param :: Monad m => [Param_Attrs -> Param_Attrs] -> () -> m t
class Legend_allowed_in t where
legend :: Monad m => [Legend_Attrs -> Legend_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
class Title_allowed_in t where
title :: [Title_Attrs -> Title_Attrs] -> String -> t
class Area_allowed_in t where
area :: [Area_Attrs -> Area_Attrs] -> () -> t
class HCM t => Li_allowed_in t
class Thead_allowed_in t where
thead :: Monad m => [Tr_Attrs -> Tr_Attrs] -> List1 (Tr a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
class HCM t => Tfoot_allowed_in t where
tfoot :: Monad m => [Tr_Attrs -> Tr_Attrs] -> List1 (Tr a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
class Caption_allowed_in t where
caption :: Monad m => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
class Col_allowed_in t where
col :: Monad m => [Col_Attrs -> Col_Attrs] -> () -> m t
class Colgroup_allowed_in t where
colgroup :: Monad m => [Col_Attrs -> Col_Attrs] -> [Col] -> m t
class Tbody_allowed_in t where
tbody :: Monad m => [Tr_Attrs -> Tr_Attrs] -> List1 (Tr a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
class Option_allowed_in t where
option :: [Option_Attrs -> Option_Attrs] -> String -> t
class Optgroup_allowed_in t where
optgroup :: [Optgroup_Attrs -> Optgroup_Attrs] -> List1 Option -> t
class HCM t => Dt_allowed_in t
class HCM t => Dd_allowed_in t
class HCM t => Td_allowed_in t
class HCM t => Th_allowed_in t
class HCM t => Button_allowed_in t
class HCM t => Label_allowed_in t
class HCM t => Textarea_allowed_in t where
textarea :: (Is_Textarea textarea, Monad m) => [Textarea_Attrs -> Textarea_Attrs] -> String -> m (t a big button fieldset form img input label object select small sub sup textarea)
class HCM t => Select_allowed_in t where
select :: (Is_Select select, Monad m) => [Select_Attrs -> Select_Attrs] -> List1 Select_ -> m (t a big button fieldset form img input label object select small sub sup textarea)
class HCM t => Input_allowed_in t
class HCM t => Sup_allowed_in t
class HCM t => Sub_allowed_in t
class HCM t => Acronym_allowed_in t
class HCM t => Abbr_allowed_in t
class HCM t => Cite_allowed_in t
class HCM t => Var_allowed_in t
class HCM t => Kbd_allowed_in t
class HCM t => Samp_allowed_in t
class HCM t => Q_allowed_in t
class HCM t => Code_allowed_in t
class HCM t => Dfn_allowed_in t
class HCM t => Strong_allowed_in t
class HCM t => Em_allowed_in t
class HCM t => Small_allowed_in t
class HCM t => Big_allowed_in t
class HCM t => B_allowed_in t
class HCM t => I_allowed_in t
class HCM t => Tt_allowed_in t
class HCM t => Map_allowed_in t where
map_block :: Monad m => [Map_Attrs -> Map_Attrs] -> List1 (Block a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
map_areas :: Monad m => [Map_Attrs -> Map_Attrs] -> List1 Area -> m (t a big button fieldset form img input label object select small sub sup textarea)
class HCM t => Bdo_allowed_in t
class HCM t => Span_allowed_in t
class HCM t => Br_allowed_in t
class HCM t => Del_allowed_in t
class HCM t => Ins_allowed_in t
class HCM t => Noscript_allowed_in t
class HCM t => Form_allowed_in t
class Table_allowed_in t where
table :: Monad m => [Table_Attrs -> Table_Attrs] -> (Only (TableTop a big button fieldset form img input label object select small sub sup textarea), Only (Tbodies_or_Trs a big button fieldset form img input label object select small sub sup textarea)) -> m (t a big button fieldset form img input label object select small sub sup textarea)
class HCM t => Fieldset_allowed_in t
class HCM t => Address_allowed_in t
class HCM t => Blockquote_allowed_in t
class HCM t => Hr_allowed_in t
class HCM t => Pre_allowed_in t
class HCM t => Dl_allowed_in t
class HCM t => Ol_allowed_in t
class HCM t => Ul_allowed_in t
class HCM t => Div_allowed_in t
class HCM t => H6_allowed_in t
class HCM t => H5_allowed_in t
class HCM t => H4_allowed_in t
class HCM t => H3_allowed_in t
class HCM t => H2_allowed_in t
class HCM t => H1_allowed_in t
class HCM t => P_allowed_in t
class HCM t => Base_allowed_in t
class HCM t => Link_allowed_in t
class HCM t => Meta_allowed_in t
class HCM t => Style_allowed_in t
class HCM t => Script_allowed_in t
class Has_Lang t
class Has_Xml'lang t
class Has_Dir t
class Has_Id t
class Has_Xmlns t
class Has_Profile t
class Has_Class t
class Has_Style t
class Has_Title t
class Has_Onclick t
class Has_Ondblclick t
class Has_Onmousedown t
class Has_Onmouseup t
class Has_Onmouseover t
class Has_Onmousemove t
class Has_Onmouseout t
class Has_Onkeypress t
class Has_Onkeydown t
class Has_Onkeyup t
class Has_Onload t
class Has_Onunload t
class Has_Charset t
class Has_Type t
class Has_Src t
class Has_Defer t
class Has_Xml'space t
class Has_Media t
class Has_Http_equiv t
class Has_Name t
class Has_Content t
class Has_Scheme t
class Has_Href t
class Has_Hreflang t
class Has_Rel t
class Has_Rev t
class Has_Declare t
class Has_Classid t
class Has_Codebase t
class Has_Data t
class Has_Codetype t
class Has_Archive t
class Has_Standby t
class Has_Height t
class Has_Width t
class Has_Usemap t
class Has_Tabindex t
class Has_Cite t
class Has_Summary t
class Has_Border t
class Has_Frame t
class Has_Rules t
class Has_Cellspacing t
class Has_Cellpadding t
class Has_Action t
class Has_Method t
class Has_Enctype t
class Has_Onsubmit t
class Has_Onreset t
class Has_Accept t
class Has_Accept_charset t
class Has_Datetime t
UTCTime (UTCTime, utctDay, utctDayTime)
class Has_Accesskey t
class Has_Onfocus t
class Has_Onblur t
class Has_Shape t
class Has_Alt t
class Has_Longdesc t
class Has_Ismap t
class Has_InputType t
class Has_Value t
class Has_Checked t
class Has_Disabled t
class Has_Readonly t
class Has_Size t
class Has_Maxlength t
class Has_Onselect t
class Has_Onchange t
class Has_Multiple t
class Has_Rows t
class Has_Cols t
class Has_For t
class Has_ButtonType t
class Has_Valuetype t
class Has_Span t
class Has_Align t
class Has_Char t
class Has_Charoff t
class Has_Valign t
class Has_Abbr t
class Has_Axis t
class Has_Headers t
class Has_Scope t
class Has_Rowspan t
class Has_Colspan t
class Has_Nohref t
class Has_Label t
class Has_Selected t
class Is_A a
class Is_Img a
class Is_Small a
class Is_Big a
class Is_Input a
class Is_Sub a
class Is_Button a
class Is_Label a
class Is_Sup a
class Is_Fieldset a
class Is_Object a
class Is_Textarea a
class Is_Form a
class Is_Select a
data HtmlTop a big button fieldset form img input label object select small sub sup textarea = HtmlTop (Maybe Base) [Head_ a big button fieldset form img input label object select small sub sup textarea]
data TableTop a big button fieldset form img input label object select small sub sup textarea = TableTop (Maybe (Caption a big button fieldset form img input label object select small sub sup textarea)) Cols_or_Colgroups (Maybe (Thead a big button fieldset form img input label object select small sub sup textarea)) (Maybe (Tfoot a big button fieldset form img input label object select small sub sup textarea))
html :: [Html_Attrs -> Html_Attrs] -> (Head, Body) -> Html
head :: [Head_Attrs -> Head_Attrs] -> (Title, Only (HtmlTop A Big Button Fieldset Form Img Input Label Object Select Small Sub Sup Textarea)) -> Head
body :: [Body_Attrs -> Body_Attrs] -> [Block A Big Button Fieldset Form Img Input Label Object Select Small Sub Sup Textarea] -> Body
script :: (Script_allowed_in t, Monad m) => [Script_Attrs -> Script_Attrs] -> ScriptContent -> m (t a big button fieldset form img input label object select small sub sup textarea)
style :: (Style_allowed_in t, Monad m) => [Style_Attrs -> Style_Attrs] -> StyleContent -> m (t a big button fieldset form img input label object select small sub sup textarea)
meta :: (Meta_allowed_in t, Monad m) => [Meta_Attrs -> Meta_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
link :: (Link_allowed_in t, Monad m) => [Link_Attrs -> Link_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
object :: (Object_allowed_in t, Is_Object object, Monad m) => [Object_Attrs -> Object_Attrs] -> (Maybe Param, [Flow a big button fieldset form img input label object select small sub sup textarea]) -> m (t a big button fieldset form img input label object select small sub sup textarea)
base :: (Base_allowed_in t, Monad m) => [Base_Attrs -> Base_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
p :: (P_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h1 :: (H1_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h2 :: (H2_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h3 :: (H3_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h4 :: (H4_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h5 :: (H5_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h6 :: (H6_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
div :: (Div_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Flow a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
ul :: (Ul_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> List1 (Li_ a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
ol :: (Ol_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> List1 (Li_ a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
dl :: (Dl_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> List1 (Dl_ a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
pre :: (Pre_allowed_in t, Monad m) => [Pre_Attrs -> Pre_Attrs] -> [Inline a Big_not_allowed_in_Pre button fieldset form Img_not_allowed_in_Pre input label Object_not_allowed_in_Pre select Small_not_allowed_in_Pre Sub_not_allowed_in_Pre Sup_not_allowed_in_Pre textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
hr :: (Hr_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
blockquote :: (Blockquote_allowed_in t, Monad m) => [Quote_Attrs -> Quote_Attrs] -> [Block a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
address :: (Address_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
fieldset :: (Fieldset_allowed_in t, Is_Fieldset fieldset, Monad m) => [General_Attrs -> General_Attrs] -> (Maybe (Legend a big button fieldset form img input label object select small sub sup textarea), [Flow a big button fieldset form img input label object select small sub sup textarea]) -> m (t a big button fieldset form img input label object select small sub sup textarea)
form :: (Form_allowed_in t, Is_Form form, Monad m) => [Form_Attrs -> Form_Attrs] -> [Block a big button fieldset Form_not_allowed_in_Form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
noscript :: (Noscript_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Block a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
ins :: (Ins_allowed_in t, Monad m) => [InsDel_Attrs -> InsDel_Attrs] -> [t a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
del :: (Del_allowed_in t, Monad m) => [InsDel_Attrs -> InsDel_Attrs] -> [t a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
a :: (A_allowed_in t, Is_A a, Monad m) => [A_Attrs -> A_Attrs] -> [Inline A_not_allowed_in_A big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
br :: (Br_allowed_in t, Monad m) => [Br_Attrs -> Br_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
span :: (Span_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
bdo :: (Bdo_allowed_in t, Monad m) => [Bdo_Attrs -> Bdo_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
img :: (Img_allowed_in t, Is_Img img, Monad m) => [Img_Attrs -> Img_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
tt :: (Tt_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
i :: (I_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
b :: (B_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
big :: (Big_allowed_in t, Is_Big big, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
small :: (Small_allowed_in t, Is_Small small, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
em :: (Em_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
strong :: (Strong_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
dfn :: (Dfn_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
code :: (Code_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
q :: (Q_allowed_in t, Monad m) => [Quote_Attrs -> Quote_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
samp :: (Samp_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
kbd :: (Kbd_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
var :: (Var_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
cite :: (Cite_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
abbr :: (Abbr_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
acronym :: (Acronym_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
sub :: (Sub_allowed_in t, Is_Sub sub, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
sup :: (Sup_allowed_in t, Is_Sup sup, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
input :: (Input_allowed_in t, Is_Input input, Monad m) => [Input_Attrs -> Input_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
label :: (Label_allowed_in t, Is_Label label, Monad m) => [Label_Attrs -> Label_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
button :: (Button_allowed_in t, Is_Button button, Monad m) => [Button_Attrs -> Button_Attrs] -> [Flow A_not_allowed_in_Button big Button_not_allowed_in_Button Fieldset_not_allowed_in_Button Form_not_allowed_in_Button img Input_not_allowed_in_Button Label_not_allowed_in_Button object Select_not_allowed_in_Button small sub sup Textarea_not_allowed_in_Button] -> m (t a big button fieldset form img input label object select small sub sup textarea)
th :: (Th_allowed_in t, Monad m) => [ThTd_Attrs -> ThTd_Attrs] -> [Flow a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
td :: (Td_allowed_in t, Monad m) => [ThTd_Attrs -> ThTd_Attrs] -> [Flow a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
li :: (Li_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Flow a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
dd :: (Dd_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Flow a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
dt :: (Dt_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
theabbr :: Has_Abbr t => String -> t -> t
accept :: Has_Accept t => ContentTypes -> t -> t
accept_charset :: Has_Accept_charset t => Charsets -> t -> t
accesskey :: Has_Accesskey t => Char -> t -> t
action :: Has_Action t => URI -> t -> t
align :: Has_Align t => Align -> t -> t
alt :: Has_Alt t => String -> t -> t
archive :: Has_Archive t => UriList -> t -> t
axis :: Has_Axis t => String -> t -> t
border :: Has_Border t => Pixels -> t -> t
buttontype :: Has_ButtonType t => Button_type -> t -> t
cellpadding :: Has_Cellpadding t => Length -> t -> t
cellspacing :: Has_Cellspacing t => Length -> t -> t
thechar :: Has_Char t => Char -> t -> t
charoff :: Has_Charoff t => Length -> t -> t
charset :: Has_Charset t => Charset -> t -> t
checked :: Has_Checked t => Input_checked -> t -> t
thecite :: Has_Cite t => URI -> t -> t
theclass :: Has_Class t => String -> t -> t
classid :: Has_Classid t => URI -> t -> t
codebase :: Has_Codebase t => URI -> t -> t
codetype :: Has_Codetype t => ContentType -> t -> t
cols :: Has_Cols t => Number -> t -> t
colspan :: Has_Colspan t => Number -> t -> t
content :: Has_Content t => String -> t -> t
thedata :: Has_Data t => URI -> t -> t
datetime :: Has_Datetime t => UTCTime -> t -> t
declare :: Has_Declare t => t -> t
defer :: Has_Defer t => Script_defer -> t -> t
dir :: Has_Dir t => Dir -> t -> t
disabled :: Has_Disabled t => t -> t
enctype :: Has_Enctype t => ContentType -> t -> t
for :: Has_For t => IDREF -> t -> t
frame :: Has_Frame t => Table_frame -> t -> t
headers :: Has_Headers t => IDREFS -> t -> t
height :: Has_Height t => Length -> t -> t
href :: Has_Href t => URI -> t -> t
hreflang :: Has_Hreflang t => LanguageCode -> t -> t
http_equiv :: Has_Http_equiv t => String -> t -> t
id :: Has_Id t => String -> t -> t
inputtype :: Has_InputType t => Input_type -> t -> t
ismap :: Has_Ismap t => t -> t
thelabel :: Has_Label t => String -> t -> t
lang :: Has_Lang t => LanguageCode -> t -> t
longdesc :: Has_Longdesc t => URI -> t -> t
maxlength :: Has_Maxlength t => Number -> t -> t
media :: Has_Media t => MediaDescs -> t -> t
method :: Has_Method t => Form_method -> t -> t
multiple :: Has_Multiple t => t -> t
name :: Has_Name t => String -> t -> t
nohref :: Has_Nohref t => t -> t
onblur :: Has_Onblur t => String -> t -> t
onchange :: Has_Onchange t => String -> t -> t
onclick :: Has_Onclick t => String -> t -> t
ondblclick :: Has_Ondblclick t => String -> t -> t
onfocus :: Has_Onfocus t => String -> t -> t
onkeydown :: Has_Onkeydown t => String -> t -> t
onkeypress :: Has_Onkeypress t => String -> t -> t
onkeyup :: Has_Onkeyup t => String -> t -> t
onload :: Has_Onload t => String -> t -> t
onmousedown :: Has_Onmousedown t => String -> t -> t
onmousemove :: Has_Onmousemove t => String -> t -> t
onmouseout :: Has_Onmouseout t => String -> t -> t
onmouseover :: Has_Onmouseover t => String -> t -> t
onmouseup :: Has_Onmouseup t => String -> t -> t
onreset :: Has_Onreset t => String -> t -> t
onselect :: Has_Onselect t => String -> t -> t
onsubmit :: Has_Onsubmit t => String -> t -> t
onunload :: Has_Onunload t => String -> t -> t
profile :: Has_Profile t => URI -> t -> t
readonly :: Has_Readonly t => t -> t
rel :: Has_Rel t => LinkTypes -> t -> t
rev :: Has_Rev t => LinkTypes -> t -> t
rows :: Has_Rows t => Number -> t -> t
rowspan :: Has_Rowspan t => Number -> t -> t
rules :: Has_Rules t => Table_rules -> t -> t
scheme :: Has_Scheme t => String -> t -> t
scope :: Has_Scope t => Scope -> t -> t
selected :: Has_Selected t => t -> t
shape :: Has_Shape t => Shape -> t -> t
size :: Has_Size t => Number -> t -> t
thespan :: Has_Span t => Number -> t -> t
src :: Has_Src t => URI -> t -> t
standby :: Has_Standby t => String -> t -> t
thestyle :: Has_Style t => String -> t -> t
summary :: Has_Summary t => String -> t -> t
tabindex :: Has_Tabindex t => Number -> t -> t
thetitle :: Has_Title t => String -> t -> t
thetype :: Has_Type t => ContentType -> t -> t
usemap :: Has_Usemap t => URI -> t -> t
valign :: Has_Valign t => Valign -> t -> t
value :: Has_Value t => String -> t -> t
valuetype :: Has_Valuetype t => Param_valuetype -> t -> t
width :: Has_Width t => Length -> t -> t
xml'lang :: Has_Xml'lang t => LanguageCode -> t -> t
xml'space_preserve :: Has_Xml'space t => t -> t
xmlns :: Has_Xmlns t => t -> t
frame_void :: Has_Frame t => t -> t
frame_above :: Has_Frame t => t -> t
frame_below :: Has_Frame t => t -> t
frame_hsides :: Has_Frame t => t -> t
frame_lhs :: Has_Frame t => t -> t
frame_rhs :: Has_Frame t => t -> t
frame_vsides :: Has_Frame t => t -> t
frame_box :: Has_Frame t => t -> t
frame_border :: Has_Frame t => t -> t
rules_none :: Has_Rules t => t -> t
rules_groups :: Has_Rules t => t -> t
rules_rows :: Has_Rules t => t -> t
rules_cols :: Has_Rules t => t -> t
rules_all :: Has_Rules t => t -> t
get :: Form_method
post :: Form_method
rect :: Length -> Length -> Length -> Length -> Shape
circle :: Length -> Length -> Length -> Shape
poly :: [(Length, Length)] -> Shape
buttontype_button :: Has_ButtonType t => t -> t
buttontype_submit :: Has_ButtonType t => t -> t
buttontype_reset :: Has_ButtonType t => t -> t
inputtype_text :: Has_InputType t => t -> t
inputtype_password :: Has_InputType t => t -> t
inputtype_checkbox :: Has_InputType t => t -> t
inputtype_radio :: Has_InputType t => t -> t
inputtype_submit :: Has_InputType t => t -> t
inputtype_reset :: Has_InputType t => t -> t
inputtype_file :: Has_InputType t => t -> t
inputtype_hidden :: Has_InputType t => t -> t
inputtype_image :: Has_InputType t => t -> t
inputtype_button :: Has_InputType t => t -> t
valuetype_data :: Has_Valuetype t => t -> t
valuetype_ref :: Has_Valuetype t => t -> t
valuetype_object :: Has_Valuetype t => t -> t
align_left :: Has_Align t => t -> t
align_center :: Has_Align t => t -> t
align_right :: Has_Align t => t -> t
align_justify :: Has_Align t => t -> t
align_char :: Has_Align t => t -> t
valign_top :: Has_Valign t => t -> t
valign_middle :: Has_Valign t => t -> t
valign_bottom :: Has_Valign t => t -> t
valign_baseline :: Has_Valign t => t -> t
scope_row :: Has_Scope t => t -> t
scope_col :: Has_Scope t => t -> t
scope_rowgroup :: Has_Scope t => t -> t
scope_colgroup :: Has_Scope t => t -> t
class Has_button_types t where
type_reset :: t -> t
type_button :: t -> t
type_submit :: t -> t
css :: String -> StyleContent
javaScript :: String -> ScriptContent
ecmaScript :: String -> ScriptContent
Documentation
module Typeful.Text.HTMLs.Types.DocTree
module Typeful.Text.HTMLs.CharacterEntities
module Typeful.Text.JavaScript
module Typeful.Text.ECMAScript
module Typeful.Text.Css
General combinators
(<<) :: ([a] -> t -> t1) -> t -> t1

supply some content to an element

example

     p '<<' string "something"

produces p>something</p

(!) :: ([a] -> t) -> [a] -> [a] -> t

Supply attributes to an element

Attributes currently take the form of a list of functions that are applied to an empty element of an attribute type, so

  p![theclass "classy", thestyle "color: blue"]<< string content

corresponds to the html

<p class="classy" thestyle="color: blue">content</p>

I'm considering changing this so that the presence of mandatory attributes can be enforced (rather than merely emitting an empty value as at present). To do that requires parameterised types representing attribute lists, and attribute setters that change the type of the attribute list, so we would have to compose functions instead of making a list, making it look like this:

  p!(theclass "classy". style "color: blue")
allowed_in class for strings
class HCM t => String_allowed_in t where

Each entity has an "_allowed_in" class (most of them are generated by template haskell, which Haddock cannot currently understand, so not documented yet. String is a special case. Strings are allowed in Inline and Flow contexts

convert a String to the type required by a context. The String may be any Haskell string and it will be escaped as necessary when rendered. ie each Char corresponds to one character datum in the resulting html.

Methods
string :: Monad m => String -> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
other allowed_in clases
class Tr_allowed_in t where
tr element
Methods
tr :: Monad m => [Tr_Attrs -> Tr_Attrs] -> List1 (Th_or_Td a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
class HCM t => A_allowed_in t
show/hide Instances
class HCM t => Object_allowed_in t
show/hide Instances
class HCM t => Img_allowed_in t
show/hide Instances
class Param_allowed_in t where
param element
Methods
param :: Monad m => [Param_Attrs -> Param_Attrs] -> () -> m t
show/hide Instances
class Legend_allowed_in t where
legend element
Methods
legend :: Monad m => [Legend_Attrs -> Legend_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
class Title_allowed_in t where
title element
Methods
title
:: [Title_Attrs -> Title_Attrs]
-> Stringa list of unencoded character data that will be escaped on output
-> t
show/hide Instances
class Area_allowed_in t where
area element
Methods
area :: [Area_Attrs -> Area_Attrs] -> () -> t
show/hide Instances
class HCM t => Li_allowed_in t
show/hide Instances
class Thead_allowed_in t where
thead element
Methods
thead :: Monad m => [Tr_Attrs -> Tr_Attrs] -> List1 (Tr a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
class HCM t => Tfoot_allowed_in t where
tfoot element
Methods
tfoot :: Monad m => [Tr_Attrs -> Tr_Attrs] -> List1 (Tr a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
class Caption_allowed_in t where
caption element
Methods
caption :: Monad m => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
class Col_allowed_in t where
col element
Methods
col :: Monad m => [Col_Attrs -> Col_Attrs] -> () -> m t
show/hide Instances
Col_allowed_in Col
Col_allowed_in (TableTop a big button fieldset form img input label object select small sub sup textarea)
class Colgroup_allowed_in t where
colgroup element
Methods
colgroup :: Monad m => [Col_Attrs -> Col_Attrs] -> [Col] -> m t
show/hide Instances
Colgroup_allowed_in Colgroup
Colgroup_allowed_in (TableTop a big button fieldset form img input label object select small sub sup textarea)
class Tbody_allowed_in t where
tbody element
Methods
tbody :: Monad m => [Tr_Attrs -> Tr_Attrs] -> List1 (Tr a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
class Option_allowed_in t where
option element
Methods
option
:: [Option_Attrs -> Option_Attrs]
-> Stringa list of unencoded character data that will be escaped on output
-> t
show/hide Instances
class Optgroup_allowed_in t where
optgroup element
Methods
optgroup :: [Optgroup_Attrs -> Optgroup_Attrs] -> List1 Option -> t
show/hide Instances
class HCM t => Dt_allowed_in t
show/hide Instances
class HCM t => Dd_allowed_in t
show/hide Instances
class HCM t => Td_allowed_in t
show/hide Instances
class HCM t => Th_allowed_in t
show/hide Instances
class HCM t => Button_allowed_in t
show/hide Instances
class HCM t => Label_allowed_in t
show/hide Instances
class HCM t => Textarea_allowed_in t where
textarea element
Methods
textarea
:: (Is_Textarea textarea, Monad m)
=> [Textarea_Attrs -> Textarea_Attrs]
-> Stringa list of unencoded character data that will be escaped on output
-> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
class HCM t => Select_allowed_in t where
select element
Methods
select :: (Is_Select select, Monad m) => [Select_Attrs -> Select_Attrs] -> List1 Select_ -> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
class HCM t => Input_allowed_in t
show/hide Instances
class HCM t => Sup_allowed_in t
show/hide Instances
class HCM t => Sub_allowed_in t
show/hide Instances
class HCM t => Acronym_allowed_in t
show/hide Instances
class HCM t => Abbr_allowed_in t
show/hide Instances
class HCM t => Cite_allowed_in t
show/hide Instances
class HCM t => Var_allowed_in t
show/hide Instances
class HCM t => Kbd_allowed_in t
show/hide Instances
class HCM t => Samp_allowed_in t
show/hide Instances
class HCM t => Q_allowed_in t
show/hide Instances
class HCM t => Code_allowed_in t
show/hide Instances
class HCM t => Dfn_allowed_in t
show/hide Instances
class HCM t => Strong_allowed_in t
show/hide Instances
class HCM t => Em_allowed_in t
show/hide Instances
class HCM t => Small_allowed_in t
show/hide Instances
class HCM t => Big_allowed_in t
show/hide Instances
class HCM t => B_allowed_in t
show/hide Instances
class HCM t => I_allowed_in t
show/hide Instances
class HCM t => Tt_allowed_in t
show/hide Instances
class HCM t => Map_allowed_in t where

map element

Unfortunately I'm too dull-witted at this point to arrange things so that recognition of what type of thing is being passed to map is automatic, so that you have to use map_areas if you are using a map made of area elements, or map_block if you are using a map made of block elements.

Methods
map_block :: Monad m => [Map_Attrs -> Map_Attrs] -> List1 (Block a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
map_areas :: Monad m => [Map_Attrs -> Map_Attrs] -> List1 Area -> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
class HCM t => Bdo_allowed_in t
show/hide Instances
class HCM t => Span_allowed_in t
show/hide Instances
class HCM t => Br_allowed_in t
show/hide Instances
class HCM t => Del_allowed_in t
show/hide Instances
class HCM t => Ins_allowed_in t
show/hide Instances
class HCM t => Noscript_allowed_in t
show/hide Instances
class HCM t => Form_allowed_in t
show/hide Instances
class Table_allowed_in t where

table element

The table combinator takes a pair of arguments, the header part (represented by the type TableTop), which may be empty and the body part, which is either at least one tbody or at least one tr.

Methods
table :: Monad m => [Table_Attrs -> Table_Attrs] -> (Only (TableTop a big button fieldset form img input label object select small sub sup textarea), Only (Tbodies_or_Trs a big button fieldset form img input label object select small sub sup textarea)) -> m (t a big button fieldset form img input label object select small sub sup textarea)
show/hide Instances
class HCM t => Fieldset_allowed_in t
show/hide Instances
class HCM t => Address_allowed_in t
show/hide Instances
class HCM t => Blockquote_allowed_in t
show/hide Instances
class HCM t => Hr_allowed_in t
show/hide Instances
class HCM t => Pre_allowed_in t
show/hide Instances
class HCM t => Dl_allowed_in t
show/hide Instances
class HCM t => Ol_allowed_in t
show/hide Instances
class HCM t => Ul_allowed_in t
show/hide Instances
class HCM t => Div_allowed_in t
show/hide Instances
class HCM t => H6_allowed_in t
show/hide Instances
class HCM t => H5_allowed_in t
show/hide Instances
class HCM t => H4_allowed_in t
show/hide Instances
class HCM t => H3_allowed_in t
show/hide Instances
class HCM t => H2_allowed_in t
show/hide Instances
class HCM t => H1_allowed_in t
show/hide Instances
class HCM t => P_allowed_in t
show/hide Instances
class HCM t => Base_allowed_in t
show/hide Instances
class HCM t => Link_allowed_in t
show/hide Instances
class HCM t => Meta_allowed_in t
show/hide Instances
class HCM t => Style_allowed_in t
show/hide Instances
class HCM t => Script_allowed_in t
show/hide Instances
Attribute possession classes
class Has_Lang t
show/hide Instances
class Has_Xml'lang t
show/hide Instances
class Has_Dir t
show/hide Instances
class Has_Id t
show/hide Instances
class Has_Xmlns t
show/hide Instances
class Has_Profile t
show/hide Instances
class Has_Class t
show/hide Instances
class Has_Style t
show/hide Instances
class Has_Title t
show/hide Instances
class Has_Onclick t
show/hide Instances
class Has_Ondblclick t
show/hide Instances
class Has_Onmousedown t
show/hide Instances
class Has_Onmouseup t
show/hide Instances
class Has_Onmouseover t
show/hide Instances
class Has_Onmousemove t
show/hide Instances
class Has_Onmouseout t
show/hide Instances
class Has_Onkeypress t
show/hide Instances
class Has_Onkeydown t
show/hide Instances
class Has_Onkeyup t
show/hide Instances
class Has_Onload t
show/hide Instances
class Has_Onunload t
show/hide Instances
class Has_Charset t
show/hide Instances
class Has_Type t
show/hide Instances
class Has_Src t
show/hide Instances
class Has_Defer t
show/hide Instances
class Has_Xml'space t
show/hide Instances
class Has_Media t
show/hide Instances
class Has_Http_equiv t
show/hide Instances
class Has_Name t
show/hide Instances
class Has_Content t
show/hide Instances
class Has_Scheme t
show/hide Instances
class Has_Href t
show/hide Instances
class Has_Hreflang t
show/hide Instances
class Has_Rel t
show/hide Instances
class Has_Rev t
show/hide Instances
class Has_Declare t
show/hide Instances
class Has_Classid t
show/hide Instances
class Has_Codebase t
show/hide Instances
class Has_Data t
show/hide Instances
class Has_Codetype t
show/hide Instances
class Has_Archive t
show/hide Instances
class Has_Standby t
show/hide Instances
class Has_Height t
show/hide Instances
class Has_Width t
show/hide Instances
class Has_Usemap t
show/hide Instances
class Has_Tabindex t
show/hide Instances
class Has_Cite t
show/hide Instances
class Has_Summary t
show/hide Instances
class Has_Border t
show/hide Instances
class Has_Frame t
show/hide Instances
class Has_Rules t
show/hide Instances
class Has_Cellspacing t
show/hide Instances
class Has_Cellpadding t
show/hide Instances
class Has_Action t
show/hide Instances
class Has_Method t
show/hide Instances
class Has_Enctype t
show/hide Instances
class Has_Onsubmit t
show/hide Instances
class Has_Onreset t
show/hide Instances
class Has_Accept t
show/hide Instances
class Has_Accept_charset t
show/hide Instances
class Has_Datetime t
show/hide Instances
UTCTime (UTCTime, utctDay, utctDayTime)
class Has_Accesskey t
show/hide Instances
class Has_Onfocus t
show/hide Instances
class Has_Onblur t
show/hide Instances
class Has_Shape t
show/hide Instances
class Has_Alt t
show/hide Instances
class Has_Longdesc t
show/hide Instances
class Has_Ismap t
show/hide Instances
class Has_InputType t
show/hide Instances
class Has_Value t
show/hide Instances
class Has_Checked t
show/hide Instances
class Has_Disabled t
show/hide Instances
class Has_Readonly t
show/hide Instances
class Has_Size t
show/hide Instances
class Has_Maxlength t
show/hide Instances
class Has_Onselect t
show/hide Instances
class Has_Onchange t
show/hide Instances
class Has_Multiple t
show/hide Instances
class Has_Rows t
show/hide Instances
class Has_Cols t
show/hide Instances
class Has_For t
show/hide Instances
class Has_ButtonType t
show/hide Instances
class Has_Valuetype t
show/hide Instances
class Has_Span t
show/hide Instances
class Has_Align t
show/hide Instances
class Has_Char t
show/hide Instances
class Has_Charoff t
show/hide Instances
class Has_Valign t
show/hide Instances
class Has_Abbr t
show/hide Instances
class Has_Axis t
show/hide Instances
class Has_Headers t
show/hide Instances
class Has_Scope t
show/hide Instances
class Has_Rowspan t
show/hide Instances
class Has_Colspan t
show/hide Instances
class Has_Nohref t
show/hide Instances
class Has_Label t
show/hide Instances
class Has_Selected t
show/hide Instances
identity classes for elements that have nesting restrictions
class Is_A a
show/hide Instances
class Is_Img a
show/hide Instances
class Is_Small a
show/hide Instances
class Is_Big a
show/hide Instances
class Is_Input a
show/hide Instances
class Is_Sub a
show/hide Instances
class Is_Button a
show/hide Instances
class Is_Label a
show/hide Instances
class Is_Sup a
show/hide Instances
class Is_Fieldset a
show/hide Instances
class Is_Object a
show/hide Instances
class Is_Textarea a
show/hide Instances
class Is_Form a
show/hide Instances
class Is_Select a
show/hide Instances
HtmlTop type to manage the overloading of head elements

Namely, optional base and then further Head_ elements.

Since we want to be able to use objects in HtmlTop, and objects have the fourteen argument requirement, the overloading mechanism requires that HtmlTop have fourteen arguments too.

data HtmlTop a big button fieldset form img input label object select small sub sup textarea

HtmlTop type to manage the overloading for insertion of elements into head

Namely, optional base and then further Head_ elements. Since we want to be able to use objects in HtmlTop, and objects have the fourteen argument requirement, the overloading mechanism requires that HtmlTop have fourteen arguments too.

Constructors
HtmlTop (Maybe Base) [Head_ a big button fieldset form img input label object select small sub sup textarea]
show/hide Instances
HCM HtmlTop
Object_allowed_in HtmlTop
Base_allowed_in HtmlTop
Link_allowed_in HtmlTop
Meta_allowed_in HtmlTop
Style_allowed_in HtmlTop
Script_allowed_in HtmlTop
Appendable (HtmlTop a big button fieldset form img input label object select small sub sup textarea)
CanBeEmpty (HtmlTop a big button fieldset form img input label object select small sub sup textarea)
data TableTop a big button fieldset form img input label object select small sub sup textarea

Type to simplify the insertion of table-head elements

ie caption, col/groups, thead and tfoot

Constructors
TableTop (Maybe (Caption a big button fieldset form img input label object select small sub sup textarea)) Cols_or_Colgroups (Maybe (Thead a big button fieldset form img input label object select small sub sup textarea)) (Maybe (Tfoot a big button fieldset form img input label object select small sub sup textarea))
show/hide Instances
HCM TableTop
Caption_allowed_in TableTop
Thead_allowed_in TableTop
Tfoot_allowed_in TableTop
Appendable (TableTop a big button fieldset form img input label object select small sub sup textarea)
CanBeEmpty (TableTop a big button fieldset form img input label object select small sub sup textarea)
Col_allowed_in (TableTop a big button fieldset form img input label object select small sub sup textarea)
Colgroup_allowed_in (TableTop a big button fieldset form img input label object select small sub sup textarea)
xhtml element generating functions
html :: [Html_Attrs -> Html_Attrs] -> (Head, Body) -> Html
html element. head and body are both required
head :: [Head_Attrs -> Head_Attrs] -> (Title, Only (HtmlTop A Big Button Fieldset Form Img Input Label Object Select Small Sub Sup Textarea)) -> Head

head element

The class instances allow the Head_ elements to appear in any order. (Hence the redundant — and slightly confusing — Only around HtmlTop). Note that the dtd requires at most one base element — so if you supply more than one, you get only the rightmost, ie

stuff1 +++ base<<a +++ stuff2 +++ base<<b +++ stuff3
     == stuff1 +++ stuff2 +++ base<<b +++ stuff3
body :: [Body_Attrs -> Body_Attrs] -> [Block A Big Button Fieldset Form Img Input Label Object Select Small Sub Sup Textarea] -> Body
body element
script :: (Script_allowed_in t, Monad m) => [Script_Attrs -> Script_Attrs] -> ScriptContent -> m (t a big button fieldset form img input label object select small sub sup textarea)
script element
style :: (Style_allowed_in t, Monad m) => [Style_Attrs -> Style_Attrs] -> StyleContent -> m (t a big button fieldset form img input label object select small sub sup textarea)
style element
meta :: (Meta_allowed_in t, Monad m) => [Meta_Attrs -> Meta_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
meta element
link :: (Link_allowed_in t, Monad m) => [Link_Attrs -> Link_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
link element
object :: (Object_allowed_in t, Is_Object object, Monad m) => [Object_Attrs -> Object_Attrs] -> (Maybe Param, [Flow a big button fieldset form img input label object select small sub sup textarea]) -> m (t a big button fieldset form img input label object select small sub sup textarea)

object element

objects can contain param, but if they do they have to come first, so object takes a pair:

  object << (empty, …)

or

 object << (param << …, …))
base :: (Base_allowed_in t, Monad m) => [Base_Attrs -> Base_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
base element
p :: (P_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
paragraph element
h1 :: (H1_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h1 element
h2 :: (H2_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h2 element
h3 :: (H3_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h3 element
h4 :: (H4_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h4 element
h5 :: (H5_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h5 element
h6 :: (H6_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
h6 element
div :: (Div_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Flow a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
div element
ul :: (Ul_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> List1 (Li_ a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
ul element
ol :: (Ol_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> List1 (Li_ a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
ol element
dl :: (Dl_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> List1 (Dl_ a big button fieldset form img input label object select small sub sup textarea) -> m (t a big button fieldset form img input label object select small sub sup textarea)
dl element
pre :: (Pre_allowed_in t, Monad m) => [Pre_Attrs -> Pre_Attrs] -> [Inline a Big_not_allowed_in_Pre button fieldset form Img_not_allowed_in_Pre input label Object_not_allowed_in_Pre select Small_not_allowed_in_Pre Sub_not_allowed_in_Pre Sup_not_allowed_in_Pre textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
pre element
hr :: (Hr_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
hr element
blockquote :: (Blockquote_allowed_in t, Monad m) => [Quote_Attrs -> Quote_Attrs] -> [Block a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
blockquote element
address :: (Address_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
address element
fieldset :: (Fieldset_allowed_in t, Is_Fieldset fieldset, Monad m) => [General_Attrs -> General_Attrs] -> (Maybe (Legend a big button fieldset form img input label object select small sub sup textarea), [Flow a big button fieldset form img input label object select small sub sup textarea]) -> m (t a big button fieldset form img input label object select small sub sup textarea)

fieldset element

fieldsets can contain legend elements, but if present they have to be first, so fieldset takes a pair of arguments. Without legend: fieldset << (empty, …) with: fieldset << (legend << …, &#8230)

form :: (Form_allowed_in t, Is_Form form, Monad m) => [Form_Attrs -> Form_Attrs] -> [Block a big button fieldset Form_not_allowed_in_Form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
form element
noscript :: (Noscript_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Block a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
noscript element
ins :: (Ins_allowed_in t, Monad m) => [InsDel_Attrs -> InsDel_Attrs] -> [t a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
ins element
del :: (Del_allowed_in t, Monad m) => [InsDel_Attrs -> InsDel_Attrs] -> [t a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
del element
a :: (A_allowed_in t, Is_A a, Monad m) => [A_Attrs -> A_Attrs] -> [Inline A_not_allowed_in_A big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
a element
br :: (Br_allowed_in t, Monad m) => [Br_Attrs -> Br_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
br element
span :: (Span_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
span element
bdo :: (Bdo_allowed_in t, Monad m) => [Bdo_Attrs -> Bdo_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
bdo element
img :: (Img_allowed_in t, Is_Img img, Monad m) => [Img_Attrs -> Img_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
img element
tt :: (Tt_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
tt element
i :: (I_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
i element
b :: (B_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
b element
big :: (Big_allowed_in t, Is_Big big, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
big element
small :: (Small_allowed_in t, Is_Small small, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
small element
em :: (Em_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
em element
strong :: (Strong_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
strong element
dfn :: (Dfn_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
dfn element
code :: (Code_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
code element
q :: (Q_allowed_in t, Monad m) => [Quote_Attrs -> Quote_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
q element
samp :: (Samp_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
samp element
kbd :: (Kbd_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
kbd element
var :: (Var_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
var element
cite :: (Cite_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
cite element
abbr :: (Abbr_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
abbr element
acronym :: (Acronym_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
acronym element
sub :: (Sub_allowed_in t, Is_Sub sub, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
sub element
sup :: (Sup_allowed_in t, Is_Sup sup, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
sup element
input :: (Input_allowed_in t, Is_Input input, Monad m) => [Input_Attrs -> Input_Attrs] -> () -> m (t a big button fieldset form img input label object select small sub sup textarea)
input element
label :: (Label_allowed_in t, Is_Label label, Monad m) => [Label_Attrs -> Label_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
label element
button :: (Button_allowed_in t, Is_Button button, Monad m) => [Button_Attrs -> Button_Attrs] -> [Flow A_not_allowed_in_Button big Button_not_allowed_in_Button Fieldset_not_allowed_in_Button Form_not_allowed_in_Button img Input_not_allowed_in_Button Label_not_allowed_in_Button object Select_not_allowed_in_Button small sub sup Textarea_not_allowed_in_Button] -> m (t a big button fieldset form img input label object select small sub sup textarea)
button element
th :: (Th_allowed_in t, Monad m) => [ThTd_Attrs -> ThTd_Attrs] -> [Flow a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
th element
td :: (Td_allowed_in t, Monad m) => [ThTd_Attrs -> ThTd_Attrs] -> [Flow a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
td element
li :: (Li_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Flow a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
li element
dd :: (Dd_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Flow a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
dd element
dt :: (Dt_allowed_in t, Monad m) => [General_Attrs -> General_Attrs] -> [Inline a big button fieldset form img input label object select small sub sup textarea] -> m (t a big button fieldset form img input label object select small sub sup textarea)
dt element
Attribute setters

Where there is a clash with either a Haskell keyword, an xhtml element name or just something that has a greater claim on the name, the name is prefixed with "the".

Following the convention of HaXml, colons in attribute names are replaced with apostrophes

Where the value of an attribute is a string, each Char in it represents one character in the output.

theabbr :: Has_Abbr t => String -> t -> t
accept :: Has_Accept t => ContentTypes -> t -> t
accept_charset :: Has_Accept_charset t => Charsets -> t -> t
accesskey :: Has_Accesskey t => Char -> t -> t
action :: Has_Action t => URI -> t -> t
align :: Has_Align t => Align -> t -> t
alt :: Has_Alt t => String -> t -> t
archive :: Has_Archive t => UriList -> t -> t
axis :: Has_Axis t => String -> t -> t
border :: Has_Border t => Pixels -> t -> t
buttontype :: Has_ButtonType t => Button_type -> t -> t
cellpadding :: Has_Cellpadding t => Length -> t -> t
cellspacing :: Has_Cellspacing t => Length -> t -> t
thechar :: Has_Char t => Char -> t -> t
charoff :: Has_Charoff t => Length -> t -> t
charset :: Has_Charset t => Charset -> t -> t
checked :: Has_Checked t => Input_checked -> t -> t
thecite :: Has_Cite t => URI -> t -> t
theclass :: Has_Class t => String -> t -> t
classid :: Has_Classid t => URI -> t -> t
codebase :: Has_Codebase t => URI -> t -> t
codetype :: Has_Codetype t => ContentType -> t -> t
cols :: Has_Cols t => Number -> t -> t
colspan :: Has_Colspan t => Number -> t -> t
content :: Has_Content t => String -> t -> t
thedata :: Has_Data t => URI -> t -> t
datetime :: Has_Datetime t => UTCTime -> t -> t
declare :: Has_Declare t => t -> t
another single case attribute setter
defer :: Has_Defer t => Script_defer -> t -> t
dir :: Has_Dir t => Dir -> t -> t
disabled :: Has_Disabled t => t -> t
enctype :: Has_Enctype t => ContentType -> t -> t
for :: Has_For t => IDREF -> t -> t
frame :: Has_Frame t => Table_frame -> t -> t

frames for tables

given the length of the names for the elements of Table_frame, you probably want to use the pre-applied versions, frame_void, frame_above, frame_below, frame_hsides, frame_lhs, frame_rhs, frame_vsides, frame_box, frame_border

headers :: Has_Headers t => IDREFS -> t -> t
height :: Has_Height t => Length -> t -> t
href :: Has_Href t => URI -> t -> t
hreflang :: Has_Hreflang t => LanguageCode -> t -> t
http_equiv :: Has_Http_equiv t => String -> t -> t
id :: Has_Id t => String -> t -> t
id takes a String, but converts it to an ID
inputtype :: Has_InputType t => Input_type -> t -> t
ismap :: Has_Ismap t => t -> t
there's only one possible value of Img_ismap
thelabel :: Has_Label t => String -> t -> t
lang :: Has_Lang t => LanguageCode -> t -> t
longdesc :: Has_Longdesc t => URI -> t -> t
maxlength :: Has_Maxlength t => Number -> t -> t
media :: Has_Media t => MediaDescs -> t -> t
method :: Has_Method t => Form_method -> t -> t
multiple :: Has_Multiple t => t -> t
name :: Has_Name t => String -> t -> t
nohref :: Has_Nohref t => t -> t
There's only one possible nohref
onblur :: Has_Onblur t => String -> t -> t
onchange :: Has_Onchange t => String -> t -> t
onclick :: Has_Onclick t => String -> t -> t
ondblclick :: Has_Ondblclick t => String -> t -> t
onfocus :: Has_Onfocus t => String -> t -> t
onkeydown :: Has_Onkeydown t => String -> t -> t
onkeypress :: Has_Onkeypress t => String -> t -> t
onkeyup :: Has_Onkeyup t => String -> t -> t
onload :: Has_Onload t => String -> t -> t
onmousedown :: Has_Onmousedown t => String -> t -> t
onmousemove :: Has_Onmousemove t => String -> t -> t
onmouseout :: Has_Onmouseout t => String -> t -> t
onmouseover :: Has_Onmouseover t => String -> t -> t
onmouseup :: Has_Onmouseup t => String -> t -> t
onreset :: Has_Onreset t => String -> t -> t
onselect :: Has_Onselect t => String -> t -> t
onsubmit :: Has_Onsubmit t => String -> t -> t
onunload :: Has_Onunload t => String -> t -> t
profile :: Has_Profile t => URI -> t -> t
readonly :: Has_Readonly t => t -> t
rel :: Has_Rel t => LinkTypes -> t -> t
rev :: Has_Rev t => LinkTypes -> t -> t
rows :: Has_Rows t => Number -> t -> t
rowspan :: Has_Rowspan t => Number -> t -> t
rules :: Has_Rules t => Table_rules -> t -> t
similarly, use the pre-applied versions below
scheme :: Has_Scheme t => String -> t -> t
scope :: Has_Scope t => Scope -> t -> t
selected :: Has_Selected t => t -> t
There's only one possible selected
shape :: Has_Shape t => Shape -> t -> t
size :: Has_Size t => Number -> t -> t
thespan :: Has_Span t => Number -> t -> t
src :: Has_Src t => URI -> t -> t
standby :: Has_Standby t => String -> t -> t
thestyle :: Has_Style t => String -> t -> t
summary :: Has_Summary t => String -> t -> t
tabindex :: Has_Tabindex t => Number -> t -> t
thetitle :: Has_Title t => String -> t -> t
thetype :: Has_Type t => ContentType -> t -> t
usemap :: Has_Usemap t => URI -> t -> t
valign :: Has_Valign t => Valign -> t -> t
value :: Has_Value t => String -> t -> t
valuetype :: Has_Valuetype t => Param_valuetype -> t -> t
width :: Has_Width t => Length -> t -> t
xml'lang :: Has_Xml'lang t => LanguageCode -> t -> t
xml'space_preserve :: Has_Xml'space t => t -> t
there is only one possible xml:space,
xmlns :: Has_Xmlns t => t -> t
xmlns is a FIXED attribute, so there's no point in supplying an argument!
frame_void :: Has_Frame t => t -> t
frame applied to each of its possible parameters
frame_above :: Has_Frame t => t -> t
frame_below :: Has_Frame t => t -> t
frame_hsides :: Has_Frame t => t -> t
frame_lhs :: Has_Frame t => t -> t
frame_rhs :: Has_Frame t => t -> t
frame_vsides :: Has_Frame t => t -> t
frame_box :: Has_Frame t => t -> t
frame_border :: Has_Frame t => t -> t
rules_none :: Has_Rules t => t -> t
rules applied to each of its possible parameters
rules_groups :: Has_Rules t => t -> t
rules_rows :: Has_Rules t => t -> t
rules_cols :: Has_Rules t => t -> t
rules_all :: Has_Rules t => t -> t
get :: Form_method
post :: Form_method
rect :: Length -> Length -> Length -> Length -> Shape
parameters for shape
circle :: Length -> Length -> Length -> Shape
poly :: [(Length, Length)] -> Shape
buttontype_button :: Has_ButtonType t => t -> t
all the possible types for buttons
buttontype_submit :: Has_ButtonType t => t -> t
buttontype_reset :: Has_ButtonType t => t -> t
inputtype_text :: Has_InputType t => t -> t
inputtype applied to each of its possible arguments
inputtype_password :: Has_InputType t => t -> t
inputtype_checkbox :: Has_InputType t => t -> t
inputtype_radio :: Has_InputType t => t -> t
inputtype_submit :: Has_InputType t => t -> t
inputtype_reset :: Has_InputType t => t -> t
inputtype_file :: Has_InputType t => t -> t
inputtype_hidden :: Has_InputType t => t -> t
inputtype_image :: Has_InputType t => t -> t
inputtype_button :: Has_InputType t => t -> t
valuetype_data :: Has_Valuetype t => t -> t
all the valuetypes for Param
valuetype_ref :: Has_Valuetype t => t -> t
valuetype_object :: Has_Valuetype t => t -> t
align_left :: Has_Align t => t -> t
align applied to each of its possible parameters
align_center :: Has_Align t => t -> t
align_right :: Has_Align t => t -> t
align_justify :: Has_Align t => t -> t
align_char :: Has_Align t => t -> t
valign_top :: Has_Valign t => t -> t
valign applied to each possible parameter
valign_middle :: Has_Valign t => t -> t
valign_bottom :: Has_Valign t => t -> t
valign_baseline :: Has_Valign t => t -> t
scope_row :: Has_Scope t => t -> t
scope applied to each possible parameter
scope_col :: Has_Scope t => t -> t
scope_rowgroup :: Has_Scope t => t -> t
scope_colgroup :: Has_Scope t => t -> t
class Has_button_types t where
Input and button share three attributes. Collected together in this class
Methods
type_reset :: t -> t
type_button :: t -> t
type_submit :: t -> t
show/hide Instances
insertion functions for style and script elements
css :: String -> StyleContent

cascading style-sheet content (for use in style element)

This probably should be done with TH, certainly not a string like this

javaScript :: String -> ScriptContent
JavaScript content for script elements
ecmaScript :: String -> ScriptContent
ECMAScript content for script elements
Produced by Haddock version 2.4.2