type-of-html-1.6.2.0: High performance type driven html generation.
Safe HaskellNone
LanguageHaskell2010

Html.Type

Synopsis

Documentation

data a # b infixr 5 Source #

Combine two elements or attributes sequentially.

>>> I # Div
<i></i><div></div>
>>> I :@ (IdA:="a" # ClassA:="b") :> "c"
<i id="a" class="b">c</i>

Constructors

(:#:) a b 

Instances

Instances details
Document (a # b) => Show (a # b) Source # 
Instance details

Defined in Html

Methods

showsPrec :: Int -> (a # b) -> ShowS #

show :: (a # b) -> String #

showList :: [a # b] -> ShowS #

(#) :: a -> b -> a # b infixr 5 Source #

data father :> child where infixr 6 Source #

Constructors

(:>) :: Lawful Fatherhood f c => f -> c -> f :> c infixr 6 

Instances

Instances details
Document (a :> b) => Show (a :> b) Source # 
Instance details

Defined in Html

Methods

showsPrec :: Int -> (a :> b) -> ShowS #

show :: (a :> b) -> String #

showList :: [a :> b] -> ShowS #

data element :@ attribution where infixr 9 Source #

Constructors

(:@) :: Lawful Attribution e a => e -> a -> e :@ a infixr 9 

Instances

Instances details
Document (a :@ b) => Show (a :@ b) Source # 
Instance details

Defined in Html

Methods

showsPrec :: Int -> (a :@ b) -> ShowS #

show :: (a :@ b) -> String #

showList :: [a :@ b] -> ShowS #

data a := v where infixr 9 Source #

Constructors

(:=) :: Lawful AttributeValue a v => a -> v -> a := v infixr 9 

Instances

Instances details
Document (a := b) => Show (a := b) Source #

Show instances to faciliate ghci development.

Instance details

Defined in Html

Methods

showsPrec :: Int -> (a := b) -> ShowS #

show :: (a := b) -> String #

showList :: [a := b] -> ShowS #

data Element (name :: Symbol) (categories :: [ContentCategory]) (contentModel :: ContentCategory) (contentAttributes :: [Symbol]) where Source #

4 The elements of HTML

Constructors

DOCTYPE :: Element "!DOCTYPE html" '[] None '[] 
Html :: Element "html" '[] (Elements ["head", "body"]) (ManifestA & '[])

4.1 The document element 4.1.1

Head :: Element "head" '[] Metadata '[]

4.2 Document metadata 4.2.1

Title :: Element "title" '[Metadata] OnlyText '[]

4.2.2

Base :: Element "base" '[Metadata] None (HrefA & (TargetA & '[]))

4.2.3

Link :: Element "link" '[Metadata, Flow, Phrasing] None (HrefA & (CrossoriginA & (RelA & (MediaA & (IntegrityA & (HreflangA & (TypeA & (ReferrerpolicyA & (SizesA & (ImagesrcsetA & (ImagesizesA & (AsA & (RelA & (ColorA & (DisabledA & '[])))))))))))))))

4.2.4

Meta :: Element "meta" '[Metadata, Flow, Phrasing] None (NameA & (HttpEquivA & (ContentA & (CharsetA & '[]))))

4.2.5

Style :: Element "style" '[Metadata] OnlyText (MediaA & '[])

4.2.6

Body :: Element "body" '[] Flow (OnafterprintA & (OnbeforeprintA & (OnbeforeunloadA & (OnhashchangeA & (OnlanguagechangeA & (OnmessageA & (OnmessageerrorA & (OnofflineA & (OnonlineA & (OnpagehideA & (OnpageshowA & (OnpopstateA & (OnrejectionhandledA & (OnstorageA & (OnunhandledrejectionA & (OnunloadA & '[]))))))))))))))))

4.3 Sections 4.3.1

Article :: Element "article" '[Flow, Sectioning, Palpable] Flow '[]

4.3.2

Section :: Element "section" '[Flow, Sectioning, Palpable] Flow '[]

4.3.3

Nav :: Element "nav" '[Flow, Sectioning, Palpable] Flow '[]

4.3.4

Aside :: Element "aside" '[Flow, Sectioning, Palpable] Flow '[]

4.3.5

H1 :: Element "h1" '[Flow, Heading, Palpable] Phrasing '[]

4.3.6

H2 :: Element "h2" '[Flow, Heading, Palpable] Phrasing '[] 
H3 :: Element "h3" '[Flow, Heading, Palpable] Phrasing '[] 
H4 :: Element "h4" '[Flow, Heading, Palpable] Phrasing '[] 
H5 :: Element "h5" '[Flow, Heading, Palpable] Phrasing '[] 
H6 :: Element "h6" '[Flow, Heading, Palpable] Phrasing '[] 
Hgroup :: Element "hgroup" '[Flow, Heading, Palpable] ((Heading :&: NOT (Elements '["hgroup"])) :|: Scripting) '[]

4.3.7

Header :: Element "header" '[Flow, Palpable] (Flow :&: NOT (Elements ["header", "footer"])) '[]

4.3.8

Footer :: Element "footer" '[Flow, Palpable] (Flow :&: NOT (Elements ["header", "footer"])) '[]

4.3.9

Address :: Element "address" '[Flow, Palpable] (Flow :&: NOT (Heading :|: (Sectioning :|: Elements ["header", "footer", "address"]))) '[]

4.3.10

P :: Element "p" '[Flow, Palpable] Phrasing '[]

4.4 Grouping content 4.4.1

Hr :: Element "hr" '[Flow] None '[]

4.4.2

Pre :: Element "pre" '[Flow, Palpable] Phrasing '[]

4.4.3

Blockquote :: Element "blockquote" '[Flow, Palpable] Flow (CiteA & '[])

4.4.4

Ol :: Element "ol" '[Flow, Palpable] (Elements '["li"] :|: Scripting) (ReversedA & (StartA & (TypeA & '[])))

4.4.5

Ul :: Element "ul" '[Flow, Palpable] (Elements '["li"] :|: Scripting) '[]

4.4.6

Menu :: Element "menu" '[Flow, Palpable] (Elements '["li"] :|: Scripting) '[]

4.4.7

Li :: Element "li" '[] Flow (ValueA & '[])

4.4.8

Dl :: Element "dl" '[Flow, Palpable] (Elements ["dt", "dd", "div"] :|: Scripting) '[]

4.4.9

Dt :: Element "dt" '[] (Flow :&: NOT (Sectioning :|: (Heading :|: Elements ["header", "footer"]))) '[]

4.4.10

Dd :: Element "dd" '[] Flow '[]

4.4.11

Figure :: Element "figure" '[Flow, Palpable] (Flow :|: Elements '["figcaption"]) '[]

4.4.12

Figcaption :: Element "figcaption" '[] Flow '[]

4.4.13

Main :: Element "main" '[Flow, Palpable] Flow '[]

4.4.14

Div :: Element "div" '[Flow, Palpable] (Flow :|: (Elements ["dt", "dt"] :|: Scripting)) '[]

4.4.15

A :: Element "a" '[Flow, Phrasing, Interactive, Palpable] ((Flow :|: (Phrasing :|: Palpable)) :&: NOT (Elements '["a"])) (HrefA & (TargetA & (DownloadA & (PingA & (RelA & (HreflangA & (TypeA & (ReferrerpolicyA & '[]))))))))

4.5 Text-level semantics 4.5.1

Em :: Element "em" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.2

Strong :: Element "strong" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.3

Small :: Element "small" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.4

S :: Element "s" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.5

Cite :: Element "cite" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.6

Q :: Element "q" '[Flow, Phrasing, Palpable] Phrasing (CiteA & '[])

4.5.7

Dfn :: Element "dfn" '[Flow, Phrasing, Palpable] (Phrasing :&: NOT (Elements '["dfn"])) '[]

4.5.8

Abbr :: Element "abbr" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.9

Ruby :: Element "ruby" '[Flow, Phrasing, Palpable] (Phrasing :|: Elements ["rt", "rp"]) '[]

4.5.10

Rt :: Element "rt" '[] Phrasing '[]

4.5.11

Rp :: Element "rp" '[] OnlyText '[]

4.5.12

Data :: Element "data" '[Flow, Phrasing, Palpable] Phrasing (ValueA & '[])

4.5.13

Time :: Element "time" '[Flow, Phrasing, Palpable] Phrasing (DatetimeA & '[])

4.5.14

Code :: Element "code" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.15

Var :: Element "var" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.16

Samp :: Element "samp" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.17

Kbd :: Element "kbd" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.18

Sub :: Element "sub" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.19

Sup :: Element "sup" '[Flow, Phrasing, Palpable] Phrasing '[] 
I :: Element "i" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.20

B :: Element "b" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.21

U :: Element "u" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.22

Mark :: Element "mark" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.23

Bdi :: Element "bdi" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.24

Bdo :: Element "bdo" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.25

Span :: Element "span" '[Flow, Phrasing, Palpable] Phrasing '[]

4.5.26

Br :: Element "br" '[Flow, Phrasing] None '[]

4.5.27

Wbr :: Element "wbr" '[Flow, Phrasing] None '[]

4.5.28

Ins :: Element "ins" '[Flow, Phrasing, Palpable] (Flow :|: (Phrasing :|: Palpable)) (CiteA & (DatetimeA & '[]))

4.7 Edits 4.7.1

Del :: Element "del" '[Flow, Phrasing] (Flow :|: Phrasing) (CiteA & (DatetimeA & '[]))

4.7.2

Picture :: Element "picture" '[Flow, Phrasing, Embedded] (Elements ["source", "img"] :|: Scripting) '[]

4.8 Embedded content 4.8.1

Source :: Element "source" '[] None (SrcA & (TypeA & (SrcsetA & (SizesA & (MediaA & '[])))))

4.8.2

Img :: Element "img" '[Flow, Phrasing, Embedded, Interactive, Palpable] None (AltA & (SrcA & (SrcsetA & (SizesA & (CrossoriginA & (UsemapA & (IsmapA & (WidthA & (HeightA & (ReferrerpolicyA & (DecodingA & (LoadingA & '[]))))))))))))

4.8.3

Iframe :: Element "iframe" '[Flow, Phrasing, Embedded, Interactive, Palpable] None (SrcA & (SrcdocA & (NameA & (SandboxA & (AllowA & (AllowfullscreenA & (WidthA & (HeightA & (ReferrerpolicyA & (LoadingA & '[]))))))))))

4.8.5

Embed :: Element "embed" '[Flow, Phrasing, Embedded, Interactive, Palpable] None (SrcA & (TypeA & (WidthA & (HeightA & '[]))))

4.8.6

Object :: Element "object" '[Flow, Phrasing, Embedded, Interactive, Palpable] (Elements '["param"] :|: (Flow :|: (Phrasing :|: (Embedded :|: (Interactive :|: Palpable))))) (DataA & (TypeA & (NameA & (UsemapA & (FormA & (WidthA & (HeightA & '[])))))))

4.8.7

Param :: Element "param" '[] None (NameA & (ValueA & '[]))

4.8.8

Video :: Element "video" '[Flow, Phrasing, Embedded, Interactive, Palpable] ((Elements ["track", "source"] :|: (Flow :|: (Phrasing :|: (Embedded :|: (Interactive :|: Palpable))))) :&: NOT (Elements ["audio", "video"])) (SrcA & (CrossoriginA & (PosterA & (PreloadA & (AutoplayA & (PlaysinlineA & (LoopA & (MutedA & (ControlsA & (WidthA & (HeightA & '[])))))))))))

4.8.9

Audio :: Element "audio" '[Flow, Phrasing, Embedded, Interactive, Palpable] ((Elements ["track", "source"] :|: (Flow :|: (Phrasing :|: (Embedded :|: (Interactive :|: Palpable))))) :&: NOT (Elements ["audio", "video"])) (SrcA & (CrossoriginA & (PreloadA & (AutoplayA & (LoopA & (MutedA & (ControlsA & '[])))))))

4.8.10

Track :: Element "track" '[] None (KindA & (SrcA & (SrclangA & (LabelA & (DefaultA & '[])))))

4.8.11

Map :: Element "map" '[Flow, Phrasing, Palpable] (Flow :|: (Phrasing :|: Palpable)) (NameA & '[])

4.8.13

Area :: Element "area" '[Flow, Phrasing] None (AltA & (CoordsA & (ShapeA & (HrefA & (TargetA & (DownloadA & (PingA & (RelA & (ReferrerpolicyA & '[])))))))))

4.8.14

Table :: Element "table" '[Flow, Palpable] (Elements ["caption", "colgroup", "thead", "tbody", "tr", "tfoot"] :|: Scripting) '[]

4.9 Tabular data 4.9.1

Caption :: Element "caption" '[] (Flow :|: NOT (Elements '["table"])) '[]

4.9.2

Colgroup :: Element "colgroup" '[] (Elements ["col", "template"]) (SpanA & '[])

4.9.3

Col :: Element "col" '[] None (SpanA & '[])

4.9.4

Tbody :: Element "tbody" '[] (Elements '["tr"] :|: Scripting) '[]

4.9.5

Thead :: Element "thead" '[] (Elements '["tr"] :|: Scripting) '[]

4.9.6

Tfoot :: Element "tfoot" '[] (Elements '["tr"] :|: Scripting) '[]

4.9.7

Tr :: Element "tr" '[] (Elements ["td", "th"] :|: Scripting) '[]

4.9.8

Td :: Element "td" '[] Flow (ColspanA & (RowspanA & (HeadersA & '[])))

4.9.9

Th :: Element "th" '[] (Flow :&: NOT (Elements ["header", "footer"] :|: (Sectioning :|: Heading))) (ColspanA & (RowspanA & (HeadersA & (ScopeA & (AbbrA & '[])))))

4.9.10

Form :: Element "form" '[Flow, Palpable] (Flow :&: NOT (Elements '["form"])) (AcceptCharsetA & (ActionA & (AutocompleteA & (EnctypeA & (MethodA & (NameA & (NovalidateA & (TargetA & (RelA & '[])))))))))

4.10 Forms 4.10.3

Label :: Element "label" '[Flow, Phrasing, Interactive, Palpable] (Phrasing :&: NOT (Elements '["label"])) (ForA & '[])

4.10.4

Input :: Element "input" '[Flow, Phrasing, Interactive, Palpable] None (AcceptA & (AltA & (AutocompleteA & (CheckedA & (DirnameA & (DisabledA & (FormA & (FormactionA & (FormenctypeA & (FormmethodA & (FormnovalidateA & (FormtargetA & (HeightA & (ListA & (MaxA & (MaxlengthA & (MinA & (MinlengthA & (MultipleA & (NameA & (PatternA & (PlaceholderA & (ReadonlyA & (RequiredA & (SizeA & (SrcA & (StepA & (TypeA & (ValueA & (WidthA & '[]))))))))))))))))))))))))))))))

4.10.5

Button :: Element "button" '[Flow, Phrasing, Interactive, Palpable] (Phrasing :&: NOT Interactive) (DisabledA & (FormA & (FormactionA & (FormenctypeA & (FormmethodA & (FormnovalidateA & (FormtargetA & (NameA & (TypeA & (ValueA & '[]))))))))))

4.10.6

Select :: Element "select" '[Flow, Phrasing, Interactive, Palpable] (Elements ["option", "optgroup"] :|: Scripting) (AutocompleteA & (DisabledA & (FormA & (MultipleA & (NameA & (RequiredA & (SizeA & '[])))))))

4.10.7

Datalist :: Element "datalist" '[Flow, Phrasing] (Phrasing :|: (Scripting :|: Elements '["option"])) '[]

4.10.8

Optgroup :: Element "optgroup" '[] (Elements '["option"] :|: Scripting) (DisabledA & (LabelA & '[]))

4.10.9

Option :: Element "option" '[] OnlyText (DisabledA & (LabelA & (SelectedA & (ValueA & '[]))))

4.10.10

Textarea :: Element "textarea" '[Flow, Phrasing, Interactive, Palpable] OnlyText (AutocompleteA & (ColsA & (DirnameA & (DisabledA & (FormA & (MaxlengthA & (MinlengthA & (NameA & (PlaceholderA & (ReadonlyA & (RequiredA & (RowsA & (WrapA & '[])))))))))))))

4.10.11

Output :: Element "output" '[Flow, Phrasing, Palpable] Phrasing (ForA & (FormA & (NameA & '[])))

4.10.12

Progress :: Element "progress" '[Flow, Phrasing, Palpable] (Phrasing :&: NOT (Elements '["progress"])) (ValueA & (MaxA & '[]))

4.10.13

Meter :: Element "meter" '[Flow, Phrasing, Palpable] (Phrasing :&: NOT (Elements '["meter"])) (ValueA & (MinA & (MaxA & (LowA & (HighA & (OptimumA & '[]))))))

4.10.14

Fieldset :: Element "fieldset" '[Flow, Palpable] (Elements '["legend"] :|: Flow) (DisabledA & (FormA & (NameA & '[])))

4.10.15

Legend :: Element "legend" '[] (Phrasing :|: Heading) '[]

4.10.16

Details :: Element "details" '[Flow, Interactive, Palpable] (Elements '["summary"] :|: Flow) (OpenA & '[])

4.11 Interactive elements 4.11.1

Summary :: Element "summary" '[] (Phrasing :|: Heading) '[]

4.11.2

Dialog :: Element "dialog" '[Flow] Flow (OpenA & '[])

4.11.4

Script :: Element "script" '[Metadata, Flow, Phrasing, Scripting] OnlyText (SrcA & (TypeA & (NomoduleA & (AsyncA & (DeferA & (CrossoriginA & (IntegrityA & (ReferrerpolicyA & '[]))))))))

4.12 Scripting 4.12.1

Noscript :: Element "noscript" '[Metadata, Flow, Phrasing] ((Elements ["link", "style", "meta"] :|: (Metadata :|: (Flow :|: Phrasing))) :&: NOT (Elements '["noscript"])) '[]

4.12.2

Template :: Element "template" '[Metadata, Flow, Phrasing, Scripting] (Metadata :|: (Flow :|: (Sectioning :|: (Heading :|: (Phrasing :|: Palpable))))) '[]

4.12.3

Slot :: Element "slot" '[Flow, Phrasing] (Flow :|: Phrasing) (NameA & '[])

4.12.4

Canvas :: Element "canvas" '[Flow, Phrasing, Embedded, Palpable] (((Flow :|: (Phrasing :|: (Embedded :|: Palpable))) :&: NOT Interactive) :|: Elements ["a", "img", "button", "input", "select"]) (WidthA & (HeightA & '[]))

4.12.5

CustomElement :: Element name categories contentModel contentAttributes

4.13 Custom elements

Instances

Instances details
Document (Element name categories contentModel contentAttributes) => Show (Element name categories contentModel contentAttributes) Source # 
Instance details

Defined in Html

Methods

showsPrec :: Int -> Element name categories contentModel contentAttributes -> ShowS #

show :: Element name categories contentModel contentAttributes -> String #

showList :: [Element name categories contentModel contentAttributes] -> ShowS #

data Attribute name global boolean where Source #

Constructors

CustomA :: Attribute name global boolean 
AbbrA :: Attribute "abbr" False False 
AcceptA :: Attribute "accept" False False 
AcceptCharsetA :: Attribute "accept-charset" False False 
AccesskeyA :: Attribute "accesskey" True False 
ActionA :: Attribute "action" False False 
AllowA :: Attribute "allow" False False 
AllowfullscreenA :: Attribute "allowfullscreen" False True 
AltA :: Attribute "alt" False False 
AsA :: Attribute "as" False False 
AsyncA :: Attribute "async" False True 
AutocapitalizeA :: Attribute "autocapitalize" True False 
AutocompleteA :: Attribute "autocomplete" False False 
AutofocusA :: Attribute "autofocus" True True 
AutoplayA :: Attribute "autoplay" False True 
CharsetA :: Attribute "charset" False False 
CheckedA :: Attribute "checked" False True 
CiteA :: Attribute "cite" False False 
ClassA :: Attribute "class" True False 
ColorA :: Attribute "color" False False 
ColsA :: Attribute "cols" False False 
ColspanA :: Attribute "colspan" False False 
ContentA :: Attribute "content" False False 
ContenteditableA :: Attribute "contenteditable" True False 
ControlsA :: Attribute "controls" False True 
CoordsA :: Attribute "coords" False False 
CrossoriginA :: Attribute "crossorigin" False False 
DataA :: Attribute "data" False False 
DatetimeA :: Attribute "datetime" False False 
DecodingA :: Attribute "decoding" False False 
DefaultA :: Attribute "default" False True 
DeferA :: Attribute "defer" False True 
DirA :: Attribute "dir" True False 
DirnameA :: Attribute "dirname" False False 
DisabledA :: Attribute "disabled" False True 
DownloadA :: Attribute "download" False False 
DraggableA :: Attribute "draggable" True False 
EnctypeA :: Attribute "enctype" False False 
EnterkeyhintA :: Attribute "enterkeyhint" True False 
ForA :: Attribute "for" False False 
FormA :: Attribute "form" False False 
FormactionA :: Attribute "formaction" False False 
FormenctypeA :: Attribute "formenctype" False False 
FormmethodA :: Attribute "formmethod" False False 
FormnovalidateA :: Attribute "formnovalidate" False True 
FormtargetA :: Attribute "formtarget" False False 
HeadersA :: Attribute "headers" False False 
HeightA :: Attribute "height" False False 
HiddenA :: Attribute "hidden" True True 
HighA :: Attribute "high" False False 
HrefA :: Attribute "href" False False 
HreflangA :: Attribute "hreflang" False False 
HttpEquivA :: Attribute "httpEquiv" False False 
IdA :: Attribute "id" True False 
ImagesizesA :: Attribute "imagesizes" False False 
ImagesrcsetA :: Attribute "imagesrcset" False False 
InputmodeA :: Attribute "inputmode" True False 
IntegrityA :: Attribute "integrity" False False 
IsA :: Attribute "is" True False 
IsmapA :: Attribute "ismap" False True 
ItemidA :: Attribute "itemid" True False 
ItempropA :: Attribute "itemprop" True False 
ItemrefA :: Attribute "itemref" True False 
ItemscopeA :: Attribute "itemscope" True True 
ItemtypeA :: Attribute "itemtype" True False 
KindA :: Attribute "kind" False False 
LabelA :: Attribute "label" False False 
LangA :: Attribute "lang" True False 
ListA :: Attribute "list" False False 
LoadingA :: Attribute "loading" False False 
LoopA :: Attribute "loop" False True 
LowA :: Attribute "low" False False 
ManifestA :: Attribute "manifest" False False 
MaxA :: Attribute "max" False False 
MaxlengthA :: Attribute "maxlength" False False 
MediaA :: Attribute "media" False False 
MethodA :: Attribute "method" False False 
MinA :: Attribute "min" False False 
MinlengthA :: Attribute "minlength" False False 
MultipleA :: Attribute "multiple" False True 
MutedA :: Attribute "muted" False True 
NameA :: Attribute "name" False False 
NomoduleA :: Attribute "nomodule" False True 
NonceA :: Attribute "nonce" True False 
NovalidateA :: Attribute "novalidate" False True 
OpenA :: Attribute "open" False True 
OptimumA :: Attribute "optimum" False False 
PatternA :: Attribute "pattern" False False 
PingA :: Attribute "ping" False False 
PlaceholderA :: Attribute "placeholder" False False 
PlaysinlineA :: Attribute "playsinline" False True 
PosterA :: Attribute "poster" False False 
PreloadA :: Attribute "preload" False False 
ReadonlyA :: Attribute "readonly" False True 
ReferrerpolicyA :: Attribute "referrerpolicy" False False 
RelA :: Attribute "rel" False False 
RequiredA :: Attribute "required" False True 
ReversedA :: Attribute "reversed" False True 
RowsA :: Attribute "rows" False False 
RowspanA :: Attribute "rowspan" False False 
SandboxA :: Attribute "sandbox" False False 
ScopeA :: Attribute "scope" False False 
SelectedA :: Attribute "selected" False True 
ShapeA :: Attribute "shape" False False 
SizeA :: Attribute "size" False False 
SizesA :: Attribute "sizes" False False 
SlotA :: Attribute "slot" True False 
SpanA :: Attribute "span" False False 
SpellcheckA :: Attribute "spellcheck" True False 
SrcA :: Attribute "src" False False 
SrcdocA :: Attribute "srcdoc" False False 
SrclangA :: Attribute "srclang" False False 
SrcsetA :: Attribute "srcset" False False 
StartA :: Attribute "start" False False 
StepA :: Attribute "step" False False 
StyleA :: Attribute "style" True False 
TabindexA :: Attribute "tabindex" True False 
TargetA :: Attribute "target" False False 
TitleA :: Attribute "title" True False 
TranslateA :: Attribute "translate" True False 
TypeA :: Attribute "type" False False 
UsemapA :: Attribute "usemap" False False 
ValueA :: Attribute "value" False False 
WidthA :: Attribute "width" False False 
WrapA :: Attribute "wrap" False False 
OnabortA :: Attribute "onabort" True False 
OnauxclickA :: Attribute "onauxclick" True False 
OnafterprintA :: Attribute "onafterprint" False False 
OnbeforeprintA :: Attribute "onbeforeprint" False False 
OnbeforeunloadA :: Attribute "onbeforeunload" False False 
OnblurA :: Attribute "onblur" True False 
OncancelA :: Attribute "oncancel" True False 
OncanplayA :: Attribute "oncanplay" True False 
OncanplaythroughA :: Attribute "oncanplaythrough" True False 
OnchangeA :: Attribute "onchange" True False 
OnclickA :: Attribute "onclick" True False 
OncloseA :: Attribute "onclose" True False 
OncontextmenuA :: Attribute "oncontextmenu" True False 
OncopyA :: Attribute "oncopy" True False 
OncuechangeA :: Attribute "oncuechange" True False 
OncutA :: Attribute "oncut" True False 
OndblclickA :: Attribute "ondblclick" True False 
OndragA :: Attribute "ondrag" True False 
OndragendA :: Attribute "ondragend" True False 
OndragenterA :: Attribute "ondragenter" True False 
OndragleaveA :: Attribute "ondragleave" True False 
OndragoverA :: Attribute "ondragover" True False 
OndragstartA :: Attribute "ondragstart" True False 
OndropA :: Attribute "ondrop" True False 
OndurationchangeA :: Attribute "ondurationchange" True False 
OnemptiedA :: Attribute "onemptied" True False 
OnendedA :: Attribute "onended" True False 
OnerrorA :: Attribute "onerror" True False 
OnfocusA :: Attribute "onfocus" True False 
OnformdataA :: Attribute "onformdata" True False 
OnhashchangeA :: Attribute "onhashchange" False False 
OninputA :: Attribute "oninput" True False 
OninvalidA :: Attribute "oninvalid" True False 
OnkeydownA :: Attribute "onkeydown" True False 
OnkeypressA :: Attribute "onkeypress" True False 
OnkeyupA :: Attribute "onkeyup" True False 
OnlanguagechangeA :: Attribute "onlanguagechange" False False 
OnloadA :: Attribute "onload" True False 
OnloadeddataA :: Attribute "onloadeddata" True False 
OnloadedmetadataA :: Attribute "onloadedmetadata" True False 
OnloadstartA :: Attribute "onloadstart" True False 
OnmessageA :: Attribute "onmessage" False False 
OnmessageerrorA :: Attribute "onmessageerror" False False 
OnmousedownA :: Attribute "onmousedown" True False 
OnmouseenterA :: Attribute "onmouseenter" True False 
OnmouseleaveA :: Attribute "onmouseleave" True False 
OnmousemoveA :: Attribute "onmousemove" True False 
OnmouseoutA :: Attribute "onmouseout" True False 
OnmouseoverA :: Attribute "onmouseover" True False 
OnmouseupA :: Attribute "onmouseup" True False 
OnofflineA :: Attribute "onoffline" False False 
OnonlineA :: Attribute "ononline" False False 
OnpagehideA :: Attribute "onpagehide" False False 
OnpageshowA :: Attribute "onpageshow" False False 
OnpasteA :: Attribute "onpaste" True False 
OnpauseA :: Attribute "onpause" True False 
OnplayA :: Attribute "onplay" True False 
OnplayingA :: Attribute "onplaying" True False 
OnpopstateA :: Attribute "onpopstate" False False 
OnprogressA :: Attribute "onprogress" True False 
OnratechangeA :: Attribute "onratechange" True False 
OnresetA :: Attribute "onreset" True False 
OnresizeA :: Attribute "onresize" True False 
OnrejectionhandledA :: Attribute "onrejectionhandled" False False 
OnscrollA :: Attribute "onscroll" True False 
OnsecuritypolicyviolationA :: Attribute "onsecuritypolicyviolation" True False 
OnseekedA :: Attribute "onseeked" True False 
OnseekingA :: Attribute "onseeking" True False 
OnselectA :: Attribute "onselect" True False 
OnslotchangeA :: Attribute "onslotchange" True False 
OnstalledA :: Attribute "onstalled" True False 
OnstorageA :: Attribute "onstorage" False False 
OnsubmitA :: Attribute "onsubmit" True False 
OnsuspendA :: Attribute "onsuspend" True False 
OntimeupdateA :: Attribute "ontimeupdate" True False 
OntoggleA :: Attribute "ontoggle" True False 
OnunhandledrejectionA :: Attribute "onunhandledrejection" False False 
OnunloadA :: Attribute "onunload" False False 
OnvolumechangeA :: Attribute "onvolumechange" True False 
OnwaitingA :: Attribute "onwaiting" True False 
OnwheelA :: Attribute "onwheel" True False 
RoleA :: Attribute "role" True False 
AriaActivedescendantA :: Attribute "aria-activedescendant" True False 
AriaAtomicA :: Attribute "aria-atomic" True False 
AriaAutocompleteA :: Attribute "aria-autocomplete" True False 
AriaBraillelableA :: Attribute "aria-braillelable" True False 
AriaBrailleroledescriptionA :: Attribute "aria-brailleroledescription" True False 
AriaBusyA :: Attribute "aria-busy" True False 
AriaCheckedA :: Attribute "aria-checked" True False 
AriaColcountA :: Attribute "aria-colcount" True False 
AriaColindexA :: Attribute "aria-colindex" True False 
AriaColindextextA :: Attribute "aria-colindextext" True False 
AriaColspanA :: Attribute "aria-colspan" True False 
AriaControlsA :: Attribute "aria-controls" True False 
AriaCurrentA :: Attribute "aria-current" True False 
AriaDescribedbyA :: Attribute "aria-describedby" True False 
AriaDescriptionA :: Attribute "aria-description" True False 
AriaDetailsA :: Attribute "aria-details" True False 
AriaDisabledA :: Attribute "aria-disabled" True False 
AriaDropeffectA :: Attribute "aria-dropeffect" True False 
AriaErrormessageA :: Attribute "aria-errormessage" True False 
AriaExpandedA :: Attribute "aria-expanded" True False 
AriaFlowtoA :: Attribute "aria-flowto" True False 
AriaGrabbedA :: Attribute "aria-grabbed" True False 
AriaHaspopupA :: Attribute "aria-haspopup" True False 
AriaHiddenA :: Attribute "aria-hidden" True False 
AriaInvalidA :: Attribute "aria-invalid" True False 
AriaKeyshortcutsA :: Attribute "aria-keyshortcuts" True False 
AriaLabelA :: Attribute "aria-label" True False 
AriaLabelledByA :: Attribute "aria-labelledBy" True False 
AriaLevelA :: Attribute "aria-level" True False 
AriaLiveA :: Attribute "aria-live" True False 
AriaModalA :: Attribute "aria-modal" True False 
AriaMultilineA :: Attribute "aria-multiline" True False 
AriaMultiselectableA :: Attribute "aria-multiselectable" True False 
AriaOrientationA :: Attribute "aria-orientation" True False 
AriaOwnsA :: Attribute "aria-owns" True False 
AriaPlaceholderA :: Attribute "aria-placeholder" True False 
AriaPosinsetA :: Attribute "aria-posinset" True False 
AriaPressedA :: Attribute "aria-pressed" True False 
AriaReadonlyA :: Attribute "aria-readonly" True False 
AriaRelevantA :: Attribute "aria-relevant" True False 
AriaRequiredA :: Attribute "aria-required" True False 
AriaRoledescriptionA :: Attribute "aria-roledescription" True False 
AriaRowcountA :: Attribute "aria-rowcount" True False 
AriaRowindexA :: Attribute "aria-rowindex" True False 
AriaRowindextextA :: Attribute "aria-rowindextext" True False 
AriaRowspanA :: Attribute "aria-rowspan" True False 
AriaSelectedA :: Attribute "aria-selected" True False 
AriaSetsizeA :: Attribute "aria-setsize" True False 
AriaSortA :: Attribute "aria-sort" True False 
AriaValuemaxA :: Attribute "aria-valuemax" True False 
AriaValueminA :: Attribute "aria-valuemin" True False 
AriaValuenowA :: Attribute "aria-valuenow" True False 
AriaValuetextA :: Attribute "aria-valuetext" True False 

Instances

Instances details
Document (Attribute a global boolean) => Show (Attribute a global boolean) Source # 
Instance details

Defined in Html

Methods

showsPrec :: Int -> Attribute a global boolean -> ShowS #

show :: Attribute a global boolean -> String #

showList :: [Attribute a global boolean] -> ShowS #

data CompactHTML (a :: [Symbol]) Source #

A compacted html documented with it's variables annoted as a list of Symbols. It's Show instance is quite useful for developping: It highlights variables and renders the rest of the html.

Instances

Instances details
ShowTypeList a => Show (CompactHTML a) Source # 
Instance details

Defined in Html.Type.Internal

data Put (n :: Symbol) Source #

Data for putting variables into a rendered compacted html document.

Constructors

forall a.Convert a => Put a 

data V (n :: Symbol) Source #

Data for declaring variables in a html document which will be compacted.

Constructors

V 

newtype Raw a Source #

Wrapper for types which won't be escaped.

Constructors

Raw 

Fields

Instances

Instances details
Convert (Raw Char) Source # 
Instance details

Defined in Html.Convert

Convert (Raw String) Source # 
Instance details

Defined in Html.Convert

Convert (Raw Builder) Source # 
Instance details

Defined in Html.Convert

Convert (Raw Text) Source # 
Instance details

Defined in Html.Convert

Convert (Raw Text) Source # 
Instance details

Defined in Html.Convert

newtype Lawless a Source #

Constructors

Lawless a 

class Retrievable a Source #

List of Symbols for which a render function can be created.

Minimal complete definition

retrieve

Instances

Instances details
Retrievable ('[] :: [Symbol]) Source # 
Instance details

Defined in Html.Reify

Methods

retrieve :: ([Builder] -> [Builder]) -> (Builder -> f) -> CompactHTML '[] -> Retrieve f '[]

(KnownSymbol x, Retrievable xs) => Retrievable (x ': xs) Source # 
Instance details

Defined in Html.Reify

Methods

retrieve :: ([Builder] -> [Builder]) -> (Builder -> f) -> CompactHTML (x ': xs) -> Retrieve f (x ': xs)

type family Retrieve f xs where ... Source #

Type of a rendered compact html which determines the amount of arguments.

Equations

Retrieve f (x ': xs) = Put x -> Retrieve f xs 
Retrieve f '[] = f 

type Variables a = Dedupe (GetV a) Source #

Unique set of variables in a html document in the order of occurence.

type family Document a where ... Source #

Constraint for html documents. It's a type family to avoid an error about FlexibleContexts and a warning about MonoLocalBinds.

Equations

Document a = Document' a 

type family Compactable a where ... Source #

Constraint for compactable html documents. It's a type family to avoid an error about FlexibleContexts and a warning about MonoLocalBinds.

Equations

Compactable a = Compactable' a 

data ContentCategory Source #

Type level modelling of html

The following types and docs are from the following source: [2020-10-16] https://html.spec.whatwg.org/ Copyright © WHATWG HTML - Living Standard (Apple, Google, Mozilla, Microsoft). This work is licensed under a Creative Commons Attribution 4.0 International License

3 Semantics. structure, and APIs of HTML documents 3.2 Elements 3.2.5 Content models

Constructors

OnlyText 
(:|:) ContentCategory ContentCategory infixr 2 
(:&:) ContentCategory ContentCategory infixr 3 
NOT ContentCategory 
Elements [Symbol] 
None

3.2.5.1 The "nothing" content model

Metadata

3.2.5.2 Kinds of content 3.2.5.2.1 Metadata content

Flow

3.2.5.2.2 Flow content

Sectioning

3.2.5.2.3 Sectioning content

Heading

3.2.5.2.4 Heading content

Phrasing

3.2.5.2.5 Phrasing content

Embedded

3.2.5.2.6 Embedded content

Interactive

3.2.5.2.7 Interactive content

Palpable

3.2.5.2.8 Palpable content

Scripting

3.2.5.2.9 Script-supporting elements

type (&) k b = GetAttributeName k ': b infixr 5 Source #