272 lines
7 KiB
JavaScript
272 lines
7 KiB
JavaScript
'use strict';
|
|
|
|
var NS = exports.NAMESPACES = {
|
|
HTML: 'http://www.w3.org/1999/xhtml',
|
|
MATHML: 'http://www.w3.org/1998/Math/MathML',
|
|
SVG: 'http://www.w3.org/2000/svg',
|
|
XLINK: 'http://www.w3.org/1999/xlink',
|
|
XML: 'http://www.w3.org/XML/1998/namespace',
|
|
XMLNS: 'http://www.w3.org/2000/xmlns/'
|
|
};
|
|
|
|
exports.ATTRS = {
|
|
TYPE: 'type',
|
|
ACTION: 'action',
|
|
ENCODING: 'encoding',
|
|
PROMPT: 'prompt',
|
|
NAME: 'name',
|
|
COLOR: 'color',
|
|
FACE: 'face',
|
|
SIZE: 'size'
|
|
};
|
|
|
|
exports.DOCUMENT_MODE = {
|
|
NO_QUIRKS: 'no-quirks',
|
|
QUIRKS: 'quirks',
|
|
LIMITED_QUIRKS: 'limited-quirks'
|
|
};
|
|
|
|
var $ = exports.TAG_NAMES = {
|
|
A: 'a',
|
|
ADDRESS: 'address',
|
|
ANNOTATION_XML: 'annotation-xml',
|
|
APPLET: 'applet',
|
|
AREA: 'area',
|
|
ARTICLE: 'article',
|
|
ASIDE: 'aside',
|
|
|
|
B: 'b',
|
|
BASE: 'base',
|
|
BASEFONT: 'basefont',
|
|
BGSOUND: 'bgsound',
|
|
BIG: 'big',
|
|
BLOCKQUOTE: 'blockquote',
|
|
BODY: 'body',
|
|
BR: 'br',
|
|
BUTTON: 'button',
|
|
|
|
CAPTION: 'caption',
|
|
CENTER: 'center',
|
|
CODE: 'code',
|
|
COL: 'col',
|
|
COLGROUP: 'colgroup',
|
|
|
|
DD: 'dd',
|
|
DESC: 'desc',
|
|
DETAILS: 'details',
|
|
DIALOG: 'dialog',
|
|
DIR: 'dir',
|
|
DIV: 'div',
|
|
DL: 'dl',
|
|
DT: 'dt',
|
|
|
|
EM: 'em',
|
|
EMBED: 'embed',
|
|
|
|
FIELDSET: 'fieldset',
|
|
FIGCAPTION: 'figcaption',
|
|
FIGURE: 'figure',
|
|
FONT: 'font',
|
|
FOOTER: 'footer',
|
|
FOREIGN_OBJECT: 'foreignObject',
|
|
FORM: 'form',
|
|
FRAME: 'frame',
|
|
FRAMESET: 'frameset',
|
|
|
|
H1: 'h1',
|
|
H2: 'h2',
|
|
H3: 'h3',
|
|
H4: 'h4',
|
|
H5: 'h5',
|
|
H6: 'h6',
|
|
HEAD: 'head',
|
|
HEADER: 'header',
|
|
HGROUP: 'hgroup',
|
|
HR: 'hr',
|
|
HTML: 'html',
|
|
|
|
I: 'i',
|
|
IMG: 'img',
|
|
IMAGE: 'image',
|
|
INPUT: 'input',
|
|
IFRAME: 'iframe',
|
|
|
|
KEYGEN: 'keygen',
|
|
|
|
LABEL: 'label',
|
|
LI: 'li',
|
|
LINK: 'link',
|
|
LISTING: 'listing',
|
|
|
|
MAIN: 'main',
|
|
MALIGNMARK: 'malignmark',
|
|
MARQUEE: 'marquee',
|
|
MATH: 'math',
|
|
MENU: 'menu',
|
|
MENUITEM: 'menuitem',
|
|
META: 'meta',
|
|
MGLYPH: 'mglyph',
|
|
MI: 'mi',
|
|
MO: 'mo',
|
|
MN: 'mn',
|
|
MS: 'ms',
|
|
MTEXT: 'mtext',
|
|
|
|
NAV: 'nav',
|
|
NOBR: 'nobr',
|
|
NOFRAMES: 'noframes',
|
|
NOEMBED: 'noembed',
|
|
NOSCRIPT: 'noscript',
|
|
|
|
OBJECT: 'object',
|
|
OL: 'ol',
|
|
OPTGROUP: 'optgroup',
|
|
OPTION: 'option',
|
|
|
|
P: 'p',
|
|
PARAM: 'param',
|
|
PLAINTEXT: 'plaintext',
|
|
PRE: 'pre',
|
|
|
|
RB: 'rb',
|
|
RP: 'rp',
|
|
RT: 'rt',
|
|
RTC: 'rtc',
|
|
RUBY: 'ruby',
|
|
|
|
S: 's',
|
|
SCRIPT: 'script',
|
|
SECTION: 'section',
|
|
SELECT: 'select',
|
|
SOURCE: 'source',
|
|
SMALL: 'small',
|
|
SPAN: 'span',
|
|
STRIKE: 'strike',
|
|
STRONG: 'strong',
|
|
STYLE: 'style',
|
|
SUB: 'sub',
|
|
SUMMARY: 'summary',
|
|
SUP: 'sup',
|
|
|
|
TABLE: 'table',
|
|
TBODY: 'tbody',
|
|
TEMPLATE: 'template',
|
|
TEXTAREA: 'textarea',
|
|
TFOOT: 'tfoot',
|
|
TD: 'td',
|
|
TH: 'th',
|
|
THEAD: 'thead',
|
|
TITLE: 'title',
|
|
TR: 'tr',
|
|
TRACK: 'track',
|
|
TT: 'tt',
|
|
|
|
U: 'u',
|
|
UL: 'ul',
|
|
|
|
SVG: 'svg',
|
|
|
|
VAR: 'var',
|
|
|
|
WBR: 'wbr',
|
|
|
|
XMP: 'xmp'
|
|
};
|
|
|
|
var SPECIAL_ELEMENTS = exports.SPECIAL_ELEMENTS = Object.create(null);
|
|
|
|
SPECIAL_ELEMENTS[NS.HTML] = Object.create(null);
|
|
SPECIAL_ELEMENTS[NS.HTML][$.ADDRESS] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.APPLET] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.AREA] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.ARTICLE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.ASIDE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BASE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BASEFONT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BGSOUND] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BLOCKQUOTE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BODY] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BR] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BUTTON] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.CAPTION] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.CENTER] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.COL] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.COLGROUP] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DD] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DETAILS] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DIR] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DIV] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DL] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.EMBED] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FIELDSET] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FIGCAPTION] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FIGURE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FOOTER] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FORM] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FRAME] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FRAMESET] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H1] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H2] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H3] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H4] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H5] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H6] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.HEAD] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.HEADER] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.HGROUP] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.HR] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.HTML] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.IFRAME] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.IMG] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.INPUT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.LI] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.LINK] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.LISTING] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.MAIN] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.MARQUEE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.MENU] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.META] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.NAV] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.NOEMBED] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.NOFRAMES] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.NOSCRIPT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.OBJECT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.OL] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.P] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.PARAM] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.PLAINTEXT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.PRE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.SCRIPT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.SECTION] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.SELECT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.SOURCE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.STYLE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.SUMMARY] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TABLE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TBODY] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TD] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TEMPLATE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TEXTAREA] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TFOOT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TH] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.THEAD] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TITLE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TR] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TRACK] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.UL] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.WBR] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.XMP] = true;
|
|
|
|
SPECIAL_ELEMENTS[NS.MATHML] = Object.create(null);
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.MI] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.MO] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.MN] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.MS] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.MTEXT] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.ANNOTATION_XML] = true;
|
|
|
|
SPECIAL_ELEMENTS[NS.SVG] = Object.create(null);
|
|
SPECIAL_ELEMENTS[NS.SVG][$.TITLE] = true;
|
|
SPECIAL_ELEMENTS[NS.SVG][$.FOREIGN_OBJECT] = true;
|
|
SPECIAL_ELEMENTS[NS.SVG][$.DESC] = true;
|