仿互站小程序

This commit is contained in:
Drawfans
2020-06-09 16:17:23 +08:00
commit 7bfd53851e
321 changed files with 22890 additions and 0 deletions

103
wxParse/html2json.js Normal file
View 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
View 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
View File

@@ -0,0 +1,74 @@
function e(e) {
return e = e.replace(/&forall;/g, "∀"), e = e.replace(/&part;/g, "∂"), e = e.replace(/&exists;/g, "∃"),
e = e.replace(/&empty;/g, "∅"), e = e.replace(/&nabla;/g, "∇"), e = e.replace(/&isin;/g, "∈"),
e = e.replace(/&notin;/g, "∉"), e = e.replace(/&ni;/g, "∋"), e = e.replace(/&prod;/g, "∏"),
e = e.replace(/&sum;/g, "∑"), e = e.replace(/&minus;/g, ""), e = e.replace(/&lowast;/g, ""),
e = e.replace(/&radic;/g, "√"), e = e.replace(/&prop;/g, "∝"), e = e.replace(/&infin;/g, "∞"),
e = e.replace(/&ang;/g, "∠"), e = e.replace(/&and;/g, "∧"), e = e.replace(/&or;/g, ""),
e = e.replace(/&cap;/g, "∩"), e = e.replace(/&cap;/g, ""), e = e.replace(/&int;/g, "∫"),
e = e.replace(/&there4;/g, "∴"), e = e.replace(/&sim;/g, ""), e = e.replace(/&cong;/g, "≅"),
e = e.replace(/&asymp;/g, "≈"), e = e.replace(/&ne;/g, "≠"), e = e.replace(/&le;/g, "≤"),
e = e.replace(/&ge;/g, "≥"), e = e.replace(/&sub;/g, "⊂"), e = e.replace(/&sup;/g, "⊃"),
e = e.replace(/&nsub;/g, "⊄"), e = e.replace(/&sube;/g, "⊆"), e = e.replace(/&supe;/g, "⊇"),
e = e.replace(/&oplus;/g, "⊕"), e = e.replace(/&otimes;/g, "⊗"), e = e.replace(/&perp;/g, "⊥"),
e = e.replace(/&sdot;/g, "⋅");
}
function a(e) {
return e = e.replace(/&Alpha;/g, "Α"), e = e.replace(/&Beta;/g, "Β"), e = e.replace(/&Gamma;/g, "Γ"),
e = e.replace(/&Delta;/g, "Δ"), e = e.replace(/&Epsilon;/g, "Ε"), e = e.replace(/&Zeta;/g, "Ζ"),
e = e.replace(/&Eta;/g, "Η"), e = e.replace(/&Theta;/g, "Θ"), e = e.replace(/&Iota;/g, "Ι"),
e = e.replace(/&Kappa;/g, "Κ"), e = e.replace(/&Lambda;/g, "Λ"), e = e.replace(/&Mu;/g, "Μ"),
e = e.replace(/&Nu;/g, "Ν"), e = e.replace(/&Xi;/g, "Ν"), e = e.replace(/&Omicron;/g, "Ο"),
e = e.replace(/&Pi;/g, "Π"), e = e.replace(/&Rho;/g, "Ρ"), e = e.replace(/&Sigma;/g, "Σ"),
e = e.replace(/&Tau;/g, "Τ"), e = e.replace(/&Upsilon;/g, "Υ"), e = e.replace(/&Phi;/g, "Φ"),
e = e.replace(/&Chi;/g, "Χ"), e = e.replace(/&Psi;/g, "Ψ"), e = e.replace(/&Omega;/g, "Ω"),
e = e.replace(/&alpha;/g, "α"), e = e.replace(/&beta;/g, "β"), e = e.replace(/&gamma;/g, "γ"),
e = e.replace(/&delta;/g, "δ"), e = e.replace(/&epsilon;/g, "ε"), e = e.replace(/&zeta;/g, "ζ"),
e = e.replace(/&eta;/g, "η"), e = e.replace(/&theta;/g, "θ"), e = e.replace(/&iota;/g, "ι"),
e = e.replace(/&kappa;/g, "κ"), e = e.replace(/&lambda;/g, "λ"), e = e.replace(/&mu;/g, "μ"),
e = e.replace(/&nu;/g, "ν"), e = e.replace(/&xi;/g, "ξ"), e = e.replace(/&omicron;/g, "ο"),
e = e.replace(/&pi;/g, "π"), e = e.replace(/&rho;/g, "ρ"), e = e.replace(/&sigmaf;/g, "ς"),
e = e.replace(/&sigma;/g, "σ"), e = e.replace(/&tau;/g, "τ"), e = e.replace(/&upsilon;/g, "υ"),
e = e.replace(/&phi;/g, "φ"), e = e.replace(/&chi;/g, "χ"), e = e.replace(/&psi;/g, "ψ"),
e = e.replace(/&omega;/g, "ω"), e = e.replace(/&thetasym;/g, "ϑ"), e = e.replace(/&upsih;/g, "ϒ"),
e = e.replace(/&piv;/g, "ϖ"), e = e.replace(/&middot;/g, "·");
}
function r(e) {
return e = e.replace(/&nbsp;/g, " "), e = e.replace(/&quot;/g, "'"), e = e.replace(/&amp;/g, "&"),
e = e.replace(/&lt;/g, "<"), e = e.replace(/&gt;/g, ">"), e = e.replace(/&#8226;/g, "•");
}
function l(e) {
return e = e.replace(/&OElig;/g, "Œ"), e = e.replace(/&oelig;/g, "œ"), e = e.replace(/&Scaron;/g, "Š"),
e = e.replace(/&scaron;/g, "š"), e = e.replace(/&Yuml;/g, "Ÿ"), e = e.replace(/&fnof;/g, "ƒ"),
e = e.replace(/&circ;/g, "ˆ"), e = e.replace(/&tilde;/g, "˜"), e = e.replace(/&ensp;/g, ""),
e = e.replace(/&emsp;/g, ""), e = e.replace(/&thinsp;/g, ""), e = e.replace(/&zwnj;/g, ""),
e = e.replace(/&zwj;/g, ""), e = e.replace(/&lrm;/g, ""), e = e.replace(/&rlm;/g, ""),
e = e.replace(/&ndash;/g, ""), e = e.replace(/&mdash;/g, "—"), e = e.replace(/&lsquo;/g, ""),
e = e.replace(/&rsquo;/g, ""), e = e.replace(/&sbquo;/g, ""), e = e.replace(/&ldquo;/g, "“"),
e = e.replace(/&rdquo;/g, "”"), e = e.replace(/&bdquo;/g, "„"), e = e.replace(/&dagger;/g, "†"),
e = e.replace(/&Dagger;/g, "‡"), e = e.replace(/&bull;/g, "•"), e = e.replace(/&hellip;/g, "…"),
e = e.replace(/&permil;/g, "‰"), e = e.replace(/&prime;/g, ""), e = e.replace(/&Prime;/g, "″"),
e = e.replace(/&lsaquo;/g, ""), e = e.replace(/&rsaquo;/g, ""), e = e.replace(/&oline;/g, "‾"),
e = e.replace(/&euro;/g, "€"), e = e.replace(/&trade;/g, "™"), e = e.replace(/&larr;/g, "←"),
e = e.replace(/&uarr;/g, "↑"), e = e.replace(/&rarr;/g, "→"), e = e.replace(/&darr;/g, "↓"),
e = e.replace(/&harr;/g, "↔"), e = e.replace(/&crarr;/g, "↵"), e = e.replace(/&lceil;/g, "⌈"),
e = e.replace(/&rceil;/g, "⌉"), e = e.replace(/&lfloor;/g, "⌊"), e = e.replace(/&rfloor;/g, "⌋"),
e = e.replace(/&loz;/g, "◊"), e = e.replace(/&spades;/g, "♠"), e = e.replace(/&clubs;/g, "♣"),
e = e.replace(/&hearts;/g, "♥"), e = e.replace(/&diams;/g, "♦"), e = e.replace(/&#39;/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
View 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
View 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
View 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;
}