Skip to content

Latest commit

 

History

History
2169 lines (1252 loc) · 25.2 KB

Halogen-HTML.md

File metadata and controls

2169 lines (1252 loc) · 25.2 KB

Module Documentation

Module Halogen.HTML

This module defines the HTML types required by the Halogen library, and provides smart constructors for HTML5 elements.

TagName

newtype TagName

A type-safe wrapper for a HTML tag name

tagName

tagName :: String -> TagName

Create a tag name

runTagName

runTagName :: TagName -> String

Unwrap a TagName to get the tag name as a String.

HTML

data HTML i
  = Text String
  | Element TagName [A.Attr i] [HTML i]

An initial encoding of HTML nodes.

functorHTML

instance functorHTML :: Functor HTML

text

text :: forall i. String -> HTML i

element

element :: forall i. TagName -> [A.Attr i] -> [HTML i] -> HTML i

a

a :: forall i. [A.Attr i] -> [HTML i] -> HTML i

a_

a_ :: forall i. [HTML i] -> HTML i

abbr

abbr :: forall i. [A.Attr i] -> [HTML i] -> HTML i

abbr_

abbr_ :: forall i. [HTML i] -> HTML i

acronym

acronym :: forall i. [A.Attr i] -> [HTML i] -> HTML i

acronym_

acronym_ :: forall i. [HTML i] -> HTML i

address

address :: forall i. [A.Attr i] -> [HTML i] -> HTML i

address_

address_ :: forall i. [HTML i] -> HTML i

applet

applet :: forall i. [A.Attr i] -> [HTML i] -> HTML i

applet_

applet_ :: forall i. [HTML i] -> HTML i

area

area :: forall i. [A.Attr i] -> [HTML i] -> HTML i

area_

area_ :: forall i. [HTML i] -> HTML i

article

article :: forall i. [A.Attr i] -> [HTML i] -> HTML i

article_

article_ :: forall i. [HTML i] -> HTML i

aside

aside :: forall i. [A.Attr i] -> [HTML i] -> HTML i

aside_

aside_ :: forall i. [HTML i] -> HTML i

audio

audio :: forall i. [A.Attr i] -> [HTML i] -> HTML i

audio_

audio_ :: forall i. [HTML i] -> HTML i

b

b :: forall i. [A.Attr i] -> [HTML i] -> HTML i

b_

b_ :: forall i. [HTML i] -> HTML i

base

base :: forall i. [A.Attr i] -> [HTML i] -> HTML i

base_

base_ :: forall i. [HTML i] -> HTML i

basefont

basefont :: forall i. [A.Attr i] -> [HTML i] -> HTML i

basefont_

basefont_ :: forall i. [HTML i] -> HTML i

bdi

bdi :: forall i. [A.Attr i] -> [HTML i] -> HTML i

bdi_

bdi_ :: forall i. [HTML i] -> HTML i

bdo

bdo :: forall i. [A.Attr i] -> [HTML i] -> HTML i

bdo_

bdo_ :: forall i. [HTML i] -> HTML i

big

big :: forall i. [A.Attr i] -> [HTML i] -> HTML i

big_

big_ :: forall i. [HTML i] -> HTML i

blockquote

blockquote :: forall i. [A.Attr i] -> [HTML i] -> HTML i

blockquote_

blockquote_ :: forall i. [HTML i] -> HTML i

body

body :: forall i. [A.Attr i] -> [HTML i] -> HTML i

body_

body_ :: forall i. [HTML i] -> HTML i

br

br :: forall i. [A.Attr i] -> [HTML i] -> HTML i

br_

br_ :: forall i. [HTML i] -> HTML i

button

button :: forall i. [A.Attr i] -> [HTML i] -> HTML i

button_

button_ :: forall i. [HTML i] -> HTML i

canvas

canvas :: forall i. [A.Attr i] -> [HTML i] -> HTML i

canvas_

canvas_ :: forall i. [HTML i] -> HTML i

caption

caption :: forall i. [A.Attr i] -> [HTML i] -> HTML i

caption_

caption_ :: forall i. [HTML i] -> HTML i

center

center :: forall i. [A.Attr i] -> [HTML i] -> HTML i

center_

center_ :: forall i. [HTML i] -> HTML i

cite

cite :: forall i. [A.Attr i] -> [HTML i] -> HTML i

cite_

cite_ :: forall i. [HTML i] -> HTML i

code

code :: forall i. [A.Attr i] -> [HTML i] -> HTML i

code_

code_ :: forall i. [HTML i] -> HTML i

col

col :: forall i. [A.Attr i] -> [HTML i] -> HTML i

col_

col_ :: forall i. [HTML i] -> HTML i

colgroup

colgroup :: forall i. [A.Attr i] -> [HTML i] -> HTML i

colgroup_

colgroup_ :: forall i. [HTML i] -> HTML i

datalist

datalist :: forall i. [A.Attr i] -> [HTML i] -> HTML i

datalist_

datalist_ :: forall i. [HTML i] -> HTML i

dd

dd :: forall i. [A.Attr i] -> [HTML i] -> HTML i

dd_

dd_ :: forall i. [HTML i] -> HTML i

del

del :: forall i. [A.Attr i] -> [HTML i] -> HTML i

del_

del_ :: forall i. [HTML i] -> HTML i

details

details :: forall i. [A.Attr i] -> [HTML i] -> HTML i

details_

details_ :: forall i. [HTML i] -> HTML i

dfn

dfn :: forall i. [A.Attr i] -> [HTML i] -> HTML i

dfn_

dfn_ :: forall i. [HTML i] -> HTML i

dialog

dialog :: forall i. [A.Attr i] -> [HTML i] -> HTML i

dialog_

dialog_ :: forall i. [HTML i] -> HTML i

dir

dir :: forall i. [A.Attr i] -> [HTML i] -> HTML i

dir_

dir_ :: forall i. [HTML i] -> HTML i

div

div :: forall i. [A.Attr i] -> [HTML i] -> HTML i

div_

div_ :: forall i. [HTML i] -> HTML i

dl

dl :: forall i. [A.Attr i] -> [HTML i] -> HTML i

dl_

dl_ :: forall i. [HTML i] -> HTML i

dt

dt :: forall i. [A.Attr i] -> [HTML i] -> HTML i

dt_

dt_ :: forall i. [HTML i] -> HTML i

em

em :: forall i. [A.Attr i] -> [HTML i] -> HTML i

em_

em_ :: forall i. [HTML i] -> HTML i

embed

embed :: forall i. [A.Attr i] -> [HTML i] -> HTML i

embed_

embed_ :: forall i. [HTML i] -> HTML i

fieldset

fieldset :: forall i. [A.Attr i] -> [HTML i] -> HTML i

fieldset_

fieldset_ :: forall i. [HTML i] -> HTML i

figcaption

figcaption :: forall i. [A.Attr i] -> [HTML i] -> HTML i

figcaption_

figcaption_ :: forall i. [HTML i] -> HTML i

figure

figure :: forall i. [A.Attr i] -> [HTML i] -> HTML i

figure_

figure_ :: forall i. [HTML i] -> HTML i

font

font :: forall i. [A.Attr i] -> [HTML i] -> HTML i

font_

font_ :: forall i. [HTML i] -> HTML i

footer

footer :: forall i. [A.Attr i] -> [HTML i] -> HTML i

footer_

footer_ :: forall i. [HTML i] -> HTML i

form

form :: forall i. [A.Attr i] -> [HTML i] -> HTML i

form_

form_ :: forall i. [HTML i] -> HTML i

frame

frame :: forall i. [A.Attr i] -> [HTML i] -> HTML i

frame_

frame_ :: forall i. [HTML i] -> HTML i

frameset

frameset :: forall i. [A.Attr i] -> [HTML i] -> HTML i

frameset_

frameset_ :: forall i. [HTML i] -> HTML i

h1

h1 :: forall i. [A.Attr i] -> [HTML i] -> HTML i

h1_

h1_ :: forall i. [HTML i] -> HTML i

h2

h2 :: forall i. [A.Attr i] -> [HTML i] -> HTML i

h2_

h2_ :: forall i. [HTML i] -> HTML i

h3

h3 :: forall i. [A.Attr i] -> [HTML i] -> HTML i

h3_

h3_ :: forall i. [HTML i] -> HTML i

h4

h4 :: forall i. [A.Attr i] -> [HTML i] -> HTML i

h4_

h4_ :: forall i. [HTML i] -> HTML i

h5

h5 :: forall i. [A.Attr i] -> [HTML i] -> HTML i

h5_

h5_ :: forall i. [HTML i] -> HTML i

h6

h6 :: forall i. [A.Attr i] -> [HTML i] -> HTML i

h6_

h6_ :: forall i. [HTML i] -> HTML i

head

head :: forall i. [A.Attr i] -> [HTML i] -> HTML i

head_

head_ :: forall i. [HTML i] -> HTML i

header

header :: forall i. [A.Attr i] -> [HTML i] -> HTML i

header_

header_ :: forall i. [HTML i] -> HTML i

hr

hr :: forall i. [A.Attr i] -> [HTML i] -> HTML i

hr_

hr_ :: forall i. [HTML i] -> HTML i

html

html :: forall i. [A.Attr i] -> [HTML i] -> HTML i

html_

html_ :: forall i. [HTML i] -> HTML i

i

i :: forall i. [A.Attr i] -> [HTML i] -> HTML i

i_

i_ :: forall i. [HTML i] -> HTML i

iframe

iframe :: forall i. [A.Attr i] -> [HTML i] -> HTML i

iframe_

iframe_ :: forall i. [HTML i] -> HTML i

img

img :: forall i. [A.Attr i] -> [HTML i] -> HTML i

img_

img_ :: forall i. [HTML i] -> HTML i

input

input :: forall i. [A.Attr i] -> [HTML i] -> HTML i

input_

input_ :: forall i. [HTML i] -> HTML i

ins

ins :: forall i. [A.Attr i] -> [HTML i] -> HTML i

ins_

ins_ :: forall i. [HTML i] -> HTML i

kbd

kbd :: forall i. [A.Attr i] -> [HTML i] -> HTML i

kbd_

kbd_ :: forall i. [HTML i] -> HTML i

keygen

keygen :: forall i. [A.Attr i] -> [HTML i] -> HTML i

keygen_

keygen_ :: forall i. [HTML i] -> HTML i

label

label :: forall i. [A.Attr i] -> [HTML i] -> HTML i

label_

label_ :: forall i. [HTML i] -> HTML i

legend

legend :: forall i. [A.Attr i] -> [HTML i] -> HTML i

legend_

legend_ :: forall i. [HTML i] -> HTML i

li

li :: forall i. [A.Attr i] -> [HTML i] -> HTML i

li_

li_ :: forall i. [HTML i] -> HTML i

link

link :: forall i. [A.Attr i] -> [HTML i] -> HTML i

link_

link_ :: forall i. [HTML i] -> HTML i

main

main :: forall i. [A.Attr i] -> [HTML i] -> HTML i

main_

main_ :: forall i. [HTML i] -> HTML i

map

map :: forall i. [A.Attr i] -> [HTML i] -> HTML i

map_

map_ :: forall i. [HTML i] -> HTML i

mark

mark :: forall i. [A.Attr i] -> [HTML i] -> HTML i

mark_

mark_ :: forall i. [HTML i] -> HTML i

menu

menu :: forall i. [A.Attr i] -> [HTML i] -> HTML i

menu_

menu_ :: forall i. [HTML i] -> HTML i

menuitem

menuitem :: forall i. [A.Attr i] -> [HTML i] -> HTML i

menuitem_

menuitem_ :: forall i. [HTML i] -> HTML i

meta

meta :: forall i. [A.Attr i] -> [HTML i] -> HTML i

meta_

meta_ :: forall i. [HTML i] -> HTML i

meter

meter :: forall i. [A.Attr i] -> [HTML i] -> HTML i

meter_

meter_ :: forall i. [HTML i] -> HTML i

nav

nav :: forall i. [A.Attr i] -> [HTML i] -> HTML i

nav_

nav_ :: forall i. [HTML i] -> HTML i

noframes

noframes :: forall i. [A.Attr i] -> [HTML i] -> HTML i

noframes_

noframes_ :: forall i. [HTML i] -> HTML i

noscript

noscript :: forall i. [A.Attr i] -> [HTML i] -> HTML i

noscript_

noscript_ :: forall i. [HTML i] -> HTML i

object

object :: forall i. [A.Attr i] -> [HTML i] -> HTML i

object_

object_ :: forall i. [HTML i] -> HTML i

ol

ol :: forall i. [A.Attr i] -> [HTML i] -> HTML i

ol_

ol_ :: forall i. [HTML i] -> HTML i

optgroup

optgroup :: forall i. [A.Attr i] -> [HTML i] -> HTML i

optgroup_

optgroup_ :: forall i. [HTML i] -> HTML i

option

option :: forall i. [A.Attr i] -> [HTML i] -> HTML i

option_

option_ :: forall i. [HTML i] -> HTML i

output

output :: forall i. [A.Attr i] -> [HTML i] -> HTML i

output_

output_ :: forall i. [HTML i] -> HTML i

p

p :: forall i. [A.Attr i] -> [HTML i] -> HTML i

p_

p_ :: forall i. [HTML i] -> HTML i

param

param :: forall i. [A.Attr i] -> [HTML i] -> HTML i

param_

param_ :: forall i. [HTML i] -> HTML i

pre

pre :: forall i. [A.Attr i] -> [HTML i] -> HTML i

pre_

pre_ :: forall i. [HTML i] -> HTML i

progress

progress :: forall i. [A.Attr i] -> [HTML i] -> HTML i

progress_

progress_ :: forall i. [HTML i] -> HTML i

q

q :: forall i. [A.Attr i] -> [HTML i] -> HTML i

q_

q_ :: forall i. [HTML i] -> HTML i

rp

rp :: forall i. [A.Attr i] -> [HTML i] -> HTML i

rp_

rp_ :: forall i. [HTML i] -> HTML i

rt

rt :: forall i. [A.Attr i] -> [HTML i] -> HTML i

rt_

rt_ :: forall i. [HTML i] -> HTML i

ruby

ruby :: forall i. [A.Attr i] -> [HTML i] -> HTML i

ruby_

ruby_ :: forall i. [HTML i] -> HTML i

s

s :: forall i. [A.Attr i] -> [HTML i] -> HTML i

s_

s_ :: forall i. [HTML i] -> HTML i

samp

samp :: forall i. [A.Attr i] -> [HTML i] -> HTML i

samp_

samp_ :: forall i. [HTML i] -> HTML i

script

script :: forall i. [A.Attr i] -> [HTML i] -> HTML i

script_

script_ :: forall i. [HTML i] -> HTML i

section

section :: forall i. [A.Attr i] -> [HTML i] -> HTML i

section_

section_ :: forall i. [HTML i] -> HTML i

select

select :: forall i. [A.Attr i] -> [HTML i] -> HTML i

select_

select_ :: forall i. [HTML i] -> HTML i

small

small :: forall i. [A.Attr i] -> [HTML i] -> HTML i

small_

small_ :: forall i. [HTML i] -> HTML i

source

source :: forall i. [A.Attr i] -> [HTML i] -> HTML i

source_

source_ :: forall i. [HTML i] -> HTML i

span

span :: forall i. [A.Attr i] -> [HTML i] -> HTML i

span_

span_ :: forall i. [HTML i] -> HTML i

strike

strike :: forall i. [A.Attr i] -> [HTML i] -> HTML i

strike_

strike_ :: forall i. [HTML i] -> HTML i

strong

strong :: forall i. [A.Attr i] -> [HTML i] -> HTML i

strong_

strong_ :: forall i. [HTML i] -> HTML i

style

style :: forall i. [A.Attr i] -> [HTML i] -> HTML i

style_

style_ :: forall i. [HTML i] -> HTML i

sub

sub :: forall i. [A.Attr i] -> [HTML i] -> HTML i

sub_

sub_ :: forall i. [HTML i] -> HTML i

summary

summary :: forall i. [A.Attr i] -> [HTML i] -> HTML i

summary_

summary_ :: forall i. [HTML i] -> HTML i

sup

sup :: forall i. [A.Attr i] -> [HTML i] -> HTML i

sup_

sup_ :: forall i. [HTML i] -> HTML i

table

table :: forall i. [A.Attr i] -> [HTML i] -> HTML i

table_

table_ :: forall i. [HTML i] -> HTML i

tbody

tbody :: forall i. [A.Attr i] -> [HTML i] -> HTML i

tbody_

tbody_ :: forall i. [HTML i] -> HTML i

td

td :: forall i. [A.Attr i] -> [HTML i] -> HTML i

td_

td_ :: forall i. [HTML i] -> HTML i

textarea

textarea :: forall i. [A.Attr i] -> [HTML i] -> HTML i

textarea_

textarea_ :: forall i. [HTML i] -> HTML i

tfoot

tfoot :: forall i. [A.Attr i] -> [HTML i] -> HTML i

tfoot_

tfoot_ :: forall i. [HTML i] -> HTML i

th

th :: forall i. [A.Attr i] -> [HTML i] -> HTML i

th_

th_ :: forall i. [HTML i] -> HTML i

thead

thead :: forall i. [A.Attr i] -> [HTML i] -> HTML i

thead_

thead_ :: forall i. [HTML i] -> HTML i

time

time :: forall i. [A.Attr i] -> [HTML i] -> HTML i

time_

time_ :: forall i. [HTML i] -> HTML i

title

title :: forall i. [A.Attr i] -> [HTML i] -> HTML i

title_

title_ :: forall i. [HTML i] -> HTML i

tr

tr :: forall i. [A.Attr i] -> [HTML i] -> HTML i

tr_

tr_ :: forall i. [HTML i] -> HTML i

track

track :: forall i. [A.Attr i] -> [HTML i] -> HTML i

track_

track_ :: forall i. [HTML i] -> HTML i

tt

tt :: forall i. [A.Attr i] -> [HTML i] -> HTML i

tt_

tt_ :: forall i. [HTML i] -> HTML i

u

u :: forall i. [A.Attr i] -> [HTML i] -> HTML i

u_

u_ :: forall i. [HTML i] -> HTML i

ul

ul :: forall i. [A.Attr i] -> [HTML i] -> HTML i

ul_

ul_ :: forall i. [HTML i] -> HTML i

var

var :: forall i. [A.Attr i] -> [HTML i] -> HTML i

var_

var_ :: forall i. [HTML i] -> HTML i

video

video :: forall i. [A.Attr i] -> [HTML i] -> HTML i

video_

video_ :: forall i. [HTML i] -> HTML i

wbr

wbr :: forall i. [A.Attr i] -> [HTML i] -> HTML i

wbr_

wbr_ :: forall i. [HTML i] -> HTML i

Module Halogen.HTML.Attributes

This module enumerates some common HTML attributes, and provides additional helper functions for working with CSS classes.

ExistsR

data ExistsR (f :: # * -> *)

We need a variant of Exists which works for type constructors which accept a row of types.

runExistsR

runExistsR :: forall f r. (forall a. f a -> r) -> ExistsR f -> r

mkExistsR

mkExistsR :: forall f a. f a -> ExistsR f

AttrF

data AttrF value
  = AttrF (AttributeName value -> value -> String) (AttributeName value) value

The data which represents a typed attribute, hidden inside an existential package in the Attr type.

HandlerF

data HandlerF i fields
  = HandlerF (EventName fields) (Event fields -> EventHandler i)

The data which represents a typed event handler, hidden inside an existential package in the Attr type.

Attr

data Attr i
  = Attr (Exists AttrF)
  | Handler (ExistsR (HandlerF i))
  | Initializer i
  | Finalizer i

A single attribute is either

  • An attribute
  • An event handler

functorAttr

instance functorAttr :: Functor Attr

attr

attr :: forall value i. (IsAttribute value) => AttributeName value -> value -> Attr i

Create an attribute

handler

handler :: forall fields i. EventName fields -> (Event fields -> EventHandler i) -> Attr i

Create an event handler

initializer

initializer :: forall i. i -> Attr i

Attach an initializer.

finalizer

finalizer :: forall i. i -> Attr i

Attach a finalizer.

ClassName

newtype ClassName

A wrapper for strings which are used as CSS classes

className

className :: String -> ClassName

runClassName

runClassName :: ClassName -> String

Unpack a class name

AttributeName

newtype AttributeName value

A type-safe wrapper for attribute names

The phantom type value describes the type of value which this attribute requires.

attributeName

attributeName :: forall value. String -> AttributeName value

Create an attribute name

runAttributeName

runAttributeName :: forall value. AttributeName value -> String

Unpack an attribute name

EventName

newtype EventName (fields :: # *)

A type-safe wrapper for event names.

The phantom type fields describes the event type which we can expect to exist on events corresponding to this name.

eventName

eventName :: forall fields. String -> EventName fields

runEventName

runEventName :: forall fields. EventName fields -> String

Unpack an event name

IsAttribute

class IsAttribute a where
  toAttrString :: AttributeName a -> a -> String

This type class captures those types which can be used as attribute values.

toAttrString is an alternative to show, and is needed by attr in the string renderer.

stringIsAttribute

instance stringIsAttribute :: IsAttribute String

numberIsAttribute

instance numberIsAttribute :: IsAttribute Number

booleanIsAttribute

instance booleanIsAttribute :: IsAttribute Boolean

key

key :: forall i. String -> Attr i

alt

alt :: forall i. String -> Attr i

charset

charset :: forall i. String -> Attr i

class_

class_ :: forall i. ClassName -> Attr i

classes

classes :: forall i. [ClassName] -> Attr i

colSpan

colSpan :: forall i. Number -> Attr i

rowSpan

rowSpan :: forall i. Number -> Attr i

content

content :: forall i. String -> Attr i

for

for :: forall i. String -> Attr i

height

height :: forall i. Number -> Attr i

href

href :: forall i. String -> Attr i

httpEquiv

httpEquiv :: forall i. String -> Attr i

id_

id_ :: forall i. String -> Attr i

name

name :: forall i. String -> Attr i

rel

rel :: forall i. String -> Attr i

src

src :: forall i. String -> Attr i

target

target :: forall i. String -> Attr i

title

title :: forall i. String -> Attr i

type_

type_ :: forall i. String -> Attr i

value

value :: forall i. String -> Attr i

width

width :: forall i. Number -> Attr i

disabled

disabled :: forall i. Boolean -> Attr i

required

required :: forall i. Boolean -> Attr i

readonly

readonly :: forall i. Boolean -> Attr i

spellcheck

spellcheck :: forall i. Boolean -> Attr i

enabled

enabled :: forall i. Boolean -> Attr i

checked

checked :: forall i. Boolean -> Attr i

selected

selected :: forall i. Boolean -> Attr i

placeholder

placeholder :: forall i. String -> Attr i