zydx-plus
Version:
Vue.js
437 lines (422 loc) • 10 kB
JavaScript
export let dtd = ((function () {
function _(s) {
for (var k in s) {
s[k.toUpperCase()] = s[k];
}
return s;
}
var X = function (t) {
var a = arguments;
for (var i = 1; i < a.length; i++) {
var x = a[i];
for (var k in x) {
if (!t.hasOwnProperty(k)) {
t[k] = x[k];
}
}
}
return t;
};
var A = _({ isindex: 1, fieldset: 1 }),
B = _({ input: 1, button: 1, select: 1, textarea: 1, label: 1 }),
C = X(_({ a: 1 }), B),
D = X({ iframe: 1 }, C),
E = _({
hr: 1,
ul: 1,
menu: 1,
div: 1,
blockquote: 1,
noscript: 1,
table: 1,
center: 1,
address: 1,
dir: 1,
pre: 1,
h5: 1,
dl: 1,
h4: 1,
noframes: 1,
h6: 1,
ol: 1,
h1: 1,
h3: 1,
h2: 1
}),
F = _({ ins: 1, del: 1, script: 1, style: 1 }),
G = X(
_({
mark: 1,
b: 1,
acronym: 1,
bdo: 1,
var: 1,
"#": 1,
abbr: 1,
code: 1,
br: 1,
i: 1,
cite: 1,
kbd: 1,
u: 1,
strike: 1,
s: 1,
tt: 1,
strong: 1,
q: 1,
samp: 1,
em: 1,
dfn: 1,
span: 1
}),
F
),
H = X(
_({
sub: 1,
img: 1,
embed: 1,
object: 1,
sup: 1,
basefont: 1,
map: 1,
applet: 1,
font: 1,
big: 1,
small: 1
}),
G
),
I = X(_({ p: 1 }), H),
J = X(_({ iframe: 1 }), H, B),
K = _({
img: 1,
embed: 1,
noscript: 1,
br: 1,
kbd: 1,
center: 1,
button: 1,
basefont: 1,
h5: 1,
h4: 1,
samp: 1,
h6: 1,
ol: 1,
h1: 1,
h3: 1,
h2: 1,
form: 1,
font: 1,
"#": 1,
select: 1,
menu: 1,
ins: 1,
abbr: 1,
label: 1,
code: 1,
table: 1,
script: 1,
cite: 1,
input: 1,
iframe: 1,
strong: 1,
textarea: 1,
noframes: 1,
big: 1,
small: 1,
span: 1,
hr: 1,
sub: 1,
bdo: 1,
var: 1,
div: 1,
object: 1,
sup: 1,
strike: 1,
dir: 1,
map: 1,
dl: 1,
applet: 1,
del: 1,
isindex: 1,
fieldset: 1,
ul: 1,
b: 1,
acronym: 1,
a: 1,
blockquote: 1,
i: 1,
u: 1,
s: 1,
tt: 1,
address: 1,
q: 1,
pre: 1,
p: 1,
em: 1,
dfn: 1
}),
L = X(_({ a: 0 }), J), //a不能被切开,所以把他
M = _({ tr: 1 }),
N = _({ "#": 1 }),
O = X(_({ param: 1 }), K),
P = X(_({ form: 1 }), A, D, E, I),
Q = _({ li: 1, ol: 1, ul: 1 }),
R = _({ style: 1, script: 1 }),
S = _({ base: 1, link: 1, meta: 1, title: 1 }),
T = X(S, R),
U = _({ head: 1, body: 1 }),
V = _({ html: 1 });
var block = _({
address: 1,
blockquote: 1,
center: 1,
dir: 1,
div: 1,
dl: 1,
fieldset: 1,
form: 1,
h1: 1,
h2: 1,
h3: 1,
h4: 1,
h5: 1,
h6: 1,
hr: 1,
isindex: 1,
menu: 1,
noframes: 1,
ol: 1,
p: 1,
pre: 1,
table: 1,
ul: 1
}),
empty = _({
area: 1,
base: 1,
basefont: 1,
br: 1,
col: 1,
command: 1,
dialog: 1,
embed: 1,
hr: 1,
img: 1,
input: 1,
isindex: 1,
keygen: 1,
link: 1,
meta: 1,
param: 1,
source: 1,
track: 1,
wbr: 1
});
return _({
// $ 表示自定的属性
// body外的元素列表.
$nonBodyContent: X(V, U, S),
//块结构元素列表
$block: block,
//内联元素列表
$inline: L,
$inlineWithA: X(_({ a: 1 }), L),
$body: X(_({ script: 1, style: 1 }), block),
$cdata: _({ script: 1, style: 1 }),
//自闭和元素
$empty: empty,
//不是自闭合,但不能让range选中里边
$nonChild: _({ iframe: 1, textarea: 1 }),
//列表元素列表
$listItem: _({ dd: 1, dt: 1, li: 1 }),
//列表根元素列表
$list: _({ ul: 1, ol: 1, dl: 1 }),
//不能认为是空的元素
$isNotEmpty: _({
table: 1,
ul: 1,
ol: 1,
dl: 1,
iframe: 1,
area: 1,
base: 1,
col: 1,
hr: 1,
img: 1,
embed: 1,
input: 1,
textarea: 1,
link: 1,
meta: 1,
param: 1,
h1: 1,
h2: 1,
h3: 1,
h4: 1,
h5: 1,
h6: 1
}),
//如果没有子节点就可以删除的元素列表,像span,a
$removeEmpty: _({
a: 1,
abbr: 1,
acronym: 1,
address: 1,
b: 1,
bdo: 1,
big: 1,
cite: 1,
code: 1,
del: 1,
dfn: 1,
em: 1,
font: 1,
i: 1,
ins: 1,
label: 1,
kbd: 1,
q: 1,
s: 1,
samp: 1,
small: 1,
span: 1,
strike: 1,
strong: 1,
sub: 1,
sup: 1,
tt: 1,
u: 1,
var: 1
}),
$removeEmptyBlock: _({ p: 1, div: 1 }),
//在table元素里的元素列表
$tableContent: _({
caption: 1,
col: 1,
colgroup: 1,
tbody: 1,
td: 1,
tfoot: 1,
th: 1,
thead: 1,
tr: 1,
table: 1
}),
//不转换的标签
$notTransContent: _({ pre: 1, script: 1, style: 1, textarea: 1 }),
html: U,
head: T,
style: N,
script: N,
body: P,
base: {},
link: {},
meta: {},
title: N,
col: {},
tr: _({ td: 1, th: 1 }),
img: {},
embed: {},
colgroup: _({ thead: 1, col: 1, tbody: 1, tr: 1, tfoot: 1 }),
noscript: P,
td: P,
br: {},
th: P,
center: P,
kbd: L,
button: X(I, E),
basefont: {},
h5: L,
h4: L,
samp: L,
h6: L,
ol: Q,
h1: L,
h3: L,
option: N,
h2: L,
form: X(A, D, E, I),
select: _({ optgroup: 1, option: 1 }),
font: L,
ins: L,
menu: Q,
abbr: L,
label: L,
table: _({
thead: 1,
col: 1,
tbody: 1,
tr: 1,
colgroup: 1,
caption: 1,
tfoot: 1
}),
code: L,
tfoot: M,
cite: L,
li: P,
input: {},
iframe: P,
strong: L,
textarea: N,
noframes: P,
big: L,
small: L,
//trace:
span: _({
"#": 1,
br: 1,
b: 1,
strong: 1,
u: 1,
i: 1,
em: 1,
sub: 1,
sup: 1,
strike: 1,
span: 1
}),
hr: L,
dt: L,
sub: L,
optgroup: _({ option: 1 }),
param: {},
bdo: L,
var: L,
div: P,
object: O,
sup: L,
dd: P,
strike: L,
area: {},
dir: Q,
map: X(_({ area: 1, form: 1, p: 1 }), A, F, E),
applet: O,
dl: _({ dt: 1, dd: 1 }),
del: L,
isindex: {},
fieldset: X(_({ legend: 1 }), K),
thead: M,
ul: Q,
acronym: L,
b: L,
a: X(_({ a: 1 }), J),
blockquote: X(_({ td: 1, tr: 1, tbody: 1, li: 1 }), P),
caption: L,
i: L,
u: L,
tbody: M,
s: L,
address: X(D, I),
tt: L,
legend: L,
q: L,
pre: X(G, C),
p: X(_({ a: 1 }), L),
em: L,
dfn: L,
mark: L
});
})());