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

(:>) :: forall father child. Lawful 'Fatherhood father child => father -> child -> father :> child 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

(:@) :: forall element attribution. Lawful 'Attribution element attribution => element -> attribution -> element :@ attribution 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

(:=) :: forall a v. 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" ('[] :: [ContentCategory]) 'None ('[] :: [Symbol]) 
Html :: Element "html" ('[] :: [ContentCategory]) ('Elements '["head", "body"]) '[GetAttributeName 'ManifestA]

4.1 The document element 4.1.1

Head :: Element "head" ('[] :: [ContentCategory]) 'Metadata ('[] :: [Symbol])

4.2 Document metadata 4.2.1

Title :: Element "title" '['Metadata] 'OnlyText ('[] :: [Symbol])

4.2.2

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

4.2.3

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

4.2.4

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

4.2.5

Style :: Element "style" '['Metadata] 'OnlyText '[GetAttributeName 'MediaA]

4.2.6

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

4.3 Sections 4.3.1

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

4.3.2

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

4.3.3

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

4.3.4

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

4.3.5

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

4.3.6

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

4.3.7

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

4.3.8

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

4.3.9

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

4.3.10

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

4.4 Grouping content 4.4.1

Hr :: Element "hr" '['Flow] 'None ('[] :: [Symbol])

4.4.2

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

4.4.3

Blockquote :: Element "blockquote" '['Flow, 'Palpable] 'Flow '[GetAttributeName 'CiteA]

4.4.4

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

4.4.5

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

4.4.6

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

4.4.7

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

4.4.8

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

4.4.9

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

4.4.10

Dd :: Element "dd" ('[] :: [ContentCategory]) 'Flow ('[] :: [Symbol])

4.4.11

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

4.4.12

Figcaption :: Element "figcaption" ('[] :: [ContentCategory]) 'Flow ('[] :: [Symbol])

4.4.13

Main :: Element "main" '['Flow, 'Palpable] 'Flow ('[] :: [Symbol])

4.4.14

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

4.4.15

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

4.5 Text-level semantics 4.5.1

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

4.5.2

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

4.5.3

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

4.5.4

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

4.5.5

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

4.5.6

Q :: Element "q" '['Flow, 'Phrasing, 'Palpable] 'Phrasing '[GetAttributeName 'CiteA]

4.5.7

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

4.5.8

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

4.5.9

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

4.5.10

Rt :: Element "rt" ('[] :: [ContentCategory]) 'Phrasing ('[] :: [Symbol])

4.5.11

Rp :: Element "rp" ('[] :: [ContentCategory]) 'OnlyText ('[] :: [Symbol])

4.5.12

Data :: Element "data" '['Flow, 'Phrasing, 'Palpable] 'Phrasing '[GetAttributeName 'ValueA]

4.5.13

Time :: Element "time" '['Flow, 'Phrasing, 'Palpable] 'Phrasing '[GetAttributeName 'DatetimeA]

4.5.14

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

4.5.15

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

4.5.16

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

4.5.17

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

4.5.18

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

4.5.19

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

4.5.20

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

4.5.21

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

4.5.22

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

4.5.23

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

4.5.24

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

4.5.25

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

4.5.26

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

4.5.27

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

4.5.28

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

4.7 Edits 4.7.1

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

4.7.2

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

4.8 Embedded content 4.8.1

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

4.8.2

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

4.8.3

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

4.8.5

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

4.8.6

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

4.8.7

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

4.8.8

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

4.8.9

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

4.8.10

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

4.8.11

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

4.8.13

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

4.8.14

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

4.9 Tabular data 4.9.1

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

4.9.2

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

4.9.3

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

4.9.4

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

4.9.5

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

4.9.6

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

4.9.7

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

4.9.8

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

4.9.9

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

4.9.10

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

4.10 Forms 4.10.3

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

4.10.4

Input :: Element "input" '['Flow, 'Phrasing, 'Interactive, 'Palpable] 'None (GetAttributeName '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 & ('[] :: [Symbol])))))))))))))))))))))))))))))))

4.10.5

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

4.10.6

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

4.10.7

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

4.10.8

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

4.10.9

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

4.10.10

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

4.10.11

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

4.10.12

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

4.10.13

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

4.10.14

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

4.10.15

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

4.10.16

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

4.11 Interactive elements 4.11.1

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

4.11.2

Dialog :: Element "dialog" '['Flow] 'Flow '[GetAttributeName 'OpenA]

4.11.4

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

4.12 Scripting 4.12.1

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

4.12.2

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

4.12.3

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

4.12.4

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

4.12.5

CustomElement :: forall (name :: Symbol) (categories :: [ContentCategory]) (contentModel :: ContentCategory) (contentAttributes :: [Symbol]). 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 :: Symbol) (global :: Bool) (boolean :: Bool) where Source #

Constructors

CustomA :: forall (name :: Symbol) (global :: Bool) (boolean :: Bool). 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

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 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

Convert (Raw String) Source # 
Instance details

Defined in Html.Convert

Convert (Raw Char) Source # 
Instance details

Defined in Html.Convert

newtype Lawless a Source #

Constructors

Lawless a 

class Retrievable (a :: [Symbol]) 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 ('[] :: [Symbol]) -> Retrieve f ('[] :: [Symbol])

(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 :: [Symbol]) 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 ('[] :: [Symbol]) = 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 :: Attribute a global boolean) (b :: [Symbol]) = GetAttributeName k ': b infixr 5 Source #