Skip to content

Instantly share code, notes, and snippets.

@audinue
Created January 4, 2025 22:09
Show Gist options
  • Save audinue/086cfee552af80080a5be009012da2a9 to your computer and use it in GitHub Desktop.
Save audinue/086cfee552af80080a5be009012da2a9 to your computer and use it in GitHub Desktop.
export interface Tag {
[name: string]: boolean | number | string | undefined
}
export interface A extends Tag {
accesskey?: string | undefined
charset?: string | undefined
class?: string | undefined
coords?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
href?: string | undefined
hreflang?: string | undefined
id?: string | undefined
lang?: string | undefined
name?: string | undefined
onblur?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onfocus?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
rel?: string | undefined
rev?: string | undefined
shape?: 'rect' | 'circle' | 'poly' | 'default' | undefined
style?: string | undefined
tabindex?: number | undefined
target?: string | undefined
title?: string | undefined
type?: string | undefined
}
export interface Abbr extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Acronym extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Address extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Applet extends Tag {
align?: 'top' | 'middle' | 'bottom' | 'left' | 'right' | undefined
alt?: string | undefined
archive?: string | undefined
class?: string | undefined
code?: string | undefined
codebase?: string | undefined
height?: string | undefined
hspace?: number | undefined
id?: string | undefined
name?: string | undefined
object?: string | undefined
style?: string | undefined
title?: string | undefined
vspace?: number | undefined
width?: string | undefined
}
export interface Area extends Tag {
accesskey?: string | undefined
alt?: string | undefined
class?: string | undefined
coords?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
href?: string | undefined
id?: string | undefined
lang?: string | undefined
nohref?: boolean | undefined
onblur?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onfocus?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
shape?: 'rect' | 'circle' | 'poly' | 'default' | undefined
style?: string | undefined
tabindex?: number | undefined
target?: string | undefined
title?: string | undefined
}
export interface B extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Base extends Tag {
href?: string | undefined
target?: string | undefined
}
export interface Basefont extends Tag {
color?: string | undefined
face?: string | undefined
id?: string | undefined
size?: string | undefined
}
export interface Bdo extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Big extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Blockquote extends Tag {
cite?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Body extends Tag {
alink?: string | undefined
background?: string | undefined
bgcolor?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
link?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onload?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
onunload?: string | undefined
style?: string | undefined
text?: string | undefined
title?: string | undefined
vlink?: string | undefined
}
export interface Br extends Tag {
class?: string | undefined
clear?: 'left' | 'all' | 'right' | 'none' | undefined
id?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Button extends Tag {
accesskey?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
disabled?: boolean | undefined
id?: string | undefined
lang?: string | undefined
name?: string | undefined
onblur?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onfocus?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
tabindex?: number | undefined
title?: string | undefined
type?: 'button' | 'submit' | 'reset' | undefined
value?: string | undefined
}
export interface Caption extends Tag {
align?: 'top' | 'bottom' | 'left' | 'right' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Center extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Cite extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Code extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Col extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined
char?: string | undefined
charoff?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
span?: number | undefined
style?: string | undefined
title?: string | undefined
valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined
width?: string | undefined
}
export interface Colgroup extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined
char?: string | undefined
charoff?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
span?: number | undefined
style?: string | undefined
title?: string | undefined
valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined
width?: string | undefined
}
export interface Dd extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Del extends Tag {
cite?: string | undefined
class?: string | undefined
datetime?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Dfn extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Dir extends Tag {
class?: string | undefined
compact?: boolean | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Div extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Dl extends Tag {
class?: string | undefined
compact?: boolean | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Dt extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Em extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Fieldset extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Font extends Tag {
class?: string | undefined
color?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
face?: string | undefined
id?: string | undefined
lang?: string | undefined
size?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Form extends Tag {
accept?: string | undefined
'accept-charset'?: string | undefined
action?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
enctype?: string | undefined
id?: string | undefined
lang?: string | undefined
method?: 'get' | 'post' | undefined
name?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
onreset?: string | undefined
onsubmit?: string | undefined
style?: string | undefined
target?: string | undefined
title?: string | undefined
}
export interface Frame extends Tag {
class?: string | undefined
frameborder?: '1' | '0' | undefined
id?: string | undefined
longdesc?: string | undefined
marginheight?: number | undefined
marginwidth?: number | undefined
name?: string | undefined
noresize?: boolean | undefined
scrolling?: 'yes' | 'no' | 'auto' | undefined
src?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Frameset extends Tag {
class?: string | undefined
cols?: string | undefined
id?: string | undefined
onload?: string | undefined
onunload?: string | undefined
rows?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface H1 extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface H2 extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface H3 extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface H4 extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface H5 extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface H6 extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Head extends Tag {
dir?: 'ltr' | 'rtl' | undefined
lang?: string | undefined
profile?: string | undefined
}
export interface Hr extends Tag {
align?: 'left' | 'center' | 'right' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
noshade?: boolean | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
size?: number | undefined
style?: string | undefined
title?: string | undefined
width?: string | undefined
}
export interface Html extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
style?: string | undefined
title?: string | undefined
version?: string | undefined
}
export interface I extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Iframe extends Tag {
align?: 'top' | 'middle' | 'bottom' | 'left' | 'right' | undefined
class?: string | undefined
frameborder?: '1' | '0' | undefined
height?: string | undefined
id?: string | undefined
longdesc?: string | undefined
marginheight?: number | undefined
marginwidth?: number | undefined
name?: string | undefined
scrolling?: 'yes' | 'no' | 'auto' | undefined
src?: string | undefined
style?: string | undefined
title?: string | undefined
width?: string | undefined
}
export interface Img extends Tag {
align?: 'top' | 'middle' | 'bottom' | 'left' | 'right' | undefined
alt?: string | undefined
border?: number | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
height?: string | undefined
hspace?: number | undefined
id?: string | undefined
ismap?: boolean | undefined
lang?: string | undefined
longdesc?: string | undefined
name?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
src?: string | undefined
style?: string | undefined
title?: string | undefined
usemap?: string | undefined
vspace?: number | undefined
width?: string | undefined
}
export interface Input extends Tag {
accept?: string | undefined
accesskey?: string | undefined
align?: 'top' | 'middle' | 'bottom' | 'left' | 'right' | undefined
alt?: string | undefined
checked?: boolean | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
disabled?: boolean | undefined
id?: string | undefined
ismap?: boolean | undefined
lang?: string | undefined
maxlength?: number | undefined
name?: string | undefined
onblur?: string | undefined
onchange?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onfocus?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
onselect?: string | undefined
readonly?: boolean | undefined
size?: string | undefined
src?: string | undefined
style?: string | undefined
tabindex?: number | undefined
title?: string | undefined
type?: 'text' | 'password' | 'checkbox' | 'radio' | 'submit' | 'reset' | 'file' | 'hidden' | 'image' | 'button' | undefined
usemap?: string | undefined
value?: string | undefined
}
export interface Ins extends Tag {
cite?: string | undefined
class?: string | undefined
datetime?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Isindex extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
prompt?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Kbd extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Label extends Tag {
accesskey?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
for?: string | undefined
id?: string | undefined
lang?: string | undefined
onblur?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onfocus?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Legend extends Tag {
accesskey?: string | undefined
align?: 'top' | 'bottom' | 'left' | 'right' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Li extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
type?: '1' | 'a' | 'A' | 'i' | 'I' | 'disc' | 'square' | 'circle' | undefined
value?: number | undefined
}
export interface Link extends Tag {
charset?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
href?: string | undefined
hreflang?: string | undefined
id?: string | undefined
lang?: string | undefined
media?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
rel?: string | undefined
rev?: string | undefined
style?: string | undefined
target?: string | undefined
title?: string | undefined
type?: string | undefined
}
export interface Map extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
name?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Menu extends Tag {
class?: string | undefined
compact?: boolean | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Meta extends Tag {
content?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
'http-equiv'?: string | undefined
lang?: string | undefined
name?: string | undefined
scheme?: string | undefined
}
export interface Noframes extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Noscript extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Object extends Tag {
align?: 'top' | 'middle' | 'bottom' | 'left' | 'right' | undefined
archive?: string | undefined
border?: number | undefined
class?: string | undefined
classid?: string | undefined
codebase?: string | undefined
codetype?: string | undefined
data?: string | undefined
declare?: boolean | undefined
dir?: 'ltr' | 'rtl' | undefined
height?: string | undefined
hspace?: number | undefined
id?: string | undefined
lang?: string | undefined
name?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
standby?: string | undefined
style?: string | undefined
tabindex?: number | undefined
title?: string | undefined
type?: string | undefined
usemap?: string | undefined
vspace?: number | undefined
width?: string | undefined
}
export interface Ol extends Tag {
class?: string | undefined
compact?: boolean | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
start?: number | undefined
style?: string | undefined
title?: string | undefined
type?: '1' | 'a' | 'A' | 'i' | 'I' | undefined
}
export interface Optgroup extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
disabled?: boolean | undefined
id?: string | undefined
label?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Option extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
disabled?: boolean | undefined
id?: string | undefined
label?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
selected?: boolean | undefined
style?: string | undefined
title?: string | undefined
value?: string | undefined
}
export interface P extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Param extends Tag {
id?: string | undefined
name?: string | undefined
type?: string | undefined
value?: string | undefined
valuetype?: 'data' | 'ref' | 'object' | undefined
}
export interface Pre extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
width?: number | undefined
}
export interface Q extends Tag {
cite?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface S extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Samp extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Script extends Tag {
charset?: string | undefined
defer?: boolean | undefined
language?: string | undefined
src?: string | undefined
type?: string | undefined
}
export interface Select extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
disabled?: boolean | undefined
id?: string | undefined
lang?: string | undefined
multiple?: boolean | undefined
name?: string | undefined
onblur?: string | undefined
onchange?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onfocus?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
size?: number | undefined
style?: string | undefined
tabindex?: number | undefined
title?: string | undefined
}
export interface Small extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Span extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Strike extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Strong extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Style extends Tag {
dir?: 'ltr' | 'rtl' | undefined
lang?: string | undefined
media?: string | undefined
title?: string | undefined
type?: string | undefined
}
export interface Sub extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Sup extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Table extends Tag {
align?: 'left' | 'center' | 'right' | undefined
bgcolor?: string | undefined
border?: number | undefined
cellpadding?: string | undefined
cellspacing?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
frame?: 'void' | 'above' | 'below' | 'hsides' | 'lhs' | 'rhs' | 'vsides' | 'box' | 'border' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
rules?: 'none' | 'groups' | 'rows' | 'cols' | 'all' | undefined
style?: string | undefined
summary?: string | undefined
title?: string | undefined
width?: string | undefined
}
export interface Tbody extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined
char?: string | undefined
charoff?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined
}
export interface Td extends Tag {
abbr?: string | undefined
align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined
axis?: string | undefined
bgcolor?: string | undefined
char?: string | undefined
charoff?: string | undefined
class?: string | undefined
colspan?: number | undefined
dir?: 'ltr' | 'rtl' | undefined
headers?: string | undefined
height?: string | undefined
id?: string | undefined
lang?: string | undefined
nowrap?: boolean | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
rowspan?: number | undefined
scope?: 'row' | 'col' | 'rowgroup' | 'colgroup' | undefined
style?: string | undefined
title?: string | undefined
valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined
width?: string | undefined
}
export interface Textarea extends Tag {
accesskey?: string | undefined
class?: string | undefined
cols?: number | undefined
dir?: 'ltr' | 'rtl' | undefined
disabled?: boolean | undefined
id?: string | undefined
lang?: string | undefined
name?: string | undefined
onblur?: string | undefined
onchange?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onfocus?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
onselect?: string | undefined
readonly?: boolean | undefined
rows?: number | undefined
style?: string | undefined
tabindex?: number | undefined
title?: string | undefined
}
export interface Tfoot extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined
char?: string | undefined
charoff?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined
}
export interface Th extends Tag {
abbr?: string | undefined
align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined
axis?: string | undefined
bgcolor?: string | undefined
char?: string | undefined
charoff?: string | undefined
class?: string | undefined
colspan?: number | undefined
dir?: 'ltr' | 'rtl' | undefined
headers?: string | undefined
height?: string | undefined
id?: string | undefined
lang?: string | undefined
nowrap?: boolean | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
rowspan?: number | undefined
scope?: 'row' | 'col' | 'rowgroup' | 'colgroup' | undefined
style?: string | undefined
title?: string | undefined
valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined
width?: string | undefined
}
export interface Thead extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined
char?: string | undefined
charoff?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined
}
export interface Title extends Tag {
dir?: 'ltr' | 'rtl' | undefined
lang?: string | undefined
}
export interface Tr extends Tag {
align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined
bgcolor?: string | undefined
char?: string | undefined
charoff?: string | undefined
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined
}
export interface Tt extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface U extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Ul extends Tag {
class?: string | undefined
compact?: boolean | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
type?: 'disc' | 'square' | 'circle' | undefined
}
export interface Var extends Tag {
class?: string | undefined
dir?: 'ltr' | 'rtl' | undefined
id?: string | undefined
lang?: string | undefined
onclick?: string | undefined
ondblclick?: string | undefined
onkeydown?: string | undefined
onkeypress?: string | undefined
onkeyup?: string | undefined
onmousedown?: string | undefined
onmousemove?: string | undefined
onmouseout?: string | undefined
onmouseover?: string | undefined
onmouseup?: string | undefined
style?: string | undefined
title?: string | undefined
}
export interface Html4 {
a: A
abbr: Abbr
acronym: Acronym
address: Address
applet: Applet
area: Area
b: B
base: Base
basefont: Basefont
bdo: Bdo
big: Big
blockquote: Blockquote
body: Body
br: Br
button: Button
caption: Caption
center: Center
cite: Cite
code: Code
col: Col
colgroup: Colgroup
dd: Dd
del: Del
dfn: Dfn
dir: Dir
div: Div
dl: Dl
dt: Dt
em: Em
fieldset: Fieldset
font: Font
form: Form
frame: Frame
frameset: Frameset
h1: H1
h2: H2
h3: H3
h4: H4
h5: H5
h6: H6
head: Head
hr: Hr
html: Html
i: I
iframe: Iframe
img: Img
input: Input
ins: Ins
isindex: Isindex
kbd: Kbd
label: Label
legend: Legend
li: Li
link: Link
map: Map
menu: Menu
meta: Meta
noframes: Noframes
noscript: Noscript
object: Object
ol: Ol
optgroup: Optgroup
option: Option
p: P
param: Param
pre: Pre
q: Q
s: S
samp: Samp
script: Script
select: Select
small: Small
span: Span
strike: Strike
strong: Strong
style: Style
sub: Sub
sup: Sup
table: Table
tbody: Tbody
td: Td
textarea: Textarea
tfoot: Tfoot
th: Th
thead: Thead
title: Title
tr: Tr
tt: Tt
u: U
ul: Ul
var: Var
[tag: string]: Tag
}
const elementsString = `"A","","","","","","anchor"
"ABBR","","","","","","abbreviated form (e.g., WWW, HTTP, etc.)"
"ACRONYM","","","","","",""
"ADDRESS","","","","","","information on author"
"APPLET","","","","D","L","Java applet"
"AREA","","F","E","","","client-side image map area"
"B","","","","","","bold text style"
"BASE","","F","E","","","document base URI"
"BASEFONT","","F","E","D","L","base font size"
"BDO","","","","","","I18N BiDi over-ride"
"BIG","","","","","","large text style"
"BLOCKQUOTE","","","","","","long quotation"
"BODY","O","O","","","","document body"
"BR","","F","E","","","forced line break"
"BUTTON","","","","","","push button"
"CAPTION","","","","","","table caption"
"CENTER","","","","D","L","shorthand for DIV align=center"
"CITE","","","","","","citation"
"CODE","","","","","","computer code fragment"
"COL","","F","E","","","table column"
"COLGROUP","","O","","","","table column group"
"DD","","O","","","","definition description"
"DEL","","","","","","deleted text"
"DFN","","","","","","instance definition"
"DIR","","","","D","L","directory list"
"DIV","","","","","","generic language/style container"
"DL","","","","","","definition list"
"DT","","O","","","","definition term"
"EM","","","","","","emphasis"
"FIELDSET","","","","","","form control group"
"FONT","","","","D","L","local change to font"
"FORM","","","","","","interactive form"
"FRAME","","F","E","","F","subwindow"
"FRAMESET","","","","","F","window subdivision"
"H1","","","","","","heading"
"H2","","","","","","heading"
"H3","","","","","","heading"
"H4","","","","","","heading"
"H5","","","","","","heading"
"H6","","","","","","heading"
"HEAD","O","O","","","","document head"
"HR","","F","E","","","horizontal rule"
"HTML","O","O","","","","document root element"
"I","","","","","","italic text style"
"IFRAME","","","","","L","inline subwindow"
"IMG","","F","E","","","Embedded image"
"INPUT","","F","E","","","form control"
"INS","","","","","","inserted text"
"ISINDEX","","F","E","D","L","single line prompt"
"KBD","","","","","","text to be entered by the user"
"LABEL","","","","","","form field label text"
"LEGEND","","","","","","fieldset legend"
"LI","","O","","","","list item"
"LINK","","F","E","","","a media-independent link"
"MAP","","","","","","client-side image map"
"MENU","","","","D","L","menu list"
"META","","F","E","","","generic metainformation"
"NOFRAMES","","","","","F","alternate content container for non frame-based rendering"
"NOSCRIPT","","","","","","alternate content container for non script-based rendering"
"OBJECT","","","","","","generic embedded object"
"OL","","","","","","ordered list"
"OPTGROUP","","","","","","option group"
"OPTION","","O","","","","selectable choice"
"P","","O","","","","paragraph"
"PARAM","","F","E","","","named property value"
"PRE","","","","","","preformatted text"
"Q","","","","","","short inline quotation"
"S","","","","D","L","strike-through text style"
"SAMP","","","","","","sample program output, scripts, etc."
"SCRIPT","","","","","","script statements"
"SELECT","","","","","","option selector"
"SMALL","","","","","","small text style"
"SPAN","","","","","","generic language/style container"
"STRIKE","","","","D","L","strike-through text"
"STRONG","","","","","","strong emphasis"
"STYLE","","","","","","style info"
"SUB","","","","","","subscript"
"SUP","","","","","","superscript"
"TABLE","","","","","",""
"TBODY","O","O","","","","table body"
"TD","","O","","","","table data cell"
"TEXTAREA","","","","","","multi-line text field"
"TFOOT","","O","","","","table footer"
"TH","","O","","","","table header cell"
"THEAD","","O","","","","table header"
"TITLE","","","","","","document title"
"TR","","O","","","","table row"
"TT","","","","","","teletype or monospaced text style"
"U","","","","D","L","underlined text style"
"UL","","","","","","unordered list"
"VAR","","","","","","instance of a variable or program argument"`
const attributesString = `"abbr","TD, TH","%Text;","#IMPLIED","","","abbreviation for header cell"
"accept-charset","FORM","%Charsets;","#IMPLIED","","","list of supported charsets"
"accept","FORM, INPUT","%ContentTypes;","#IMPLIED","","","list of MIME types for file upload"
"accesskey","A, AREA, BUTTON, INPUT, LABEL, LEGEND, TEXTAREA","%Character;","#IMPLIED","","","accessibility key character"
"action","FORM","%URI;","#REQUIRED","","","server-side form handler"
"align","CAPTION","%CAlign;","#IMPLIED","D","L","relative to table"
"align","APPLET, IFRAME, IMG, INPUT, OBJECT","%IAlign;","#IMPLIED","D","L","vertical or horizontal alignment"
"align","LEGEND","%LAlign;","#IMPLIED","D","L","relative to fieldset"
"align","TABLE","%TAlign;","#IMPLIED","D","L","table position relative to window"
"align","HR","(left | center | right)","#IMPLIED","D","L",""
"align","DIV, H1, H2, H3, H4, H5, H6, P","(left | center | right | justify)","#IMPLIED","D","L","align, text alignment"
"align","COL, COLGROUP, TBODY, TD, TFOOT, TH, THEAD, TR","(left | center | right | justify | char)","#IMPLIED","","",""
"alink","BODY","%Color;","#IMPLIED","D","L","color of selected links"
"alt","APPLET","%Text;","#IMPLIED","D","L","short description"
"alt","AREA, IMG","%Text;","#REQUIRED","","","short description"
"alt","INPUT","CDATA","#IMPLIED","","","short description"
"archive","APPLET","CDATA","#IMPLIED","D","L","comma-separated archive list"
"archive","OBJECT","CDATA","#IMPLIED","","","space-separated list of URIs"
"axis","TD, TH","CDATA","#IMPLIED","","","comma-separated list of related headers"
"background","BODY","%URI;","#IMPLIED","D","L","texture tile for document background"
"bgcolor","TABLE","%Color;","#IMPLIED","D","L","background color for cells"
"bgcolor","TR","%Color;","#IMPLIED","D","L","background color for row"
"bgcolor","TD, TH","%Color;","#IMPLIED","D","L","cell background color"
"bgcolor","BODY","%Color;","#IMPLIED","D","L","document background color"
"border","TABLE","%Pixels;","#IMPLIED","","","controls frame width around table"
"border","IMG, OBJECT","%Pixels;","#IMPLIED","D","L","link border width"
"cellpadding","TABLE","%Length;","#IMPLIED","","","spacing within cells"
"cellspacing","TABLE","%Length;","#IMPLIED","","","spacing between cells"
"char","COL, COLGROUP, TBODY, TD, TFOOT, TH, THEAD, TR","%Character;","#IMPLIED","","","alignment char, e.g. char=':'"
"charoff","COL, COLGROUP, TBODY, TD, TFOOT, TH, THEAD, TR","%Length;","#IMPLIED","","","offset for alignment char"
"charset","A, LINK, SCRIPT","%Charset;","#IMPLIED","","","char encoding of linked resource"
"checked","INPUT","(checked)","#IMPLIED","","","for radio buttons and check boxes"
"cite","BLOCKQUOTE, Q","%URI;","#IMPLIED","","","URI for source document or msg"
"cite","DEL, INS","%URI;","#IMPLIED","","","info on reason for change"
"class","All elements but BASE, BASEFONT, HEAD, HTML, META, PARAM, SCRIPT, STYLE, TITLE","CDATA","#IMPLIED","","","space-separated list of classes"
"classid","OBJECT","%URI;","#IMPLIED","","","identifies an implementation"
"clear","BR","(left | all | right | none)","none","D","L","control of text flow"
"code","APPLET","CDATA","#IMPLIED","D","L","applet class file"
"codebase","OBJECT","%URI;","#IMPLIED","","","base URI for classid, data, archive"
"codebase","APPLET","%URI;","#IMPLIED","D","L","optional base URI for applet"
"codetype","OBJECT","%ContentType;","#IMPLIED","","","content type for code"
"color","BASEFONT, FONT","%Color;","#IMPLIED","D","L","text color"
"cols","FRAMESET","%MultiLengths;","#IMPLIED","","F","list of lengths, default: 100% (1 col)"
"cols","TEXTAREA","NUMBER","#REQUIRED","","",""
"colspan","TD, TH","NUMBER","1","","","number of cols spanned by cell"
"compact","DIR, DL, MENU, OL, UL","(compact)","#IMPLIED","D","L","reduced interitem spacing"
"content","META","CDATA","#REQUIRED","","","associated information"
"coords","AREA","%Coords;","#IMPLIED","","","comma-separated list of lengths"
"coords","A","%Coords;","#IMPLIED","","","for use with client-side image maps"
"data","OBJECT","%URI;","#IMPLIED","","","reference to object's data"
"datetime","DEL, INS","%Datetime;","#IMPLIED","","","date and time of change"
"declare","OBJECT","(declare)","#IMPLIED","","","declare but don't instantiate flag"
"defer","SCRIPT","(defer)","#IMPLIED","","","UA may defer execution of script"
"dir","All elements but APPLET, BASE, BASEFONT, BDO, BR, FRAME, FRAMESET, IFRAME, PARAM, SCRIPT","(ltr | rtl)","#IMPLIED","","","direction for weak/neutral text"
"dir","BDO","(ltr | rtl)","#REQUIRED","","","directionality"
"disabled","BUTTON, INPUT, OPTGROUP, OPTION, SELECT, TEXTAREA","(disabled)","#IMPLIED","","","unavailable in this context"
"enctype","FORM","%ContentType;","""application/x-www- form-urlencoded""","","",""
"face","BASEFONT, FONT","CDATA","#IMPLIED","D","L","comma-separated list of font names"
"for","LABEL","IDREF","#IMPLIED","","","matches field ID value"
"frame","TABLE","%TFrame;","#IMPLIED","","","which parts of frame to render"
"frameborder","FRAME, IFRAME","(1 | 0)","1","","F","request frame borders?"
"headers","TD, TH","IDREFS","#IMPLIED","","","list of id's for header cells"
"height","IFRAME","%Length;","#IMPLIED","","L","frame height"
"height","TD, TH","%Length;","#IMPLIED","D","L","height for cell"
"height","IMG, OBJECT","%Length;","#IMPLIED","","","override height"
"height","APPLET","%Length;","#REQUIRED","D","L","initial height"
"href","A, AREA, LINK","%URI;","#IMPLIED","","","URI for linked resource"
"href","BASE","%URI;","#IMPLIED","","","URI that acts as base URI"
"hreflang","A, LINK","%LanguageCode;","#IMPLIED","","","language code"
"hspace","APPLET, IMG, OBJECT","%Pixels;","#IMPLIED","D","L","horizontal gutter"
"http-equiv","META","NAME","#IMPLIED","","","HTTP response header name"
"id","All elements but BASE, HEAD, HTML, META, SCRIPT, STYLE, TITLE","ID","#IMPLIED","","","document-wide unique id"
"ismap","IMG, INPUT","(ismap)","#IMPLIED","","","use server-side image map"
"label","OPTION","%Text;","#IMPLIED","","","for use in hierarchical menus"
"label","OPTGROUP","%Text;","#REQUIRED","","","for use in hierarchical menus"
"lang","All elements but APPLET, BASE, BASEFONT, BR, FRAME, FRAMESET, IFRAME, PARAM, SCRIPT","%LanguageCode;","#IMPLIED","","","language code"
"language","SCRIPT","CDATA","#IMPLIED","D","L","predefined script language name"
"link","BODY","%Color;","#IMPLIED","D","L","color of links"
"longdesc","IMG","%URI;","#IMPLIED","","","link to long description (complements alt)"
"longdesc","FRAME, IFRAME","%URI;","#IMPLIED","","F","link to long description (complements title)"
"marginheight","FRAME, IFRAME","%Pixels;","#IMPLIED","","F","margin height in pixels"
"marginwidth","FRAME, IFRAME","%Pixels;","#IMPLIED","","F","margin widths in pixels"
"maxlength","INPUT","NUMBER","#IMPLIED","","","max chars for text fields"
"media","STYLE","%MediaDesc;","#IMPLIED","","","designed for use with these media"
"media","LINK","%MediaDesc;","#IMPLIED","","","for rendering on these media"
"method","FORM","(GET | POST)","GET","","","HTTP method used to submit the form"
"multiple","SELECT","(multiple)","#IMPLIED","","","default is single selection"
"name","BUTTON, TEXTAREA","CDATA","#IMPLIED","","",""
"name","APPLET","CDATA","#IMPLIED","D","L","allows applets to find each other"
"name","SELECT","CDATA","#IMPLIED","","","field name"
"name","FORM","CDATA","#IMPLIED","","","name of form for scripting"
"name","FRAME, IFRAME","CDATA","#IMPLIED","","F","name of frame for targetting"
"name","IMG","CDATA","#IMPLIED","","","name of image for scripting"
"name","A","CDATA","#IMPLIED","","","named link end"
"name","INPUT, OBJECT","CDATA","#IMPLIED","","","submit as part of form"
"name","MAP","CDATA","#REQUIRED","","","for reference by usemap"
"name","PARAM","CDATA","#REQUIRED","","","property name"
"name","META","NAME","#IMPLIED","","","metainformation name"
"nohref","AREA","(nohref)","#IMPLIED","","","this region has no action"
"noresize","FRAME","(noresize)","#IMPLIED","","F","allow users to resize frames?"
"noshade","HR","(noshade)","#IMPLIED","D","L",""
"nowrap","TD, TH","(nowrap)","#IMPLIED","D","L","suppress word wrap"
"object","APPLET","CDATA","#IMPLIED","D","L","serialized applet file"
"onblur","A, AREA, BUTTON, INPUT, LABEL, SELECT, TEXTAREA","%Script;","#IMPLIED","","","the element lost the focus"
"onchange","INPUT, SELECT, TEXTAREA","%Script;","#IMPLIED","","","the element value was changed"
"onclick","All elements but APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE","%Script;","#IMPLIED","","","a pointer button was clicked"
"ondblclick","All elements but APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE","%Script;","#IMPLIED","","","a pointer button was double clicked"
"onfocus","A, AREA, BUTTON, INPUT, LABEL, SELECT, TEXTAREA","%Script;","#IMPLIED","","","the element got the focus"
"onkeydown","All elements but APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE","%Script;","#IMPLIED","","","a key was pressed down"
"onkeypress","All elements but APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE","%Script;","#IMPLIED","","","a key was pressed and released"
"onkeyup","All elements but APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE","%Script;","#IMPLIED","","","a key was released"
"onload","FRAMESET","%Script;","#IMPLIED","","F","all the frames have been loaded"
"onload","BODY","%Script;","#IMPLIED","","","the document has been loaded"
"onmousedown","All elements but APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE","%Script;","#IMPLIED","","","a pointer button was pressed down"
"onmousemove","All elements but APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE","%Script;","#IMPLIED","","","a pointer was moved within"
"onmouseout","All elements but APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE","%Script;","#IMPLIED","","","a pointer was moved away"
"onmouseover","All elements but APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE","%Script;","#IMPLIED","","","a pointer was moved onto"
"onmouseup","All elements but APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE","%Script;","#IMPLIED","","","a pointer button was released"
"onreset","FORM","%Script;","#IMPLIED","","","the form was reset"
"onselect","INPUT, TEXTAREA","%Script;","#IMPLIED","","","some text was selected"
"onsubmit","FORM","%Script;","#IMPLIED","","","the form was submitted"
"onunload","FRAMESET","%Script;","#IMPLIED","","F","all the frames have been removed"
"onunload","BODY","%Script;","#IMPLIED","","","the document has been removed"
"profile","HEAD","%URI;","#IMPLIED","","","named dictionary of meta info"
"prompt","ISINDEX","%Text;","#IMPLIED","D","L","prompt message"
"readonly","TEXTAREA","(readonly)","#IMPLIED","","",""
"readonly","INPUT","(readonly)","#IMPLIED","","","for text and passwd"
"rel","A, LINK","%LinkTypes;","#IMPLIED","","","forward link types"
"rev","A, LINK","%LinkTypes;","#IMPLIED","","","reverse link types"
"rows","FRAMESET","%MultiLengths;","#IMPLIED","","F","list of lengths, default: 100% (1 row)"
"rows","TEXTAREA","NUMBER","#REQUIRED","","",""
"rowspan","TD, TH","NUMBER","1","","","number of rows spanned by cell"
"rules","TABLE","%TRules;","#IMPLIED","","","rulings between rows and cols"
"scheme","META","CDATA","#IMPLIED","","","select form of content"
"scope","TD, TH","%Scope;","#IMPLIED","","","scope covered by header cells"
"scrolling","FRAME, IFRAME","(yes | no | auto)","auto","","F","scrollbar or none"
"selected","OPTION","(selected)","#IMPLIED","","",""
"shape","AREA","%Shape;","rect","","","controls interpretation of coords"
"shape","A","%Shape;","rect","","","for use with client-side image maps"
"size","HR","%Pixels;","#IMPLIED","D","L",""
"size","FONT","CDATA","#IMPLIED","D","L","[+|-]nn e.g. size=""+1"", size=""4"""
"size","INPUT","CDATA","#IMPLIED","","","specific to each type of field"
"size","BASEFONT","CDATA","#REQUIRED","D","L","base font size for FONT elements"
"size","SELECT","NUMBER","#IMPLIED","","","rows visible"
"span","COL","NUMBER","1","","","COL attributes affect N columns"
"span","COLGROUP","NUMBER","1","","","default number of columns in group"
"src","SCRIPT","%URI;","#IMPLIED","","","URI for an external script"
"src","INPUT","%URI;","#IMPLIED","","","for fields with images"
"src","FRAME, IFRAME","%URI;","#IMPLIED","","F","source of frame content"
"src","IMG","%URI;","#REQUIRED","","","URI of image to embed"
"standby","OBJECT","%Text;","#IMPLIED","","","message to show while loading"
"start","OL","NUMBER","#IMPLIED","D","L","starting sequence number"
"style","All elements but BASE, BASEFONT, HEAD, HTML, META, PARAM, SCRIPT, STYLE, TITLE","%StyleSheet;","#IMPLIED","","","associated style info"
"summary","TABLE","%Text;","#IMPLIED","","","purpose/structure for speech output"
"tabindex","A, AREA, BUTTON, INPUT, OBJECT, SELECT, TEXTAREA","NUMBER","#IMPLIED","","","position in tabbing order"
"target","A, AREA, BASE, FORM, LINK","%FrameTarget;","#IMPLIED","","L","render in this frame"
"text","BODY","%Color;","#IMPLIED","D","L","document text color"
"title","All elements but BASE, BASEFONT, HEAD, HTML, META, PARAM, SCRIPT, TITLE","%Text;","#IMPLIED","","","advisory title"
"type","A, LINK","%ContentType;","#IMPLIED","","","advisory content type"
"type","OBJECT","%ContentType;","#IMPLIED","","","content type for data"
"type","PARAM","%ContentType;","#IMPLIED","","","content type for value when valuetype=ref"
"type","SCRIPT","%ContentType;","#REQUIRED","","","content type of script language"
"type","STYLE","%ContentType;","#REQUIRED","","","content type of style language"
"type","INPUT","%InputType;","TEXT","","","what kind of widget is needed"
"type","LI","%LIStyle;","#IMPLIED","D","L","list item style"
"type","OL","%OLStyle;","#IMPLIED","D","L","numbering style"
"type","UL","%ULStyle;","#IMPLIED","D","L","bullet style"
"type","BUTTON","(button | submit | reset)","submit","","","for use as form button"
"usemap","IMG, INPUT, OBJECT","%URI;","#IMPLIED","","","use client-side image map"
"valign","COL, COLGROUP, TBODY, TD, TFOOT, TH, THEAD, TR","(top | middle | bottom | baseline)","#IMPLIED","","","vertical alignment in cells"
"value","INPUT","CDATA","#IMPLIED","","","Specify for radio buttons and checkboxes"
"value","OPTION","CDATA","#IMPLIED","","","defaults to element content"
"value","PARAM","CDATA","#IMPLIED","","","property value"
"value","BUTTON","CDATA","#IMPLIED","","","sent to server when submitted"
"value","LI","NUMBER","#IMPLIED","D","L","reset sequence number"
"valuetype","PARAM","(DATA | REF | OBJECT)","DATA","","","How to interpret value"
"version","HTML","CDATA","%HTML.Version;","D","L","Constant"
"vlink","BODY","%Color;","#IMPLIED","D","L","color of visited links"
"vspace","APPLET, IMG, OBJECT","%Pixels;","#IMPLIED","D","L","vertical gutter"
"width","HR","%Length;","#IMPLIED","D","L",""
"width","IFRAME","%Length;","#IMPLIED","","L","frame width"
"width","IMG, OBJECT","%Length;","#IMPLIED","","","override width"
"width","TABLE","%Length;","#IMPLIED","","","table width"
"width","TD, TH","%Length;","#IMPLIED","D","L","width for cell"
"width","APPLET","%Length;","#REQUIRED","D","L","initial width"
"width","COL","%MultiLength;","#IMPLIED","","","column width specification"
"width","COLGROUP","%MultiLength;","#IMPLIED","","","default width for enclosed COLs"
"width","PRE","NUMBER","#IMPLIED","D","L",""`
const toLower = value => value.toLowerCase()
const substract = (a, b) => a.filter(x => !b.includes(x))
const convertTags = tags => {
if (/^[A-Z0-9]+$/.test(tags)) {
return [tags].map(toLower)
}
if (/^[A-Z0-9]+(, [A-Z0-9]+)+$/.test(tags)) {
return tags.split(', ').map(toLower)
}
if (tags.startsWith('All elements but ')) {
return substract(
elements,
tags.replace('All elements but ', '').split(', ').map(toLower)
)
}
throw new Error('Unknown tags: ' + tags)
}
const convertType = (name, value) => {
if (value === `(${name})`) {
return 'boolean'
}
if (
[
'%Script;',
'%LinkTypes;',
'%Length;',
'%MultiLength;',
'%MultiLengths;',
'%URI;',
'%StyleSheet;',
'%MediaDesc;',
'%Text;',
'%Color;',
'%Character;',
'%ContentType;',
'%ContentTypes;',
'%Charset;',
'%Charsets;',
'%LanguageCode;',
'%FrameTarget;',
'%Datetime;',
'%Coords;',
'CDATA',
'NAME',
'ID',
'IDREF',
'IDREFS'
].includes(value)
) {
return 'string'
}
if (['NUMBER', '%Pixels;'].includes(value)) {
return 'number'
}
if (value === '%Scope;') {
return "'row' | 'col' | 'rowgroup' | 'colgroup'"
}
if (value === '%Shape;') {
return "'rect' | 'circle' | 'poly' | 'default'"
}
if (value === '%TFrame;') {
return "'void' | 'above' | 'below' | 'hsides' | 'lhs' | 'rhs' | 'vsides' | 'box' | 'border'"
}
if (value === '%TRules;') {
return "'none' | 'groups' | 'rows' | 'cols' | 'all'"
}
if (value === '%IAlign;') {
return "'top' | 'middle' | 'bottom' | 'left' | 'right'"
}
if (value === '%CAlign;' || value === '%LAlign;') {
return "'top' | 'bottom' | 'left' | 'right'"
}
if (value === '%TAlign;') {
return "'left' | 'center' | 'right'"
}
if (value === '%InputType;') {
return "'text' | 'password' | 'checkbox' | 'radio' | 'submit' | 'reset' | 'file' | 'hidden' | 'image' | 'button'"
}
if (/^\([a-z0-9]+(\s*\|\s*[a-z0-9]+)+\)$/i.test(value)) {
return (
"'" +
value
.replace(/^\(|\)$/g, '')
.split(/\s*\|\s*/)
.map(toLower)
.join("' | '") +
"'"
)
}
if (value === '%OLStyle;') {
return "'1' | 'a' | 'A' | 'i' | 'I'"
}
if (value === '%ULStyle;') {
return "'disc' | 'square' | 'circle'"
}
if (value === '%LIStyle;') {
return "'1' | 'a' | 'A' | 'i' | 'I' | 'disc' | 'square' | 'circle'"
}
return 'unknown'
}
const elements = elementsString
.replace(/^"|"$/gm, '')
.split(/\n/)
.map(row => row.split('","'))
.map(row => row[0])
.map(toLower)
const attributes = attributesString
.replace(/^"|"$/gm, '')
.split(/\n/)
.map(row => row.split('","'))
.map(([name, tags, value]) => ({ name, tags, value }))
.map(({ name, tags, value }) => ({
name,
tags: convertTags(tags),
type: convertType(name, value)
}))
.reduce((result, { name, tags, type }) => {
tags.forEach(tag => {
result[tag] ??= {}
result[tag][name] = type
})
return result
}, {})
const sortObject = object => {
const entries = Object.entries(object)
entries.sort((a, b) => {
return a < b ? -1 : a > b ? 1 : 0
})
return Object.fromEntries(entries)
}
const quote = value => (/^[a-z0-9]+$/.test(value) ? value : "'" + value + "'")
const ucfirst = x => x.charAt(0).toUpperCase() + x.substr(1)
let html = ''
html += 'export interface Tag {\n'
html += ' [name: string]: boolean | number | string | undefined\n'
html += '}\n\n'
for (let tag in sortObject(attributes)) {
html += `export interface ${ucfirst(tag)} extends Tag {\n`
for (let name in sortObject(attributes[tag])) {
html += ` ${quote(name)}?: ${attributes[tag][name]} | undefined\n`
}
html += '}\n\n'
}
html += 'export interface Html4 {\n'
for (let tag in sortObject(attributes)) {
html += ` ${tag}: ${ucfirst(tag)}\n`
}
html += ' [tag: string]: Tag\n'
html += '}\n'
console.log(html)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment