仿互站小程序
This commit is contained in:
103
wxParse/html2json.js
Normal file
103
wxParse/html2json.js
Normal file
@@ -0,0 +1,103 @@
|
||||
function e(e) {
|
||||
for (var t = {}, r = e.split(","), s = 0; s < r.length; s++) t[r[s]] = !0;
|
||||
return t;
|
||||
}
|
||||
|
||||
function t(e) {
|
||||
return e.replace(/<\?xml.*\?>\n/, "").replace(/<.*!doctype.*\>\n/, "").replace(/<.*!DOCTYPE.*\>\n/, "");
|
||||
}
|
||||
|
||||
function r(e) {
|
||||
return e.replace(/\r?\n+/g, "").replace(/<!--.*?-->/gi, "").replace(/\/\*.*?\*\//gi, "").replace(/[ ]+</gi, "<");
|
||||
}
|
||||
|
||||
function s(e) {
|
||||
var t = [];
|
||||
if (0 == n.length || !i) return (d = {}).node = "text", d.text = e, s = [ d ];
|
||||
e = e.replace(/\[([^\[\]]+)\]/g, ":$1:");
|
||||
for (var r = new RegExp("[:]"), s = e.split(r), a = 0; a < s.length; a++) {
|
||||
var l = s[a], d = {};
|
||||
i[l] ? (d.node = "element", d.tag = "emoji", d.text = i[l], d.baseSrc = o) : (d.node = "text",
|
||||
d.text = l), t.push(d);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
var a = "https", n = "", o = "", i = {}, l = require("./wxDiscode.js"), d = require("./htmlparser.js"), c = (e("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr"),
|
||||
e("br,a,code,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video")), u = e("abbr,acronym,applet,b,basefont,bdo,big,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"), p = e("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");
|
||||
|
||||
e("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),
|
||||
e("wxxxcode-style,script,style,view,scroll-view,block");
|
||||
|
||||
module.exports = {
|
||||
html2json: function(e, n) {
|
||||
e = r(e = t(e)), e = l.strDiscode(e);
|
||||
var o = [], i = {
|
||||
node: n,
|
||||
nodes: [],
|
||||
images: [],
|
||||
imageUrls: []
|
||||
}, g = 0;
|
||||
return d(e, {
|
||||
start: function(e, t, r) {
|
||||
var s = {
|
||||
node: "element",
|
||||
tag: e
|
||||
};
|
||||
if (0 === o.length ? (s.index = g.toString(), g += 1) : (void 0 === (x = o[0]).nodes && (x.nodes = []),
|
||||
s.index = x.index + "." + x.nodes.length), c[e] ? s.tagType = "block" : u[e] ? s.tagType = "inline" : p[e] && (s.tagType = "closeSelf"),
|
||||
0 !== t.length && (s.attr = t.reduce(function(e, t) {
|
||||
var r = t.name, a = t.value;
|
||||
return "class" == r && (s.classStr = a), "style" == r && (s.styleStr = a), a.match(/ /) && (a = a.split(" ")),
|
||||
e[r] ? Array.isArray(e[r]) ? e[r].push(a) : e[r] = [ e[r], a ] : e[r] = a, e;
|
||||
}, {})), "img" === s.tag) {
|
||||
s.imgIndex = i.images.length;
|
||||
var d = s.attr.src;
|
||||
"" == d[0] && d.splice(0, 1), d = l.urlToHttpUrl(d, a), s.attr.src = d, s.from = n,
|
||||
i.images.push(s), 1 != s.attr.not && i.imageUrls.push(d);
|
||||
}
|
||||
if ("font" === s.tag) {
|
||||
var m = [ "x-small", "small", "medium", "large", "x-large", "xx-large", "-webkit-xxx-large" ], f = {
|
||||
color: "color",
|
||||
face: "font-family",
|
||||
size: "font-size"
|
||||
};
|
||||
s.attr.style || (s.attr.style = []), s.styleStr || (s.styleStr = "");
|
||||
for (var h in f) if (s.attr[h]) {
|
||||
var v = "size" === h ? m[s.attr[h] - 1] : s.attr[h];
|
||||
s.attr.style.push(f[h]), s.attr.style.push(v), s.styleStr += f[h] + ": " + v + ";";
|
||||
}
|
||||
}
|
||||
if ("source" === s.tag && (i.source = s.attr.src), r) {
|
||||
var x = o[0] || i;
|
||||
void 0 === x.nodes && (x.nodes = []), x.nodes.push(s);
|
||||
} else o.unshift(s);
|
||||
},
|
||||
end: function(e) {
|
||||
var t = o.shift();
|
||||
if (t.tag !== e && console.error("invalid state: mismatch end tag"), "video" === t.tag && i.source && (t.attr.src = i.source,
|
||||
delete i.source), 0 === o.length) i.nodes.push(t); else {
|
||||
var r = o[0];
|
||||
void 0 === r.nodes && (r.nodes = []), r.nodes.push(t);
|
||||
}
|
||||
},
|
||||
chars: function(e) {
|
||||
var t = {
|
||||
node: "text",
|
||||
text: e,
|
||||
textArray: s(e)
|
||||
};
|
||||
if (0 === o.length) t.index = g.toString(), g += 1, i.nodes.push(t); else {
|
||||
var r = o[0];
|
||||
void 0 === r.nodes && (r.nodes = []), t.index = r.index + "." + r.nodes.length,
|
||||
r.nodes.push(t);
|
||||
}
|
||||
},
|
||||
comment: function(e) {}
|
||||
}), i;
|
||||
},
|
||||
emojisInit: function() {
|
||||
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "/wxParse/emojis/", r = arguments[2];
|
||||
n = e, o = t, i = r;
|
||||
}
|
||||
};
|
48
wxParse/htmlparser.js
Normal file
48
wxParse/htmlparser.js
Normal file
@@ -0,0 +1,48 @@
|
||||
function e(e) {
|
||||
for (var t = {}, r = e.split(","), s = 0; s < r.length; s++) t[r[s]] = !0;
|
||||
return t;
|
||||
}
|
||||
|
||||
var t = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/, r = /^<\/([-A-Za-z0-9_]+)[^>]*>/, s = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g, a = e("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr"), n = e("a,address,code,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video"), i = e("abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"), o = e("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"), l = e("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"), c = e("wxxxcode-style,script,style,view,scroll-view,block");
|
||||
|
||||
module.exports = function(e, d) {
|
||||
function f(e, t) {
|
||||
if (t) for (t = t.toLowerCase(), r = b.length - 1; r >= 0 && b[r] != t; r--) ; else var r = 0;
|
||||
if (r >= 0) {
|
||||
for (var s = b.length - 1; s >= r; s--) d.end && d.end(b[s]);
|
||||
b.length = r;
|
||||
}
|
||||
}
|
||||
var p, u, h, b = [], m = e;
|
||||
for (b.last = function() {
|
||||
return this[this.length - 1];
|
||||
}; e; ) {
|
||||
if (u = !0, b.last() && c[b.last()]) e = e.replace(new RegExp("([\\s\\S]*?)</" + b.last() + "[^>]*>"), function(e, t) {
|
||||
return t = t.replace(/<!--([\s\S]*?)-->|<!\[CDATA\[([\s\S]*?)]]>/g, "$1$2"), d.chars && d.chars(t),
|
||||
"";
|
||||
}), f(0, b.last()); else if (0 == e.indexOf("\x3c!--") ? (p = e.indexOf("--\x3e")) >= 0 && (d.comment && d.comment(e.substring(4, p)),
|
||||
e = e.substring(p + 3), u = !1) : 0 == e.indexOf("</") ? (h = e.match(r)) && (e = e.substring(h[0].length),
|
||||
h[0].replace(r, f), u = !1) : 0 == e.indexOf("<") && (h = e.match(t)) && (e = e.substring(h[0].length),
|
||||
h[0].replace(t, function(e, t, r, c) {
|
||||
if (t = t.toLowerCase(), n[t]) for (;b.last() && i[b.last()]; ) f(0, b.last());
|
||||
if (o[t] && b.last() == t && f(0, t), (c = a[t] || !!c) || b.push(t), d.start) {
|
||||
var p = [];
|
||||
r.replace(s, function(e, t) {
|
||||
var r = arguments[2] ? arguments[2] : arguments[3] ? arguments[3] : arguments[4] ? arguments[4] : l[t] ? t : "";
|
||||
p.push({
|
||||
name: t,
|
||||
value: r,
|
||||
escaped: r.replace(/(^|[^\\])"/g, '$1\\"')
|
||||
});
|
||||
}), d.start && d.start(t, p, c);
|
||||
}
|
||||
}), u = !1), u) {
|
||||
p = e.indexOf("<");
|
||||
for (var g = ""; 0 === p; ) g += "<", p = (e = e.substring(1)).indexOf("<");
|
||||
g += p < 0 ? e : e.substring(0, p), e = p < 0 ? "" : e.substring(p), d.chars && d.chars(g);
|
||||
}
|
||||
if (e == m) throw "Parse Error: " + e;
|
||||
m = e;
|
||||
}
|
||||
f();
|
||||
};
|
74
wxParse/wxDiscode.js
Normal file
74
wxParse/wxDiscode.js
Normal file
@@ -0,0 +1,74 @@
|
||||
function e(e) {
|
||||
return e = e.replace(/∀/g, "∀"), e = e.replace(/∂/g, "∂"), e = e.replace(/&exists;/g, "∃"),
|
||||
e = e.replace(/∅/g, "∅"), e = e.replace(/∇/g, "∇"), e = e.replace(/∈/g, "∈"),
|
||||
e = e.replace(/∉/g, "∉"), e = e.replace(/∋/g, "∋"), e = e.replace(/∏/g, "∏"),
|
||||
e = e.replace(/∑/g, "∑"), e = e.replace(/−/g, "−"), e = e.replace(/∗/g, "∗"),
|
||||
e = e.replace(/√/g, "√"), e = e.replace(/∝/g, "∝"), e = e.replace(/∞/g, "∞"),
|
||||
e = e.replace(/∠/g, "∠"), e = e.replace(/∧/g, "∧"), e = e.replace(/∨/g, "∨"),
|
||||
e = e.replace(/∩/g, "∩"), e = e.replace(/∩/g, "∪"), e = e.replace(/∫/g, "∫"),
|
||||
e = e.replace(/∴/g, "∴"), e = e.replace(/∼/g, "∼"), e = e.replace(/≅/g, "≅"),
|
||||
e = e.replace(/≈/g, "≈"), e = e.replace(/≠/g, "≠"), e = e.replace(/≤/g, "≤"),
|
||||
e = e.replace(/≥/g, "≥"), e = e.replace(/⊂/g, "⊂"), e = e.replace(/⊃/g, "⊃"),
|
||||
e = e.replace(/⊄/g, "⊄"), e = e.replace(/⊆/g, "⊆"), e = e.replace(/⊇/g, "⊇"),
|
||||
e = e.replace(/⊕/g, "⊕"), e = e.replace(/⊗/g, "⊗"), e = e.replace(/⊥/g, "⊥"),
|
||||
e = e.replace(/⋅/g, "⋅");
|
||||
}
|
||||
|
||||
function a(e) {
|
||||
return e = e.replace(/Α/g, "Α"), e = e.replace(/Β/g, "Β"), e = e.replace(/Γ/g, "Γ"),
|
||||
e = e.replace(/Δ/g, "Δ"), e = e.replace(/Ε/g, "Ε"), e = e.replace(/Ζ/g, "Ζ"),
|
||||
e = e.replace(/Η/g, "Η"), e = e.replace(/Θ/g, "Θ"), e = e.replace(/Ι/g, "Ι"),
|
||||
e = e.replace(/Κ/g, "Κ"), e = e.replace(/Λ/g, "Λ"), e = e.replace(/Μ/g, "Μ"),
|
||||
e = e.replace(/Ν/g, "Ν"), e = e.replace(/Ξ/g, "Ν"), e = e.replace(/Ο/g, "Ο"),
|
||||
e = e.replace(/Π/g, "Π"), e = e.replace(/Ρ/g, "Ρ"), e = e.replace(/Σ/g, "Σ"),
|
||||
e = e.replace(/Τ/g, "Τ"), e = e.replace(/Υ/g, "Υ"), e = e.replace(/Φ/g, "Φ"),
|
||||
e = e.replace(/Χ/g, "Χ"), e = e.replace(/Ψ/g, "Ψ"), e = e.replace(/Ω/g, "Ω"),
|
||||
e = e.replace(/α/g, "α"), e = e.replace(/β/g, "β"), e = e.replace(/γ/g, "γ"),
|
||||
e = e.replace(/δ/g, "δ"), e = e.replace(/ε/g, "ε"), e = e.replace(/ζ/g, "ζ"),
|
||||
e = e.replace(/η/g, "η"), e = e.replace(/θ/g, "θ"), e = e.replace(/ι/g, "ι"),
|
||||
e = e.replace(/κ/g, "κ"), e = e.replace(/λ/g, "λ"), e = e.replace(/μ/g, "μ"),
|
||||
e = e.replace(/ν/g, "ν"), e = e.replace(/ξ/g, "ξ"), e = e.replace(/ο/g, "ο"),
|
||||
e = e.replace(/π/g, "π"), e = e.replace(/ρ/g, "ρ"), e = e.replace(/ς/g, "ς"),
|
||||
e = e.replace(/σ/g, "σ"), e = e.replace(/τ/g, "τ"), e = e.replace(/υ/g, "υ"),
|
||||
e = e.replace(/φ/g, "φ"), e = e.replace(/χ/g, "χ"), e = e.replace(/ψ/g, "ψ"),
|
||||
e = e.replace(/ω/g, "ω"), e = e.replace(/ϑ/g, "ϑ"), e = e.replace(/ϒ/g, "ϒ"),
|
||||
e = e.replace(/ϖ/g, "ϖ"), e = e.replace(/·/g, "·");
|
||||
}
|
||||
|
||||
function r(e) {
|
||||
return e = e.replace(/ /g, " "), e = e.replace(/"/g, "'"), e = e.replace(/&/g, "&"),
|
||||
e = e.replace(/</g, "<"), e = e.replace(/>/g, ">"), e = e.replace(/•/g, "•");
|
||||
}
|
||||
|
||||
function l(e) {
|
||||
return e = e.replace(/Œ/g, "Œ"), e = e.replace(/œ/g, "œ"), e = e.replace(/Š/g, "Š"),
|
||||
e = e.replace(/š/g, "š"), e = e.replace(/Ÿ/g, "Ÿ"), e = e.replace(/ƒ/g, "ƒ"),
|
||||
e = e.replace(/ˆ/g, "ˆ"), e = e.replace(/˜/g, "˜"), e = e.replace(/ /g, ""),
|
||||
e = e.replace(/ /g, ""), e = e.replace(/ /g, ""), e = e.replace(/‌/g, ""),
|
||||
e = e.replace(/‍/g, ""), e = e.replace(/‎/g, ""), e = e.replace(/‏/g, ""),
|
||||
e = e.replace(/–/g, "–"), e = e.replace(/—/g, "—"), e = e.replace(/‘/g, "‘"),
|
||||
e = e.replace(/’/g, "’"), e = e.replace(/‚/g, "‚"), e = e.replace(/“/g, "“"),
|
||||
e = e.replace(/”/g, "”"), e = e.replace(/„/g, "„"), e = e.replace(/†/g, "†"),
|
||||
e = e.replace(/‡/g, "‡"), e = e.replace(/•/g, "•"), e = e.replace(/…/g, "…"),
|
||||
e = e.replace(/‰/g, "‰"), e = e.replace(/′/g, "′"), e = e.replace(/″/g, "″"),
|
||||
e = e.replace(/‹/g, "‹"), e = e.replace(/›/g, "›"), e = e.replace(/‾/g, "‾"),
|
||||
e = e.replace(/€/g, "€"), e = e.replace(/™/g, "™"), e = e.replace(/←/g, "←"),
|
||||
e = e.replace(/↑/g, "↑"), e = e.replace(/→/g, "→"), e = e.replace(/↓/g, "↓"),
|
||||
e = e.replace(/↔/g, "↔"), e = e.replace(/↵/g, "↵"), e = e.replace(/⌈/g, "⌈"),
|
||||
e = e.replace(/⌉/g, "⌉"), e = e.replace(/⌊/g, "⌊"), e = e.replace(/⌋/g, "⌋"),
|
||||
e = e.replace(/◊/g, "◊"), e = e.replace(/♠/g, "♠"), e = e.replace(/♣/g, "♣"),
|
||||
e = e.replace(/♥/g, "♥"), e = e.replace(/♦/g, "♦"), e = e.replace(/'/g, "'");
|
||||
}
|
||||
|
||||
function p(e) {
|
||||
return e = e.replace(/\r\n/g, ""), e = e.replace(/\n/g, "");
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
strDiscode: function(c) {
|
||||
return c = e(c), c = a(c), c = r(c), c = l(c), c = p(c);
|
||||
},
|
||||
urlToHttpUrl: function(e, a) {
|
||||
return new RegExp("^//").test(e) && (e = a + ":" + e), e;
|
||||
}
|
||||
};
|
75
wxParse/wxParse.js
Normal file
75
wxParse/wxParse.js
Normal file
@@ -0,0 +1,75 @@
|
||||
function t(t, e, a) {
|
||||
return e in t ? Object.defineProperty(t, e, {
|
||||
value: a,
|
||||
enumerable: !0,
|
||||
configurable: !0,
|
||||
writable: !0
|
||||
}) : t[e] = a, t;
|
||||
}
|
||||
|
||||
function e(t) {
|
||||
var e = this, a = t.target.dataset.src, i = t.target.dataset.from;
|
||||
console.log("nowImgUrl", a), console.log("nowImgUrl", e.data[i].imageUrls), void 0 !== i && i.length > 0 && wx.previewImage({
|
||||
current: a,
|
||||
urls: e.data[i].imageUrls
|
||||
});
|
||||
}
|
||||
|
||||
function a(t) {
|
||||
var e = this, a = t.target.dataset.from, r = t.target.dataset.idx;
|
||||
void 0 !== a && a.length > 0 && i(t, r, e, a);
|
||||
}
|
||||
|
||||
function i(e, a, i, n) {
|
||||
var d, o = i.data[n];
|
||||
if (o && 0 != o.images.length) {
|
||||
var g = o.images, s = r(e.detail.width, e.detail.height, i, n), l = g[a].index, h = "" + n, m = !0, u = !1, v = void 0;
|
||||
try {
|
||||
for (var w, f = l.split(".")[Symbol.iterator](); !(m = (w = f.next()).done); m = !0) h += ".nodes[" + w.value + "]";
|
||||
} catch (t) {
|
||||
u = !0, v = t;
|
||||
} finally {
|
||||
try {
|
||||
!m && f.return && f.return();
|
||||
} finally {
|
||||
if (u) throw v;
|
||||
}
|
||||
}
|
||||
var c = h + ".width", x = h + ".height", P = h + ".maxwidth", y = h + ".not";
|
||||
i.setData((d = {}, t(d, y, g[a].attr.not || ""), t(d, P, g[a].attr.maxwidth || "!/fw/" + s.imageWidth),
|
||||
t(d, c, s.imageWidth), t(d, x, s.imageheight), d));
|
||||
}
|
||||
}
|
||||
|
||||
function r(t, e, a, i) {
|
||||
var r = 0, n = 0, g = 0, s = {}, l = a.data[i].view.imagePadding;
|
||||
return r = d - 2 * l, o, t > r ? (g = (n = r) * e / t, s.imageWidth = n, s.imageheight = g) : (s.imageWidth = t,
|
||||
s.imageheight = e), s;
|
||||
}
|
||||
|
||||
var n = function(t) {
|
||||
return t && t.__esModule ? t : {
|
||||
default: t
|
||||
};
|
||||
}(require("./html2json.js")), d = 0, o = 0;
|
||||
|
||||
wx.getSystemInfo({
|
||||
success: function(t) {
|
||||
d = t.windowWidth, o = t.windowHeight;
|
||||
}
|
||||
}), module.exports = {
|
||||
wxParse: function() {
|
||||
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "wxParseData", i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "html", r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "<div></div>", d = arguments[3], o = arguments[4], g = d, s = {};
|
||||
"html" == i && (s = n.default.html2json(r, t)), s.view = {}, s.view.imagePadding = 0,
|
||||
void 0 !== o && (s.view.imagePadding = o);
|
||||
var l = {};
|
||||
l[t] = s, g.setData(l), g.wxParseImgLoad = a, g.wxParseImgTap = e;
|
||||
},
|
||||
wxParseTemArray: function(t, e, a, i) {
|
||||
for (var r = [], n = i.data, d = null, o = 0; o < a; o++) {
|
||||
var g = n[e + o].nodes;
|
||||
r.push(g);
|
||||
}
|
||||
t = t || "wxParseTemArray", (d = JSON.parse('{"' + t + '":""}'))[t] = r, i.setData(d);
|
||||
}
|
||||
};
|
386
wxParse/wxParse.wxml
Normal file
386
wxParse/wxParse.wxml
Normal file
@@ -0,0 +1,386 @@
|
||||
<template name="wxParse11">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse12" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse12" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse12" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse12" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse12" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse10">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse11" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse11" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse11" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse11" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse11" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse9">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse10" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse10" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse10" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse10" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse10" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse8">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse9" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse9" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse9" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse9" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse9" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse7">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse8" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse8" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse8" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse8" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse8" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse6">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse7" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse7" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse7" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse7" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse7" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse5">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse6" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse6" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse6" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse6" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse6" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse4">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse5" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse5" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse5" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse5" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse5" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse3">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse4" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse4" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse4" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse4" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse4" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse2">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse3" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse3" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse3" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse3" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse3" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse1">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse2" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse2" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse2" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse2" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse2" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse0">
|
||||
<block wx:if="{{item.node=='element'}}">
|
||||
<button size="mini" type="default" wx:if="{{item.tag=='button'}}">
|
||||
<template is="wxParse1" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</button>
|
||||
<view class="{{item.classStr}} wxParse-li" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='li'}}">
|
||||
<view class="{{item.classStr}} wxParse-li-inner">
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<view class="{{item.classStr}} wxParse-li-circle"></view>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-li-text">
|
||||
<template is="wxParse1" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<template is="wxParseVideo" data="{{item:item}}" wx:elif="{{item.tag=='video'}}"></template>
|
||||
<template is="wxParseImg" data="{{item:item}}" wx:elif="{{item.tag=='img'}}"></template>
|
||||
<view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='a'}}">
|
||||
<template is="wxParse1" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tag=='table'}}">
|
||||
<template is="wxParse1" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<template is="WxParseBr" data wx:elif="{{item.tag=='br'}}"></template>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:elif="{{item.tagType=='block'}}">
|
||||
<template is="wxParse1" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}" wx:else>
|
||||
<template is="wxParse1" data="{{item:item}}" wx:for="{{item.nodes}}"></template>
|
||||
</view>
|
||||
</block>
|
||||
<template is="WxEmojiView" data="{{item:item}}" wx:elif="{{item.node=='text'}}"></template>
|
||||
</template>
|
||||
<template name="wxParse">
|
||||
<template is="wxParse0" data="{{item:item}}" wx:for="{{wxParseData}}"></template>
|
||||
</template>
|
||||
<template name="WxParseBr">
|
||||
<text>
|
||||
</text>
|
||||
</template>
|
||||
<template name="WxEmojiView">
|
||||
<view class="WxEmojiView wxParse-inline" style="{{item.styleStr?item.styleStr:''}}">
|
||||
<block wx:for="{{item.textArray}}">
|
||||
<block wx:if="{{item.node=='text'}}">{{item.text}}</block>
|
||||
<image class="wxEmoji" src="{{item.baseSrc}}{{item.text}}" wx:elif="{{item.node=='element'}}"></image>
|
||||
</block>
|
||||
</view>
|
||||
</template>
|
||||
<template name="wxParseImg">
|
||||
<image bindload="wxParseImgLoad" bindtap="{{item.not!=1&&'wxParseImgTap'}}" class="{{item.classStr}} wxParse-{{item.tag}}" data-from="{{item.from}}" data-idx="{{item.imgIndex}}" data-not="{{item.not}}" data-src="{{item.attr.src}}" mode="{{item.width&&'widthFix'}}" src="{{item.attr.src}}{{item.maxwidth}}" style="{{item.width&&'width:'+item.width+'px;'}}"></image>
|
||||
</template>
|
||||
<template name="wxParseVideo">
|
||||
<view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr?item.styleStr:''}}">
|
||||
<video class="{{item.classStr}} wxParse-{{item.tag}}-video" src="{{item.attr.src}}"></video>
|
||||
</view>
|
||||
</template>
|
249
wxParse/wxParse.wxss
Normal file
249
wxParse/wxParse.wxss
Normal file
@@ -0,0 +1,249 @@
|
||||
.wxParse {
|
||||
margin: 0 5px;
|
||||
font-family: Helvetica,sans-serif;
|
||||
font-size: 28rpx;
|
||||
color: #666;
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
view {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.wxParse-inline {
|
||||
display: inline;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.wxParse-div {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.wxParse-h1 {
|
||||
font-size: 2em;
|
||||
margin: .67em 0;
|
||||
}
|
||||
|
||||
.wxParse-h2 {
|
||||
font-size: 1.5em;
|
||||
margin: .75em 0;
|
||||
}
|
||||
|
||||
.wxParse-h3 {
|
||||
font-size: 1.17em;
|
||||
margin: .83em 0;
|
||||
}
|
||||
|
||||
.wxParse-h4 {
|
||||
margin: 1.12em 0;
|
||||
}
|
||||
|
||||
.wxParse-h5 {
|
||||
font-size: .83em;
|
||||
margin: 1.5em 0;
|
||||
}
|
||||
|
||||
.wxParse-h6 {
|
||||
font-size: .75em;
|
||||
margin: 1.67em 0;
|
||||
}
|
||||
|
||||
.wxParse-h1 {
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
margin-bottom: .9em;
|
||||
}
|
||||
|
||||
.wxParse-h2 {
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
margin-bottom: .34em;
|
||||
}
|
||||
|
||||
.wxParse-h3 {
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
margin-bottom: .34em;
|
||||
}
|
||||
|
||||
.wxParse-h4 {
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
margin-bottom: .24em;
|
||||
}
|
||||
|
||||
.wxParse-h5 {
|
||||
font-weight: 400;
|
||||
font-size: 13px;
|
||||
margin-bottom: .14em;
|
||||
}
|
||||
|
||||
.wxParse-h6 {
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
margin-bottom: .04em;
|
||||
}
|
||||
|
||||
.wxParse-h1,.wxParse-h2,.wxParse-h3,.wxParse-h4,.wxParse-h5,.wxParse-h6,.wxParse-b,.wxParse-strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.wxParse-i,.wxParse-cite,.wxParse-em,.wxParse-var,.wxParse-address {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.wxParse-pre,.wxParse-tt,.wxParse-code,.wxParse-kbd,.wxParse-samp {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.wxParse-pre {
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.wxParse-big {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
|
||||
.wxParse-small,.wxParse-sub,.wxParse-sup {
|
||||
font-size: .83em;
|
||||
}
|
||||
|
||||
.wxParse-sub {
|
||||
vertical-align: sub;
|
||||
}
|
||||
|
||||
.wxParse-sup {
|
||||
vertical-align: super;
|
||||
}
|
||||
|
||||
.wxParse-s,.wxParse-strike,.wxParse-del {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.wxParse-strong,.wxParse-s {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.wxParse-a {
|
||||
color: deepskyblue;
|
||||
word-break: break-all;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.wxParse-video {
|
||||
text-align: center;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.wxParse-video-video {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.wxParse-img {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.wxParse-blockquote {
|
||||
margin: 0;
|
||||
padding: 10px 0 10px 5px;
|
||||
font-family: Courier,Calibri,"宋体";
|
||||
background: #f5f5f5;
|
||||
border-left: 3px solid #dbdbdb;
|
||||
}
|
||||
|
||||
.wxParse-code,.wxParse-wxxxcode-style {
|
||||
display: inline;
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
.wxParse-ul {
|
||||
margin: 20rpx 10rpx;
|
||||
}
|
||||
|
||||
.wxParse-li,.wxParse-li-inner {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
margin: 10rpx 0;
|
||||
}
|
||||
|
||||
.wxParse-li-text {
|
||||
align-items: center;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.wxParse-li-circle {
|
||||
display: inline-flex;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background-color: #333;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.wxParse-li-square {
|
||||
display: inline-flex;
|
||||
width: 10rpx;
|
||||
height: 10rpx;
|
||||
background-color: #333;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.wxParse-li-ring {
|
||||
display: inline-flex;
|
||||
width: 10rpx;
|
||||
height: 10rpx;
|
||||
border: 2rpx solid #333;
|
||||
border-radius: 50%;
|
||||
background-color: #fff;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.wxParse-u {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.wxParse-hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.WxEmojiView {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.wxEmoji {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.wxParse-tr {
|
||||
display: flex;
|
||||
border-right: 1px solid #e0e0e0;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
}
|
||||
|
||||
.wxParse-th,.wxParse-td {
|
||||
flex: 1;
|
||||
padding: 5px;
|
||||
font-size: 28rpx;
|
||||
border-left: 1px solid #e0e0e0;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.wxParse-td:last {
|
||||
border-top: 1px solid #e0e0e0;
|
||||
}
|
||||
|
||||
.wxParse-th {
|
||||
background: #f0f0f0;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
}
|
||||
|
||||
.wxParse-del {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.wxParse-figure {
|
||||
overflow: hidden;
|
||||
}
|
Reference in New Issue
Block a user