|
|
|
|
/*!
|
|
|
|
|
* Valine v1.3.10
|
|
|
|
|
* (c) 2017-2019 xCss
|
|
|
|
|
* Released under the GPL-2.0 License.
|
|
|
|
|
* Last Update: 2019-6-26 21:52:17
|
|
|
|
|
*/
|
|
|
|
|
!function(e, t) {
|
|
|
|
|
"object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.Valine = t() : e.Valine = t()
|
|
|
|
|
}(this, function() {
|
|
|
|
|
return function(e) {
|
|
|
|
|
function t(r) {
|
|
|
|
|
if (n[r])
|
|
|
|
|
return n[r].exports;
|
|
|
|
|
var i = n[r] = {
|
|
|
|
|
i: r,
|
|
|
|
|
l: !1,
|
|
|
|
|
exports: {}
|
|
|
|
|
};
|
|
|
|
|
return e[r].call(i.exports, i, i.exports, t),
|
|
|
|
|
i.l = !0,
|
|
|
|
|
i.exports
|
|
|
|
|
}
|
|
|
|
|
var n = {};
|
|
|
|
|
return t.m = e,
|
|
|
|
|
t.c = n,
|
|
|
|
|
t.i = function(e) {
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
t.d = function(e, n, r) {
|
|
|
|
|
t.o(e, n) || Object.defineProperty(e, n, {
|
|
|
|
|
configurable: !1,
|
|
|
|
|
enumerable: !0,
|
|
|
|
|
get: r
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
t.n = function(e) {
|
|
|
|
|
var n = e && e.__esModule ? function() {
|
|
|
|
|
return e.default
|
|
|
|
|
}
|
|
|
|
|
: function() {
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
return t.d(n, "a", n),
|
|
|
|
|
n
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
t.o = function(e, t) {
|
|
|
|
|
return Object.prototype.hasOwnProperty.call(e, t)
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
t.p = "",
|
|
|
|
|
t(t.s = 17)
|
|
|
|
|
}([function(e, t, n) {
|
|
|
|
|
var r, i, o;
|
|
|
|
|
i = [e, t],
|
|
|
|
|
r = function(e, t) {
|
|
|
|
|
"use strict";
|
|
|
|
|
function n(e) {
|
|
|
|
|
function t(t) {
|
|
|
|
|
var n = e.style.width;
|
|
|
|
|
e.style.width = "0px",
|
|
|
|
|
e.offsetWidth,
|
|
|
|
|
e.style.width = n,
|
|
|
|
|
e.style.overflowY = t
|
|
|
|
|
}
|
|
|
|
|
function n() {
|
|
|
|
|
if (0 !== e.scrollHeight) {
|
|
|
|
|
var t = function(e) {
|
|
|
|
|
for (var t = []; e && e.parentNode && e.parentNode instanceof Element; )
|
|
|
|
|
e.parentNode.scrollTop && t.push({
|
|
|
|
|
node: e.parentNode,
|
|
|
|
|
scrollTop: e.parentNode.scrollTop
|
|
|
|
|
}),
|
|
|
|
|
e = e.parentNode;
|
|
|
|
|
return t
|
|
|
|
|
}(e)
|
|
|
|
|
, n = document.documentElement && document.documentElement.scrollTop;
|
|
|
|
|
e.style.height = "",
|
|
|
|
|
e.style.height = e.scrollHeight + i + "px",
|
|
|
|
|
s = e.clientWidth,
|
|
|
|
|
t.forEach(function(e) {
|
|
|
|
|
e.node.scrollTop = e.scrollTop
|
|
|
|
|
}),
|
|
|
|
|
n && (document.documentElement.scrollTop = n)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function r() {
|
|
|
|
|
n();
|
|
|
|
|
var r = Math.round(parseFloat(e.style.height))
|
|
|
|
|
, i = window.getComputedStyle(e, null)
|
|
|
|
|
, o = "content-box" === i.boxSizing ? Math.round(parseFloat(i.height)) : e.offsetHeight;
|
|
|
|
|
if (o < r ? "hidden" === i.overflowY && (t("scroll"),
|
|
|
|
|
n(),
|
|
|
|
|
o = "content-box" === i.boxSizing ? Math.round(parseFloat(window.getComputedStyle(e, null).height)) : e.offsetHeight) : "hidden" !== i.overflowY && (t("hidden"),
|
|
|
|
|
n(),
|
|
|
|
|
o = "content-box" === i.boxSizing ? Math.round(parseFloat(window.getComputedStyle(e, null).height)) : e.offsetHeight),
|
|
|
|
|
l !== o) {
|
|
|
|
|
l = o;
|
|
|
|
|
var s = a("autosize:resized");
|
|
|
|
|
try {
|
|
|
|
|
e.dispatchEvent(s)
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (e && e.nodeName && "TEXTAREA" === e.nodeName && !o.has(e)) {
|
|
|
|
|
var i = null
|
|
|
|
|
, s = null
|
|
|
|
|
, l = null
|
|
|
|
|
, c = function() {
|
|
|
|
|
e.clientWidth !== s && r()
|
|
|
|
|
}
|
|
|
|
|
, d = function(t) {
|
|
|
|
|
window.removeEventListener("resize", c, !1),
|
|
|
|
|
e.removeEventListener("input", r, !1),
|
|
|
|
|
e.removeEventListener("keyup", r, !1),
|
|
|
|
|
e.removeEventListener("autosize:destroy", d, !1),
|
|
|
|
|
e.removeEventListener("autosize:update", r, !1),
|
|
|
|
|
Object.keys(t).forEach(function(n) {
|
|
|
|
|
e.style[n] = t[n]
|
|
|
|
|
}),
|
|
|
|
|
o.delete(e)
|
|
|
|
|
}
|
|
|
|
|
.bind(e, {
|
|
|
|
|
height: e.style.height,
|
|
|
|
|
resize: e.style.resize,
|
|
|
|
|
overflowY: e.style.overflowY,
|
|
|
|
|
overflowX: e.style.overflowX,
|
|
|
|
|
wordWrap: e.style.wordWrap
|
|
|
|
|
});
|
|
|
|
|
e.addEventListener("autosize:destroy", d, !1),
|
|
|
|
|
"onpropertychange"in e && "oninput"in e && e.addEventListener("keyup", r, !1),
|
|
|
|
|
window.addEventListener("resize", c, !1),
|
|
|
|
|
e.addEventListener("input", r, !1),
|
|
|
|
|
e.addEventListener("autosize:update", r, !1),
|
|
|
|
|
e.style.overflowX = "hidden",
|
|
|
|
|
e.style.wordWrap = "break-word",
|
|
|
|
|
o.set(e, {
|
|
|
|
|
destroy: d,
|
|
|
|
|
update: r
|
|
|
|
|
}),
|
|
|
|
|
function() {
|
|
|
|
|
var t = window.getComputedStyle(e, null);
|
|
|
|
|
"vertical" === t.resize ? e.style.resize = "none" : "both" === t.resize && (e.style.resize = "horizontal"),
|
|
|
|
|
i = "content-box" === t.boxSizing ? -(parseFloat(t.paddingTop) + parseFloat(t.paddingBottom)) : parseFloat(t.borderTopWidth) + parseFloat(t.borderBottomWidth),
|
|
|
|
|
isNaN(i) && (i = 0),
|
|
|
|
|
r()
|
|
|
|
|
}()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function r(e) {
|
|
|
|
|
var t = o.get(e);
|
|
|
|
|
t && t.destroy()
|
|
|
|
|
}
|
|
|
|
|
function i(e) {
|
|
|
|
|
var t = o.get(e);
|
|
|
|
|
t && t.update()
|
|
|
|
|
}
|
|
|
|
|
var o = "function" == typeof Map ? new Map : function() {
|
|
|
|
|
var e = []
|
|
|
|
|
, t = [];
|
|
|
|
|
return {
|
|
|
|
|
has: function(t) {
|
|
|
|
|
return e.indexOf(t) > -1
|
|
|
|
|
},
|
|
|
|
|
get: function(n) {
|
|
|
|
|
return t[e.indexOf(n)]
|
|
|
|
|
},
|
|
|
|
|
set: function(n, r) {
|
|
|
|
|
-1 === e.indexOf(n) && (e.push(n),
|
|
|
|
|
t.push(r))
|
|
|
|
|
},
|
|
|
|
|
delete: function(n) {
|
|
|
|
|
var r = e.indexOf(n);
|
|
|
|
|
r > -1 && (e.splice(r, 1),
|
|
|
|
|
t.splice(r, 1))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
, a = function(e) {
|
|
|
|
|
return new Event(e,{
|
|
|
|
|
bubbles: !0
|
|
|
|
|
})
|
|
|
|
|
};
|
|
|
|
|
try {
|
|
|
|
|
new Event("test")
|
|
|
|
|
} catch (e) {
|
|
|
|
|
a = function(e) {
|
|
|
|
|
var t = document.createEvent("Event");
|
|
|
|
|
return t.initEvent(e, !0, !1),
|
|
|
|
|
t
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var s = null;
|
|
|
|
|
"undefined" == typeof window || "function" != typeof window.getComputedStyle ? ((s = function(e) {
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
).destroy = function(e) {
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
s.update = function(e) {
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
) : ((s = function(e, t) {
|
|
|
|
|
return e && Array.prototype.forEach.call(e.length ? e : [e], function(e) {
|
|
|
|
|
return n(e)
|
|
|
|
|
}),
|
|
|
|
|
e
|
|
|
|
|
}
|
|
|
|
|
).destroy = function(e) {
|
|
|
|
|
return e && Array.prototype.forEach.call(e.length ? e : [e], r),
|
|
|
|
|
e
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
s.update = function(e) {
|
|
|
|
|
return e && Array.prototype.forEach.call(e.length ? e : [e], i),
|
|
|
|
|
e
|
|
|
|
|
}
|
|
|
|
|
),
|
|
|
|
|
t.default = s,
|
|
|
|
|
e.exports = t.default
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
void 0 !== (o = "function" == typeof r ? r.apply(t, i) : r) && (e.exports = o)
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
"use strict";
|
|
|
|
|
function r(e) {
|
|
|
|
|
return this.init(e),
|
|
|
|
|
this
|
|
|
|
|
}
|
|
|
|
|
function i(e) {
|
|
|
|
|
return new r(e)
|
|
|
|
|
}
|
|
|
|
|
var o = n(9).version
|
|
|
|
|
, a = n(6)
|
|
|
|
|
, s = n(8)
|
|
|
|
|
, l = n(0)
|
|
|
|
|
, c = n(5)
|
|
|
|
|
, d = n(3)
|
|
|
|
|
, u = n(4)
|
|
|
|
|
, p = n(2)
|
|
|
|
|
, f = n(7)
|
|
|
|
|
, h = /^https?\:\/\//
|
|
|
|
|
, v = {
|
|
|
|
|
comment: "",
|
|
|
|
|
nick: "Anonymous",
|
|
|
|
|
mail: "",
|
|
|
|
|
link: "",
|
|
|
|
|
ua: navigator.userAgent,
|
|
|
|
|
url: ""
|
|
|
|
|
}
|
|
|
|
|
, g = {
|
|
|
|
|
"zh-cn": {
|
|
|
|
|
head: {
|
|
|
|
|
nick: "昵称(必填)",
|
|
|
|
|
mail: "邮箱(必填)",
|
|
|
|
|
link: "链接"
|
|
|
|
|
},
|
|
|
|
|
tips: {
|
|
|
|
|
comments: "评论",
|
|
|
|
|
sofa: "快来做第一个评论的人吧~",
|
|
|
|
|
busy: "还在提交中,请稍候...",
|
|
|
|
|
again: "这么简单也能错,也是没谁了."
|
|
|
|
|
},
|
|
|
|
|
ctrl: {
|
|
|
|
|
reply: "回复",
|
|
|
|
|
ok: "好的",
|
|
|
|
|
sure: "确认",
|
|
|
|
|
cancel: "取消",
|
|
|
|
|
confirm: "确认",
|
|
|
|
|
continue: "继续",
|
|
|
|
|
more: "查看更多...",
|
|
|
|
|
try: "再试试?",
|
|
|
|
|
preview: "预览",
|
|
|
|
|
emoji: "表情"
|
|
|
|
|
},
|
|
|
|
|
error: {
|
|
|
|
|
99: "初始化失败,请检查init中的`el`元素.",
|
|
|
|
|
100: "初始化失败,请检查你的AppId和AppKey.",
|
|
|
|
|
401: "未经授权的操作,请检查你的AppId和AppKey.",
|
|
|
|
|
403: "访问被api域名白名单拒绝,请检查你的安全域名设置."
|
|
|
|
|
},
|
|
|
|
|
timeago: {
|
|
|
|
|
seconds: "秒前",
|
|
|
|
|
minutes: "分钟前",
|
|
|
|
|
hours: "小时前",
|
|
|
|
|
days: "天前",
|
|
|
|
|
now: "刚刚"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
en: {
|
|
|
|
|
head: {
|
|
|
|
|
nick: "NickName",
|
|
|
|
|
mail: "E-Mail",
|
|
|
|
|
link: "Website(http://)"
|
|
|
|
|
},
|
|
|
|
|
tips: {
|
|
|
|
|
comments: "Comments",
|
|
|
|
|
sofa: "No comments yet.",
|
|
|
|
|
busy: "Submit is busy, please wait...",
|
|
|
|
|
again: "Sorry, this is a wrong calculation."
|
|
|
|
|
},
|
|
|
|
|
ctrl: {
|
|
|
|
|
reply: "Reply",
|
|
|
|
|
ok: "Ok",
|
|
|
|
|
sure: "Sure",
|
|
|
|
|
cancel: "Cancel",
|
|
|
|
|
confirm: "Confirm",
|
|
|
|
|
continue: "Continue",
|
|
|
|
|
more: "Load More...",
|
|
|
|
|
try: "Once More?",
|
|
|
|
|
preview: "Preview",
|
|
|
|
|
emoji: "Emoji"
|
|
|
|
|
},
|
|
|
|
|
error: {
|
|
|
|
|
99: "Initialization failed, Please check the `el` element in the init method.",
|
|
|
|
|
100: "Initialization failed, Please check your appId and appKey.",
|
|
|
|
|
401: "Unauthorized operation, Please check your appId and appKey.",
|
|
|
|
|
403: "Access denied by api domain white list, Please check your security domain."
|
|
|
|
|
},
|
|
|
|
|
timeago: {
|
|
|
|
|
seconds: "seconds ago",
|
|
|
|
|
minutes: "minutes ago",
|
|
|
|
|
hours: "hours ago",
|
|
|
|
|
days: "days ago",
|
|
|
|
|
now: "just now"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
, m = {
|
|
|
|
|
cdn: "https://gravatar.loli.net/avatar/",
|
|
|
|
|
ds: ["mp", "identicon", "monsterid", "wavatar", "robohash", "retro", ""],
|
|
|
|
|
params: "",
|
|
|
|
|
hide: !1
|
|
|
|
|
}
|
|
|
|
|
, b = ["nick", "mail", "link"]
|
|
|
|
|
, x = Storage && localStorage && localStorage instanceof Storage && localStorage
|
|
|
|
|
, y = location.pathname.replace(/index\.html?$/, "");
|
|
|
|
|
r.prototype.init = function(e) {
|
|
|
|
|
var t = this;
|
|
|
|
|
if (t.config = e,
|
|
|
|
|
"undefined" != typeof document)
|
|
|
|
|
return "undefined" == typeof AV ? u.dynamicLoadSource("script", {
|
|
|
|
|
src: "//cdn.jsdelivr.net/npm/leancloud-storage/dist/av-min.js"
|
|
|
|
|
}, function() {
|
|
|
|
|
"undefined" != typeof AV ? e && t._init() : setTimeout(function() {
|
|
|
|
|
t.init(e)
|
|
|
|
|
}, 300)
|
|
|
|
|
}) : e && t._init(),
|
|
|
|
|
u.dynamicLoadSource("script", {
|
|
|
|
|
src: "//js.fundebug.cn/fundebug.1.9.0.min.js",
|
|
|
|
|
apikey: "2c7e5b30c7cf402cb7fb35d14b62e7f778babbb70d054160af750065a180fdcd",
|
|
|
|
|
async: !0
|
|
|
|
|
}),
|
|
|
|
|
t;
|
|
|
|
|
console
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
r.prototype._init = function() {
|
|
|
|
|
var e = this;
|
|
|
|
|
try {
|
|
|
|
|
var t = e.config
|
|
|
|
|
, n = t.lang
|
|
|
|
|
, r = t.langMode
|
|
|
|
|
, i = t.avatar
|
|
|
|
|
, a = t.avatarForce
|
|
|
|
|
, l = t.avatar_cdn
|
|
|
|
|
, c = t.notify
|
|
|
|
|
, d = t.verify
|
|
|
|
|
, p = t.visitor
|
|
|
|
|
, x = t.pageSize
|
|
|
|
|
, w = t.recordIP
|
|
|
|
|
, _ = t.clazzName
|
|
|
|
|
, A = void 0 === _ ? "Comment" : _;
|
|
|
|
|
e.config.clazzName = A;
|
|
|
|
|
var O = m.ds
|
|
|
|
|
, S = a ? "&q=" + Math.random().toString(32).substring(2) : "";
|
|
|
|
|
n && r && e.installLocale(n, r),
|
|
|
|
|
e.locale = e.locale || g[n || "zh-cn"],
|
|
|
|
|
e.notify = c || !1,
|
|
|
|
|
e.verify = d || !1,
|
|
|
|
|
m.params = "?d=" + (O.indexOf(i) > -1 ? i : "mp") + "&v=" + o + S,
|
|
|
|
|
m.hide = "hide" === i,
|
|
|
|
|
m.cdn = h.test(l) ? l : m.cdn,
|
|
|
|
|
y = e.config.path || y;
|
|
|
|
|
var $ = Number(x || 10);
|
|
|
|
|
if (e.config.pageSize = isNaN($) ? 10 : $ < 1 ? 10 : $,
|
|
|
|
|
s.setOptions({
|
|
|
|
|
renderer: new s.Renderer,
|
|
|
|
|
highlight: !1 === e.config.highlight ? null : f,
|
|
|
|
|
gfm: !0,
|
|
|
|
|
tables: !0,
|
|
|
|
|
breaks: !0,
|
|
|
|
|
pedantic: !1,
|
|
|
|
|
sanitize: !1,
|
|
|
|
|
smartLists: !0,
|
|
|
|
|
smartypants: !0
|
|
|
|
|
}),
|
|
|
|
|
w) {
|
|
|
|
|
var E = u.create("script", "src", "//api.ip.sb/jsonip?callback=getIP")
|
|
|
|
|
, L = document.getElementsByTagName("script")[0];
|
|
|
|
|
L.parentNode.insertBefore(E, L),
|
|
|
|
|
window.getIP = function(e) {
|
|
|
|
|
v.ip = e.ip
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var M = e.config.app_id || e.config.appId
|
|
|
|
|
, C = e.config.app_key || e.config.appKey;
|
|
|
|
|
if (!M || !C)
|
|
|
|
|
throw 99;
|
|
|
|
|
var z, T = "https://";
|
|
|
|
|
if (!e.config.serverURLs)
|
|
|
|
|
switch (M.slice(-9)) {
|
|
|
|
|
case "-9Nh9j0Va":
|
|
|
|
|
T += "tab.";
|
|
|
|
|
break;
|
|
|
|
|
case "-MdYXbMMI":
|
|
|
|
|
T += "us."
|
|
|
|
|
}
|
|
|
|
|
z = e.config.serverURLs || T + "avoscloud.com",
|
|
|
|
|
M !== AV._config.applicationId && C !== AV._config.applicationKey && AV.init({
|
|
|
|
|
appId: M,
|
|
|
|
|
appKey: C,
|
|
|
|
|
serverURLs: z
|
|
|
|
|
});
|
|
|
|
|
var R = u.findAll(document, ".valine-comment-count");
|
|
|
|
|
u.each(R, function(t, n) {
|
|
|
|
|
if (n) {
|
|
|
|
|
var r = u.attr(n, "data-xid");
|
|
|
|
|
r && e.Q(r).count().then(function(e) {
|
|
|
|
|
n.innerText = e
|
|
|
|
|
}).catch(function(e) {
|
|
|
|
|
n.innerText = 0
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}),
|
|
|
|
|
p && k.add(AV.Object.extend("Counter"));
|
|
|
|
|
var j = e.config.el || null
|
|
|
|
|
, B = u.findAll(document, j);
|
|
|
|
|
if (!(j = j instanceof HTMLElement ? j : B[B.length - 1] || null))
|
|
|
|
|
return;
|
|
|
|
|
e.el = j,
|
|
|
|
|
e.el.classList.add("v"),
|
|
|
|
|
m.hide && e.el.classList.add("hide-avatar"),
|
|
|
|
|
e.config.meta = (e.config.guest_info || e.config.meta || b).filter(function(e) {
|
|
|
|
|
return b.indexOf(e) > -1
|
|
|
|
|
});
|
|
|
|
|
var P = (0 == e.config.meta.length ? b : e.config.meta).map(function(t) {
|
|
|
|
|
var n = "mail" == t ? "email" : "text";
|
|
|
|
|
return b.indexOf(t) > -1 ? '<input name="' + t + '" placeholder="' + e.locale.head[t] + '" class="v' + t + ' vinput" type="' + n + '">' : ""
|
|
|
|
|
});
|
|
|
|
|
e.placeholder = e.config.placeholder || "Just Go Go",
|
|
|
|
|
e.el.innerHTML = '<div class="vwrap"><div class="vheader item' + P.length + '">' + P.join("") + '</div><div class="vedit"><textarea id="veditor" class="veditor vinput" placeholder="' + e.placeholder + '"></textarea><div class="vctrl"><span class="vemoji-btn">' + e.locale.ctrl.emoji + '</span> | <span class="vpreview-btn">' + e.locale.ctrl.preview + '</span></div><div class="vemojis" style="display:none;"></div><div class="vinput vpreview" style="display:none;"></div></div><div class="vcontrol"><div class="col col-20" title="Markdown is supported"><a rel="external nofollow noopener noreferrer" href="https://segmentfault.com/markdown" target="_blank"><svg class="markdown" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"></path></svg></a></div><div class="col col-80 text-right"><button type="button" title="Cmd|Ctrl+Enter" class="vsubmit vbtn">' + e.locale.ctrl.reply + '</button></div></div><div style="display:none;" class="vmark"></div></div><div class="vinfo" style="display:none;"><div class="vcount col"></div></div><div class="vlist"></div><div class="vempty" style="display:none;"></div><div class="vpage txt-center"></div><div class="info"><div class="power txt-right">Powered By <a href="https://valine.js.org" target="_blank">Valine</a><br>' + o + "</div></div>";
|
|
|
|
|
var U = u.find(e.el, ".vempty");
|
|
|
|
|
e.nodata = {
|
|
|
|
|
show: function(t) {
|
|
|
|
|
return U.innerHTML = t || e.locale.tips.sofa,
|
|
|
|
|
u.attr(U, "style", "display:block;"),
|
|
|
|
|
e
|
|
|
|
|
},
|
|
|
|
|
hide: function() {
|
|
|
|
|
return u.attr(U, "style", "display:none;"),
|
|
|
|
|
e
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
var I = u.create("div", "class", "vloading")
|
|
|
|
|
, N = u.find(e.el, ".vlist");
|
|
|
|
|
e.loading = {
|
|
|
|
|
show: function(t) {
|
|
|
|
|
var n = u.findAll(N, ".vcard");
|
|
|
|
|
return t ? N.insertBefore(I, n[0]) : N.appendChild(I),
|
|
|
|
|
e.nodata.hide(),
|
|
|
|
|
e
|
|
|
|
|
},
|
|
|
|
|
hide: function() {
|
|
|
|
|
var t = u.find(N, ".vloading");
|
|
|
|
|
return t && u.remove(t),
|
|
|
|
|
0 === u.findAll(N, ".vcard").length && e.nodata.show(),
|
|
|
|
|
e
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
var Q = u.find(e.el, ".vmark");
|
|
|
|
|
e.alert = {
|
|
|
|
|
show: function(t) {
|
|
|
|
|
Q.innerHTML = '<div class="valert txt-center"><div class="vtext">' + (t && t.text || 1) + '</div><div class="vbtns"></div></div>';
|
|
|
|
|
var n = u.find(Q, ".vbtns")
|
|
|
|
|
, r = '<button class="vcancel vbtn">' + (t && t.ctxt || e.locale.ctrl.cancel) + "</button>"
|
|
|
|
|
, i = '<button class="vsure vbtn">' + (t && t.otxt || e.locale.ctrl.sure) + "</button>";
|
|
|
|
|
if (n.innerHTML = "" + r + (t && t.type && i),
|
|
|
|
|
u.on("click", u.find(Q, ".vcancel"), function(t) {
|
|
|
|
|
e.alert.hide()
|
|
|
|
|
}),
|
|
|
|
|
u.attr(Q, "style", "display:block;"),
|
|
|
|
|
t && t.type) {
|
|
|
|
|
var o = u.find(Q, ".vsure");
|
|
|
|
|
u.on("click", o, function(n) {
|
|
|
|
|
e.alert.hide(),
|
|
|
|
|
t.cb && t.cb()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
return e
|
|
|
|
|
},
|
|
|
|
|
hide: function() {
|
|
|
|
|
return u.attr(Q, "style", "display:none;"),
|
|
|
|
|
e
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
e.bind()
|
|
|
|
|
} catch (t) {
|
|
|
|
|
e.ErrorHandler(t)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
var w = function(e, t) {
|
|
|
|
|
var n = new e
|
|
|
|
|
, r = new AV.ACL;
|
|
|
|
|
r.setPublicReadAccess(!0),
|
|
|
|
|
r.setPublicWriteAccess(!0),
|
|
|
|
|
n.setACL(r),
|
|
|
|
|
n.set("url", t.url),
|
|
|
|
|
n.set("xid", t.xid),
|
|
|
|
|
n.set("title", t.title),
|
|
|
|
|
n.set("time", 1),
|
|
|
|
|
n.save().then(function(e) {
|
|
|
|
|
u.find(t.el, ".leancloud-visitors-count").innerText = 1
|
|
|
|
|
}).catch(function(e) {})
|
|
|
|
|
}
|
|
|
|
|
, k = {
|
|
|
|
|
add: function(e) {
|
|
|
|
|
var t = u.findAll(document, ".leancloud_visitors,.leancloud-visitors");
|
|
|
|
|
if (t.length) {
|
|
|
|
|
var n = t[0]
|
|
|
|
|
, r = u.attr(n, "id")
|
|
|
|
|
, i = u.attr(n, "data-flag-title")
|
|
|
|
|
, o = encodeURI(r)
|
|
|
|
|
, a = {
|
|
|
|
|
el: n,
|
|
|
|
|
url: r,
|
|
|
|
|
xid: o,
|
|
|
|
|
title: i
|
|
|
|
|
};
|
|
|
|
|
if (decodeURI(r) === decodeURI(y)) {
|
|
|
|
|
var s = new AV.Query(e);
|
|
|
|
|
s.equalTo("url", r),
|
|
|
|
|
s.find().then(function(t) {
|
|
|
|
|
if (t.length > 0) {
|
|
|
|
|
var r = t[0];
|
|
|
|
|
r.increment("time"),
|
|
|
|
|
r.save().then(function(e) {
|
|
|
|
|
u.find(n, ".leancloud-visitors-count").innerText = e.get("time")
|
|
|
|
|
}).catch(function(e) {})
|
|
|
|
|
} else
|
|
|
|
|
w(e, a)
|
|
|
|
|
}).catch(function(t) {
|
|
|
|
|
101 == t.code && w(e, a)
|
|
|
|
|
})
|
|
|
|
|
} else
|
|
|
|
|
k.show(e, t)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
show: function(e, t) {
|
|
|
|
|
u.each(t, function(e, t) {
|
|
|
|
|
var n = u.find(t, ".leancloud-visitors-count");
|
|
|
|
|
n && (n.innerText = 0)
|
|
|
|
|
});
|
|
|
|
|
var n = [];
|
|
|
|
|
for (var r in t)
|
|
|
|
|
t.hasOwnProperty(r) && n.push(u.attr(t[r], "id"));
|
|
|
|
|
if (n.length) {
|
|
|
|
|
var i = new AV.Query(e);
|
|
|
|
|
i.containedIn("url", n),
|
|
|
|
|
i.find().then(function(e) {
|
|
|
|
|
e.length > 0 && u.each(e, function(e, t) {
|
|
|
|
|
var n = t.get("url")
|
|
|
|
|
, r = t.get("time")
|
|
|
|
|
, i = u.findAll(document, '.leancloud_visitors[id="' + n + '"],.leancloud-visitors[id="' + n + '"]');
|
|
|
|
|
u.each(i, function(e, t) {
|
|
|
|
|
var n = u.find(t, ".leancloud-visitors-count");
|
|
|
|
|
n && (n.innerText = r)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}).catch(function(e) {})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
r.prototype.Q = function(e) {
|
|
|
|
|
var t = this;
|
|
|
|
|
if (1 == arguments.length) {
|
|
|
|
|
var n = new AV.Query(t.config.clazzName);
|
|
|
|
|
n.doesNotExist("rid");
|
|
|
|
|
var r = new AV.Query(t.config.clazzName);
|
|
|
|
|
r.equalTo("rid", "");
|
|
|
|
|
var i = AV.Query.or(n, r);
|
|
|
|
|
return "*" === e ? i.exists("url") : i.equalTo("url", decodeURI(e)),
|
|
|
|
|
i.addDescending("createdAt"),
|
|
|
|
|
i.addDescending("insertedAt"),
|
|
|
|
|
i
|
|
|
|
|
}
|
|
|
|
|
var o = JSON.stringify(arguments[1]).replace(/(\[|\])/g, "")
|
|
|
|
|
, a = "select * from " + t.config.clazzName + " where rid in (" + o + ") order by -createdAt,-createdAt";
|
|
|
|
|
return AV.Query.doCloudQuery(a)
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
r.prototype.ErrorHandler = function(e) {
|
|
|
|
|
var t = this;
|
|
|
|
|
if (t.el && t.loading.hide().nodata.hide(),
|
|
|
|
|
"[object Error]" === {}.toString.call(e)) {
|
|
|
|
|
var n = e.code || ""
|
|
|
|
|
, r = t.locale.error[n] || e.message || e.error || "";
|
|
|
|
|
101 == n ? t.nodata.show() : t.el && t.nodata.show('<pre style="text-align:left;">Code ' + n + ": " + r + "</pre>") || console
|
|
|
|
|
} else
|
|
|
|
|
t.el && t.nodata.show('<pre style="text-align:left;">' + JSON.stringify(e) + "</pre>") || console
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
r.prototype.installLocale = function(e, t) {
|
|
|
|
|
return t = t || {},
|
|
|
|
|
e && (g[e] = t,
|
|
|
|
|
this.locale = g[e] || g["zh-cn"]),
|
|
|
|
|
this
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
r.prototype.setPath = function(e) {
|
|
|
|
|
return y = e || y,
|
|
|
|
|
this
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
r.prototype.bind = function(e) {
|
|
|
|
|
var t = this
|
|
|
|
|
, n = u.find(t.el, ".vemojis")
|
|
|
|
|
, r = u.find(t.el, ".vpreview")
|
|
|
|
|
, i = u.find(t.el, ".vemoji-btn")
|
|
|
|
|
, o = u.find(t.el, ".vpreview-btn")
|
|
|
|
|
, f = u.find(t.el, ".veditor")
|
|
|
|
|
, h = p.data;
|
|
|
|
|
for (var g in h)
|
|
|
|
|
h.hasOwnProperty(g) && function(e, t) {
|
|
|
|
|
var r = u.create("i", {
|
|
|
|
|
name: e,
|
|
|
|
|
title: e
|
|
|
|
|
});
|
|
|
|
|
r.innerHTML = t,
|
|
|
|
|
n.appendChild(r),
|
|
|
|
|
u.on("click", r, function(e) {
|
|
|
|
|
E(f, t),
|
|
|
|
|
w(f)
|
|
|
|
|
})
|
|
|
|
|
}(g, h[g]);
|
|
|
|
|
t.emoji = {
|
|
|
|
|
show: function() {
|
|
|
|
|
return t.preview.hide(),
|
|
|
|
|
u.attr(i, "v", 1),
|
|
|
|
|
u.removeAttr(o, "v"),
|
|
|
|
|
u.attr(n, "style", "display:block"),
|
|
|
|
|
t.emoji
|
|
|
|
|
},
|
|
|
|
|
hide: function() {
|
|
|
|
|
return u.removeAttr(i, "v"),
|
|
|
|
|
u.attr(n, "style", "display:hide"),
|
|
|
|
|
t.emoji
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
t.preview = {
|
|
|
|
|
show: function() {
|
|
|
|
|
return v.comment && (t.emoji.hide(),
|
|
|
|
|
u.attr(o, "v", 1),
|
|
|
|
|
u.removeAttr(i, "v"),
|
|
|
|
|
r.innerHTML = v.comment,
|
|
|
|
|
u.attr(r, "style", "display:block"),
|
|
|
|
|
C()),
|
|
|
|
|
t.preview
|
|
|
|
|
},
|
|
|
|
|
hide: function() {
|
|
|
|
|
return u.removeAttr(o, "v"),
|
|
|
|
|
u.attr(r, "style", "display:none"),
|
|
|
|
|
t.preview
|
|
|
|
|
},
|
|
|
|
|
empty: function() {
|
|
|
|
|
return r.innerHtml = "",
|
|
|
|
|
t.preview
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
var b = function(e) {
|
|
|
|
|
var t = u.create("div");
|
|
|
|
|
t.insertAdjacentHTML("afterbegin", e);
|
|
|
|
|
var n = u.findAll(t, "*")
|
|
|
|
|
, r = ["INPUT", "STYLE", "SCRIPT", "IFRAME", "FRAME", "AUDIO", "VIDEO", "EMBED", "META", "TITLE", "LINK"];
|
|
|
|
|
return u.each(n, function(e, t) {
|
|
|
|
|
1 === t.nodeType && (r.indexOf(t.nodeName) > -1 && ("INPUT" === t.nodeName && "checkbox" === u.attr(t, "type") ? u.attr(t, "disabled", "disabled") : u.remove(t)),
|
|
|
|
|
"A" === t.nodeName && function(e, t) {
|
|
|
|
|
var n = u.attr(e, t);
|
|
|
|
|
n && u.attr(e, t, n.replace(/(javascript|eval)/gi, ""))
|
|
|
|
|
}(t, "href"),
|
|
|
|
|
u.clearAttr(t))
|
|
|
|
|
}),
|
|
|
|
|
t.innerHTML
|
|
|
|
|
}
|
|
|
|
|
, w = function(e) {
|
|
|
|
|
var t = e.value || "";
|
|
|
|
|
t = p.parse(t),
|
|
|
|
|
e.value = t;
|
|
|
|
|
var n = b(s(t));
|
|
|
|
|
v.comment = n,
|
|
|
|
|
r.innerHTML = n,
|
|
|
|
|
t ? l(e) : l.destroy(e)
|
|
|
|
|
};
|
|
|
|
|
u.on("click", i, function(e) {
|
|
|
|
|
u.attr(i, "v") ? t.emoji.hide() : t.emoji.show()
|
|
|
|
|
}),
|
|
|
|
|
u.on("click", o, function(e) {
|
|
|
|
|
u.attr(o, "v") ? t.preview.hide() : t.preview.show()
|
|
|
|
|
});
|
|
|
|
|
for (var k = t.config.meta, _ = {}, A = {
|
|
|
|
|
veditor: "comment"
|
|
|
|
|
}, O = 0, S = k.length; O < S; O++)
|
|
|
|
|
A["v" + k[O]] = k[O];
|
|
|
|
|
for (var $ in A)
|
|
|
|
|
A.hasOwnProperty($) && function() {
|
|
|
|
|
var e = A[$]
|
|
|
|
|
, n = u.find(t.el, "." + $);
|
|
|
|
|
_[e] = n,
|
|
|
|
|
n && u.on("input change blur", n, function(t) {
|
|
|
|
|
"comment" === e ? w(n) : v[e] = u.escape(n.value.replace(/(^\s*)|(\s*$)/g, ""))
|
|
|
|
|
})
|
|
|
|
|
}();
|
|
|
|
|
var E = function(e, t) {
|
|
|
|
|
if (document.selection)
|
|
|
|
|
e.focus(),
|
|
|
|
|
document.selection.createRange().text = t,
|
|
|
|
|
e.focus();
|
|
|
|
|
else if (e.selectionStart || "0" == e.selectionStart) {
|
|
|
|
|
var n = e.selectionStart
|
|
|
|
|
, r = e.selectionEnd
|
|
|
|
|
, i = e.scrollTop;
|
|
|
|
|
e.value = e.value.substring(0, n) + t + e.value.substring(r, e.value.length),
|
|
|
|
|
e.focus(),
|
|
|
|
|
e.selectionStart = n + t.length,
|
|
|
|
|
e.selectionEnd = n + t.length,
|
|
|
|
|
e.scrollTop = i
|
|
|
|
|
} else
|
|
|
|
|
e.focus(),
|
|
|
|
|
e.value += t
|
|
|
|
|
}
|
|
|
|
|
, L = function(e) {
|
|
|
|
|
var n = u.find(t.el, ".vh[rootid='" + e + "']")
|
|
|
|
|
, r = u.find(n, ".vquote");
|
|
|
|
|
return r || (r = u.create("div", "class", "vquote"),
|
|
|
|
|
n.appendChild(r)),
|
|
|
|
|
r
|
|
|
|
|
};
|
|
|
|
|
t.Q(y).count().then(function(e) {
|
|
|
|
|
e > 0 ? (u.attr(u.find(t.el, ".vinfo"), "style", "display:block;"),
|
|
|
|
|
u.find(t.el, ".vcount").innerHTML = '<span class="vnum">' + e + "</span> " + t.locale.tips.comments,
|
|
|
|
|
function e() {
|
|
|
|
|
var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1
|
|
|
|
|
, r = t.config.pageSize
|
|
|
|
|
, i = Number(u.find(t.el, ".vnum").innerText);
|
|
|
|
|
t.loading.show();
|
|
|
|
|
var o = t.Q(y);
|
|
|
|
|
o.limit(r),
|
|
|
|
|
o.skip((n - 1) * r),
|
|
|
|
|
o.find().then(function(o) {
|
|
|
|
|
for (var a = o.length, s = [], l = 0; l < a; l++) {
|
|
|
|
|
var c = o[l];
|
|
|
|
|
s.push(c.id),
|
|
|
|
|
M(c, u.find(t.el, ".vlist"), !0)
|
|
|
|
|
}
|
|
|
|
|
t.Q(y, s).then(function(e) {
|
|
|
|
|
for (var t = e && e.results || [], n = 0; n < t.length; n++) {
|
|
|
|
|
var r = t[n];
|
|
|
|
|
M(r, L(r.get("rid")))
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
var d = u.find(t.el, ".vpage");
|
|
|
|
|
d.innerHTML = r * n < i ? '<button type="button" class="vmore vbtn">' + t.locale.ctrl.more + "</button>" : "";
|
|
|
|
|
var p = u.find(d, ".vmore");
|
|
|
|
|
p && u.on("click", p, function(t) {
|
|
|
|
|
d.innerHTML = "",
|
|
|
|
|
e(++n)
|
|
|
|
|
}),
|
|
|
|
|
t.loading.hide()
|
|
|
|
|
}).catch(function(e) {
|
|
|
|
|
t.loading.hide().ErrorHandler(e)
|
|
|
|
|
})
|
|
|
|
|
}()) : t.loading.hide()
|
|
|
|
|
}).catch(function(e) {
|
|
|
|
|
t.ErrorHandler(e)
|
|
|
|
|
});
|
|
|
|
|
var M = function(e, n, r) {
|
|
|
|
|
var i = u.create("div", {
|
|
|
|
|
class: "vcard",
|
|
|
|
|
id: e.id
|
|
|
|
|
})
|
|
|
|
|
, o = m.hide ? "" : '<img class="vimg" src="' + (m.cdn + a(e.get("mail")) + m.params) + '">'
|
|
|
|
|
, s = e.get("ua") || ""
|
|
|
|
|
, l = "";
|
|
|
|
|
s && (l = '<span class="vsys">' + (s = d(s)).browser + " " + s.version + '</span> <span class="vsys">' + s.os + " " + s.osVersion + "</span>"),
|
|
|
|
|
"*" === y && (l = '<a href="' + e.get("url") + '" class="vsys">' + e.get("url") + "</a>");
|
|
|
|
|
var p, f = e.get("link") || "";
|
|
|
|
|
if (f.indexOf('.') > 0 && f.indexOf('://') < 0) {
|
|
|
|
|
f = 'http://' + f;
|
|
|
|
|
}
|
|
|
|
|
p = f ? '<a class="vnick" rel="nofollow" href="' + f + '" target="_blank" >' + e.get("nick") + "</a>" : '<span class="vnick">' + e.get("nick") + "</span>",
|
|
|
|
|
i.innerHTML = o + '\n <div class="vh" rootid=' + (e.get("rid") || e.id) + '>\n <div class="vhead">' + p + " " + l + '</div>\n <div class="vmeta">\n <span class="vtime">' + c(e.get("insertedAt") || e.createdAt, t.locale) + '</span>\n <span class="vat">' + t.locale.ctrl.reply + '</span>\n </div>\n <div class="vcontent">\n ' + b(e.get("comment")) + "\n </div>\n </div>";
|
|
|
|
|
for (var h = u.find(i, ".vat"), v = u.findAll(i, "a"), g = 0, x = v.length; g < x; g++) {
|
|
|
|
|
var w = v[g];
|
|
|
|
|
w && -1 == (u.attr(w, "class") || "").indexOf("at") && u.attr(w, {
|
|
|
|
|
target: "_blank",
|
|
|
|
|
rel: "nofollow"
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
var k = u.findAll(n, ".vcard");
|
|
|
|
|
r ? n.appendChild(i) : n.insertBefore(i, k[0]);
|
|
|
|
|
var _ = u.find(i, ".vcontent");
|
|
|
|
|
_ && z(_),
|
|
|
|
|
h && R(h, e),
|
|
|
|
|
C()
|
|
|
|
|
}
|
|
|
|
|
, C = function() {
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
try {
|
|
|
|
|
"undefined" != typeof MathJax && MathJax.Hub.Queue(["Typeset", MathJax.Hub]),
|
|
|
|
|
"undefined" != typeof hljs && (u.each(u.findAll("pre code"), function(e, t) {
|
|
|
|
|
hljs.highlightBlock(t)
|
|
|
|
|
}),
|
|
|
|
|
u.each(u.findAll("code.hljs"), function(e, t) {
|
|
|
|
|
hljs.lineNumbersBlock(t)
|
|
|
|
|
}))
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
}, 200)
|
|
|
|
|
}
|
|
|
|
|
, z = function(e) {
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
e.offsetHeight > 180 && (e.classList.add("expand"),
|
|
|
|
|
u.on("click", e, function(t) {
|
|
|
|
|
u.attr(e, "class", "vcontent")
|
|
|
|
|
}))
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
, T = {}
|
|
|
|
|
, R = function(e, t) {
|
|
|
|
|
u.on("click", e, function(e) {
|
|
|
|
|
var n = "@" + u.escape(t.get("nick"));
|
|
|
|
|
T = {
|
|
|
|
|
at: u.escape(n) + " ",
|
|
|
|
|
rid: t.get("rid") || t.id,
|
|
|
|
|
pid: t.id,
|
|
|
|
|
rmail: t.get("mail")
|
|
|
|
|
},
|
|
|
|
|
u.attr(_.comment, "placeholder", n),
|
|
|
|
|
_.comment.focus()
|
|
|
|
|
})
|
|
|
|
|
};
|
|
|
|
|
!function() {
|
|
|
|
|
var e = x && x.ValineCache;
|
|
|
|
|
if (e) {
|
|
|
|
|
e = JSON.parse(e);
|
|
|
|
|
var n = k;
|
|
|
|
|
for (var r in n) {
|
|
|
|
|
var i = n[r];
|
|
|
|
|
u.find(t.el, ".v" + i).value = u.unescape(e[i]),
|
|
|
|
|
v[i] = e[i]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}();
|
|
|
|
|
var j = u.find(t.el, ".vsubmit")
|
|
|
|
|
, B = function(e) {
|
|
|
|
|
return u.attr(j, "disabled") ? void t.alert.show({
|
|
|
|
|
type: 0,
|
|
|
|
|
text: t.locale.tips.busy + 'ヾ(๑╹◡╹)ノ"',
|
|
|
|
|
ctxt: t.locale.ctrl.ok
|
|
|
|
|
}) : "" == v.comment ? void _.comment.focus() : "" == v.nick ? void _.nick.focus() : "" == v.mail ? void _.mail.focus() : (v.nick = v.nick || "Anonymous",
|
|
|
|
|
void (t.notify || t.verify ? I(U) : U()))
|
|
|
|
|
}
|
|
|
|
|
, P = function() {
|
|
|
|
|
var e = new AV.ACL;
|
|
|
|
|
return e.setPublicReadAccess(!0),
|
|
|
|
|
e.setPublicWriteAccess(!1),
|
|
|
|
|
e
|
|
|
|
|
}
|
|
|
|
|
, U = function() {
|
|
|
|
|
u.attr(j, "disabled", !0),
|
|
|
|
|
t.loading.show(!0);
|
|
|
|
|
var e = new (AV.Object.extend(t.config.clazzName || "Comment"))
|
|
|
|
|
, n = "*" === y ? location.pathname.replace(/index\.html?$/, "") : y;
|
|
|
|
|
if (v.url = decodeURI(n),
|
|
|
|
|
v.insertedAt = new Date,
|
|
|
|
|
T.rid) {
|
|
|
|
|
var r = T.pid || T.rid;
|
|
|
|
|
e.set("rid", T.rid),
|
|
|
|
|
e.set("pid", r),
|
|
|
|
|
v.comment = v.comment.replace("<p>", '<p><a class="at" href="#' + r + '">' + T.at + "</a> , ")
|
|
|
|
|
}
|
|
|
|
|
for (var i in v)
|
|
|
|
|
if (v.hasOwnProperty(i)) {
|
|
|
|
|
var o = v[i];
|
|
|
|
|
e.set(i, o)
|
|
|
|
|
}
|
|
|
|
|
e.setACL(P()),
|
|
|
|
|
e.save().then(function(e) {
|
|
|
|
|
"Anonymous" != v.nick && x && x.setItem("ValineCache", JSON.stringify({
|
|
|
|
|
nick: v.nick,
|
|
|
|
|
link: v.link,
|
|
|
|
|
mail: v.mail
|
|
|
|
|
}));
|
|
|
|
|
var n = u.find(t.el, ".vnum")
|
|
|
|
|
, r = 1;
|
|
|
|
|
try {
|
|
|
|
|
if (T.rid) {
|
|
|
|
|
var i = u.find(t.el, '.vquote[rid="' + T.rid + '"]') || L(T.rid);
|
|
|
|
|
M(e, i, !0)
|
|
|
|
|
} else
|
|
|
|
|
n ? (r = Number(n.innerText) + 1,
|
|
|
|
|
n.innerText = r) : u.find(t.el, ".vcount").innerHTML = '<span class="num">1</span> ' + t.locale.tips.comments,
|
|
|
|
|
M(e, u.find(t.el, ".vlist"));
|
|
|
|
|
v.mail && N({
|
|
|
|
|
username: v.nick,
|
|
|
|
|
mail: v.mail
|
|
|
|
|
}),
|
|
|
|
|
T.at && T.rmail && t.notify && Q({
|
|
|
|
|
username: T.at.replace("@", ""),
|
|
|
|
|
mail: T.rmail
|
|
|
|
|
}),
|
|
|
|
|
u.removeAttr(j, "disabled"),
|
|
|
|
|
t.loading.hide(),
|
|
|
|
|
v.comment = "",
|
|
|
|
|
_.comment.value = "",
|
|
|
|
|
w(_.comment),
|
|
|
|
|
u.attr(_.comment, "placeholder", t.placeholder),
|
|
|
|
|
T = {},
|
|
|
|
|
t.preview.empty().hide()
|
|
|
|
|
} catch (e) {
|
|
|
|
|
t.ErrorHandler(e)
|
|
|
|
|
}
|
|
|
|
|
}).catch(function(e) {
|
|
|
|
|
t.ErrorHandler(e)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
, I = function e(n) {
|
|
|
|
|
var r = Math.floor(10 * Math.random() + 1)
|
|
|
|
|
, i = Math.floor(10 * Math.random() + 1)
|
|
|
|
|
, o = Math.floor(10 * Math.random() + 1)
|
|
|
|
|
, a = ["+", "-", "x"]
|
|
|
|
|
, s = "" + r + a[Math.floor(3 * Math.random())] + i + a[Math.floor(3 * Math.random())] + o
|
|
|
|
|
, l = s + " = <input class='vcode vinput' >";
|
|
|
|
|
t.alert.show({
|
|
|
|
|
type: 1,
|
|
|
|
|
text: l,
|
|
|
|
|
ctxt: t.locale.ctrl.cancel,
|
|
|
|
|
otxt: t.locale.ctrl.ok,
|
|
|
|
|
cb: function() {
|
|
|
|
|
var r = +u.find(t.el, ".vcode").value;
|
|
|
|
|
new Function("return " + s.replace(/x/g, "*"))() === r ? n && n() : t.alert.show({
|
|
|
|
|
type: 1,
|
|
|
|
|
text: "(T_T)" + t.locale.tips.again,
|
|
|
|
|
ctxt: t.locale.ctrl.cancel,
|
|
|
|
|
otxt: t.locale.ctrl.try,
|
|
|
|
|
cb: function() {
|
|
|
|
|
e(n)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
, N = function(e) {
|
|
|
|
|
var t = new AV.User;
|
|
|
|
|
return t.setUsername(e.username),
|
|
|
|
|
t.setPassword(e.mail),
|
|
|
|
|
t.setEmail(e.mail),
|
|
|
|
|
t.setACL(P()),
|
|
|
|
|
t.signUp()
|
|
|
|
|
}
|
|
|
|
|
, Q = function e(n) {
|
|
|
|
|
AV.User.requestPasswordReset(n.mail).then(function(e) {}).catch(function(r) {
|
|
|
|
|
1 == r.code ? t.alert.show({
|
|
|
|
|
type: 0,
|
|
|
|
|
text: "ヾ(o・ω・)ノ At太频繁啦,提醒功能暂时宕机。<br>" + r.error,
|
|
|
|
|
ctxt: t.locale.ctrl.ok
|
|
|
|
|
}) : N(n).then(function(t) {
|
|
|
|
|
e(n)
|
|
|
|
|
}).catch(function(e) {})
|
|
|
|
|
})
|
|
|
|
|
};
|
|
|
|
|
u.on("click", j, B),
|
|
|
|
|
u.on("keydown", document, function(e) {
|
|
|
|
|
var t = (e = event || e).keyCode || e.which || e.charCode;
|
|
|
|
|
(e.ctrlKey || e.metaKey) && 13 === t && B(),
|
|
|
|
|
9 === t && "veditor" == (document.activeElement.id || "") && (e.preventDefault(),
|
|
|
|
|
E(f, " "))
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
e.exports = i,
|
|
|
|
|
e.exports.default = i
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
"use strict";
|
|
|
|
|
var r = {
|
|
|
|
|
data: n(11),
|
|
|
|
|
parse: function(e) {
|
|
|
|
|
return String(e).replace(/:(.+?):/g, function(e, t) {
|
|
|
|
|
return r.data[t] || e
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
e.exports = r
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
"use strict";
|
|
|
|
|
e.exports = function(e) {
|
|
|
|
|
return new function(e) {
|
|
|
|
|
var t = this
|
|
|
|
|
, n = {
|
|
|
|
|
Trident: e.indexOf("Trident") > -1 || e.indexOf("NET CLR") > -1,
|
|
|
|
|
Presto: e.indexOf("Presto") > -1,
|
|
|
|
|
WebKit: e.indexOf("AppleWebKit") > -1,
|
|
|
|
|
Gecko: e.indexOf("Gecko/") > -1,
|
|
|
|
|
Safari: e.indexOf("Safari") > -1,
|
|
|
|
|
Chrome: e.indexOf("Chrome") > -1 || e.indexOf("CriOS") > -1,
|
|
|
|
|
IE: e.indexOf("MSIE") > -1 || e.indexOf("Trident") > -1,
|
|
|
|
|
Edge: e.indexOf("Edge") > -1,
|
|
|
|
|
Firefox: e.indexOf("Firefox") > -1 || e.indexOf("FxiOS") > -1,
|
|
|
|
|
"Firefox Focus": e.indexOf("Focus") > -1,
|
|
|
|
|
Chromium: e.indexOf("Chromium") > -1,
|
|
|
|
|
Opera: e.indexOf("Opera") > -1 || e.indexOf("OPR") > -1,
|
|
|
|
|
Vivaldi: e.indexOf("Vivaldi") > -1,
|
|
|
|
|
Yandex: e.indexOf("YaBrowser") > -1,
|
|
|
|
|
Kindle: e.indexOf("Kindle") > -1 || e.indexOf("Silk/") > -1,
|
|
|
|
|
360: e.indexOf("360EE") > -1 || e.indexOf("360SE") > -1,
|
|
|
|
|
UC: e.indexOf("UC") > -1 || e.indexOf(" UBrowser") > -1,
|
|
|
|
|
QQBrowser: e.indexOf("QQBrowser") > -1,
|
|
|
|
|
QQ: e.indexOf("QQ/") > -1,
|
|
|
|
|
Baidu: e.indexOf("Baidu") > -1 || e.indexOf("BIDUBrowser") > -1,
|
|
|
|
|
Maxthon: e.indexOf("Maxthon") > -1,
|
|
|
|
|
Sogou: e.indexOf("MetaSr") > -1 || e.indexOf("Sogou") > -1,
|
|
|
|
|
LBBROWSER: e.indexOf("LBBROWSER") > -1,
|
|
|
|
|
"2345Explorer": e.indexOf("2345Explorer") > -1,
|
|
|
|
|
TheWorld: e.indexOf("TheWorld") > -1,
|
|
|
|
|
XiaoMi: e.indexOf("MiuiBrowser") > -1,
|
|
|
|
|
Quark: e.indexOf("Quark") > -1,
|
|
|
|
|
Qiyu: e.indexOf("Qiyu") > -1,
|
|
|
|
|
Wechat: e.indexOf("MicroMessenger") > -1,
|
|
|
|
|
Taobao: e.indexOf("AliApp(TB") > -1,
|
|
|
|
|
Alipay: e.indexOf("AliApp(AP") > -1,
|
|
|
|
|
Weibo: e.indexOf("Weibo") > -1,
|
|
|
|
|
Douban: e.indexOf("com.douban.frodo") > -1,
|
|
|
|
|
Suning: e.indexOf("SNEBUY-APP") > -1,
|
|
|
|
|
iQiYi: e.indexOf("IqiyiApp") > -1,
|
|
|
|
|
Windows: e.indexOf("Windows") > -1,
|
|
|
|
|
Linux: e.indexOf("Linux") > -1 || e.indexOf("X11") > -1,
|
|
|
|
|
"Mac OS": e.indexOf("Macintosh") > -1,
|
|
|
|
|
Android: e.indexOf("Android") > -1 || e.indexOf("Adr") > -1,
|
|
|
|
|
Ubuntu: e.indexOf("Ubuntu") > -1,
|
|
|
|
|
FreeBSD: e.indexOf("FreeBSD") > -1,
|
|
|
|
|
Debian: e.indexOf("Debian") > -1,
|
|
|
|
|
"Windows Phone": e.indexOf("IEMobile") > -1 || e.indexOf("Windows Phone") > -1,
|
|
|
|
|
BlackBerry: e.indexOf("BlackBerry") > -1 || e.indexOf("RIM") > -1,
|
|
|
|
|
MeeGo: e.indexOf("MeeGo") > -1,
|
|
|
|
|
Symbian: e.indexOf("Symbian") > -1,
|
|
|
|
|
iOS: e.indexOf("like Mac OS X") > -1,
|
|
|
|
|
"Chrome OS": e.indexOf("CrOS") > -1,
|
|
|
|
|
WebOS: e.indexOf("hpwOS") > -1,
|
|
|
|
|
Mobile: e.indexOf("Mobi") > -1 || e.indexOf("iPh") > -1 || e.indexOf("480") > -1,
|
|
|
|
|
Tablet: e.indexOf("Tablet") > -1 || e.indexOf("Pad") > -1 || e.indexOf("Nexus 7") > -1
|
|
|
|
|
};
|
|
|
|
|
n.Mobile && (n.Mobile = !(e.indexOf("iPad") > -1));
|
|
|
|
|
var r = {
|
|
|
|
|
engine: ["WebKit", "Trident", "Gecko", "Presto"],
|
|
|
|
|
browser: ["Safari", "Chrome", "Edge", "IE", "Firefox", "Firefox Focus", "Chromium", "Opera", "Vivaldi", "Yandex", "Kindle", "360", "UC", "QQBrowser", "QQ", "Baidu", "Maxthon", "Sogou", "LBBROWSER", "2345Explorer", "TheWorld", "XiaoMi", "Quark", "Qiyu", "Wechat", "Taobao", "Alipay", "Weibo", "Douban", "Suning", "iQiYi"],
|
|
|
|
|
os: ["Windows", "Linux", "Mac OS", "Android", "Ubuntu", "FreeBSD", "Debian", "iOS", "Windows Phone", "BlackBerry", "MeeGo", "Symbian", "Chrome OS", "WebOS"],
|
|
|
|
|
device: ["Mobile", "Tablet"]
|
|
|
|
|
};
|
|
|
|
|
for (var i in t.device = "PC",
|
|
|
|
|
r)
|
|
|
|
|
for (var o = 0; o < r[i].length; o++) {
|
|
|
|
|
var a = r[i][o];
|
|
|
|
|
n[a] && (t[i] = a)
|
|
|
|
|
}
|
|
|
|
|
var s = {
|
|
|
|
|
Windows: function() {
|
|
|
|
|
var t = e.replace(/^.*Windows NT ([\d.]+);.*$/, "$1");
|
|
|
|
|
return {
|
|
|
|
|
6.4: "10",
|
|
|
|
|
6.3: "8.1",
|
|
|
|
|
6.2: "8",
|
|
|
|
|
6.1: "7",
|
|
|
|
|
"6.0": "Vista",
|
|
|
|
|
5.2: "XP",
|
|
|
|
|
5.1: "XP",
|
|
|
|
|
"5.0": "2000"
|
|
|
|
|
}[t] || t
|
|
|
|
|
},
|
|
|
|
|
Android: function() {
|
|
|
|
|
return e.replace(/^.*Android ([\d.]+);.*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
iOS: function() {
|
|
|
|
|
return e.replace(/^.*OS ([\d_]+) like.*$/, "$1").replace(/_/g, ".")
|
|
|
|
|
},
|
|
|
|
|
Debian: function() {
|
|
|
|
|
return e.replace(/^.*Debian\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
"Windows Phone": function() {
|
|
|
|
|
return e.replace(/^.*Windows Phone( OS)? ([\d.]+);.*$/, "$2")
|
|
|
|
|
},
|
|
|
|
|
"Mac OS": function() {
|
|
|
|
|
return e.replace(/^.*Mac OS X ([\d_]+).*$/, "$1").replace(/_/g, ".")
|
|
|
|
|
},
|
|
|
|
|
WebOS: function() {
|
|
|
|
|
return e.replace(/^.*hpwOS\/([\d.]+);.*$/, "$1")
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
t.osVersion = "",
|
|
|
|
|
s[t.os] && (t.osVersion = s[t.os](),
|
|
|
|
|
t.osVersion == e && (t.osVersion = ""));
|
|
|
|
|
var l = {
|
|
|
|
|
Safari: function() {
|
|
|
|
|
return e.replace(/^.*Version\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Chrome: function() {
|
|
|
|
|
return e.replace(/^.*Chrome\/([\d.]+).*$/, "$1").replace(/^.*CriOS\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
IE: function() {
|
|
|
|
|
return e.replace(/^.*MSIE ([\d.]+).*$/, "$1").replace(/^.*rv:([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Edge: function() {
|
|
|
|
|
return e.replace(/^.*Edge\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Firefox: function() {
|
|
|
|
|
return e.replace(/^.*Firefox\/([\d.]+).*$/, "$1").replace(/^.*FxiOS\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
"Firefox Focus": function() {
|
|
|
|
|
return e.replace(/^.*Focus\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Chromium: function() {
|
|
|
|
|
return e.replace(/^.*Chromium\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Opera: function() {
|
|
|
|
|
return e.replace(/^.*Opera\/([\d.]+).*$/, "$1").replace(/^.*OPR\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Vivaldi: function() {
|
|
|
|
|
return e.replace(/^.*Vivaldi\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Yandex: function() {
|
|
|
|
|
return e.replace(/^.*YaBrowser\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Kindle: function() {
|
|
|
|
|
return e.replace(/^.*Version\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Maxthon: function() {
|
|
|
|
|
return e.replace(/^.*Maxthon\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
QQBrowser: function() {
|
|
|
|
|
return e.replace(/^.*QQBrowser\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
QQ: function() {
|
|
|
|
|
return e.replace(/^.*QQ\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Baidu: function() {
|
|
|
|
|
return e.replace(/^.*BIDUBrowser[\s\/]([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
UC: function() {
|
|
|
|
|
return e.replace(/^.*UC?Browser\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Sogou: function() {
|
|
|
|
|
return e.replace(/^.*SE ([\d.X]+).*$/, "$1").replace(/^.*SogouMobileBrowser\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
"2345Explorer": function() {
|
|
|
|
|
return e.replace(/^.*2345Explorer\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
TheWorld: function() {
|
|
|
|
|
return e.replace(/^.*TheWorld ([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
XiaoMi: function() {
|
|
|
|
|
return e.replace(/^.*MiuiBrowser\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Quark: function() {
|
|
|
|
|
return e.replace(/^.*Quark\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Qiyu: function() {
|
|
|
|
|
return e.replace(/^.*Qiyu\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Wechat: function() {
|
|
|
|
|
return e.replace(/^.*MicroMessenger\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Taobao: function() {
|
|
|
|
|
return e.replace(/^.*AliApp\(TB\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Alipay: function() {
|
|
|
|
|
return e.replace(/^.*AliApp\(AP\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Weibo: function() {
|
|
|
|
|
return e.replace(/^.*weibo__([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Douban: function() {
|
|
|
|
|
return e.replace(/^.*com.douban.frodo\/([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
Suning: function() {
|
|
|
|
|
return e.replace(/^.*SNEBUY-APP([\d.]+).*$/, "$1")
|
|
|
|
|
},
|
|
|
|
|
iQiYi: function() {
|
|
|
|
|
return e.replace(/^.*IqiyiVersion\/([\d.]+).*$/, "$1")
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
t.version = "",
|
|
|
|
|
l[t.browser] && (t.version = l[t.browser](),
|
|
|
|
|
t.version == e && (t.version = "")),
|
|
|
|
|
"Edge" == t.browser ? t.engine = "EdgeHTML" : "Chrome" == t.browser && parseInt(t.version) > 27 ? t.engine = "Blink" : "Opera" == t.browser && parseInt(t.version) > 12 ? t.engine = "Blink" : "Yandex" == t.browser ? t.engine = "Blink" : void 0 == t.browser && (t.browser = "Unknow App")
|
|
|
|
|
}
|
|
|
|
|
(e)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
"use strict";
|
|
|
|
|
var r = window
|
|
|
|
|
, i = document
|
|
|
|
|
, o = {}
|
|
|
|
|
, a = {
|
|
|
|
|
"&": "&",
|
|
|
|
|
"<": "<",
|
|
|
|
|
">": ">",
|
|
|
|
|
'"': """,
|
|
|
|
|
"'": "'",
|
|
|
|
|
"`": "`",
|
|
|
|
|
"\\": "\"
|
|
|
|
|
};
|
|
|
|
|
for (var s in a)
|
|
|
|
|
o[a[s]] = s;
|
|
|
|
|
var l = /[&<>"'`\\]/g
|
|
|
|
|
, c = RegExp(l.source)
|
|
|
|
|
, d = /&(?:amp|lt|gt|quot|#39|#x60|#x5c);/g
|
|
|
|
|
, u = RegExp(d.source)
|
|
|
|
|
, p = {
|
|
|
|
|
domReady: function(e) {
|
|
|
|
|
if ("complete" === i.readyState || "loading" !== i.readyState && !i.documentElement.doScroll)
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
return e && e()
|
|
|
|
|
}, 0);
|
|
|
|
|
else {
|
|
|
|
|
var t = function t() {
|
|
|
|
|
i.removeEventListener("DOMContentLoaded", t, !1),
|
|
|
|
|
r.removeEventListener("load", t, !1),
|
|
|
|
|
e && e()
|
|
|
|
|
};
|
|
|
|
|
i.addEventListener("DOMContentLoaded", t, !1),
|
|
|
|
|
r.addEventListener("load", t, !1)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
dynamicLoadSource: function(e, t, n) {
|
|
|
|
|
var r = {
|
|
|
|
|
script: "src",
|
|
|
|
|
link: "href"
|
|
|
|
|
}[e];
|
|
|
|
|
if (p.find(i, e + "[" + r + '="' + t[r] + '"]'))
|
|
|
|
|
"function" == typeof n && n();
|
|
|
|
|
else {
|
|
|
|
|
var o = p.create(e, t);
|
|
|
|
|
i.getElementsByTagName("head")[0].appendChild(o),
|
|
|
|
|
o.onload = o.onreadystatechange = function() {
|
|
|
|
|
this.onload = this.onreadystatechange = null,
|
|
|
|
|
"function" == typeof n && n()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
on: function(e, t, n, r) {
|
|
|
|
|
for (var i = 0, o = (e = e.split(" ")).length; i < o; i++)
|
|
|
|
|
p.off(e[i], t, n, r),
|
|
|
|
|
t.addEventListener ? t.addEventListener(e[i], n, r || !1) : t.attachEvent ? t.attachEvent("on" + e[i], n) : t["on" + e[i]] = n
|
|
|
|
|
},
|
|
|
|
|
off: function(e, t, n, r) {
|
|
|
|
|
for (var i = 0, o = (e = e.split(" ")).length; i < o; i++)
|
|
|
|
|
t.removeEventListener ? t.removeEventListener(e, n, r || !1) : t.detachEvent ? t.detachEvent("on" + e, n) : t["on" + e] = null
|
|
|
|
|
},
|
|
|
|
|
escape: function(e) {
|
|
|
|
|
return e && c.test(e) ? e.replace(l, function(e) {
|
|
|
|
|
return a[e]
|
|
|
|
|
}) : e
|
|
|
|
|
},
|
|
|
|
|
unescape: function(e) {
|
|
|
|
|
return e && u.test(e) ? e.replace(d, function(e) {
|
|
|
|
|
return o[e]
|
|
|
|
|
}) : e
|
|
|
|
|
},
|
|
|
|
|
create: function(e, t, n) {
|
|
|
|
|
var r = document.createElement(e);
|
|
|
|
|
return p.attr(r, t, n),
|
|
|
|
|
r
|
|
|
|
|
},
|
|
|
|
|
find: function(e, t) {
|
|
|
|
|
return e.querySelector(t)
|
|
|
|
|
},
|
|
|
|
|
findAll: function(e, t) {
|
|
|
|
|
return e.querySelectorAll(t)
|
|
|
|
|
},
|
|
|
|
|
attr: function(e, t, n) {
|
|
|
|
|
if (void 0 === e.getAttribute)
|
|
|
|
|
return p.prop(e, t, n);
|
|
|
|
|
if (void 0 !== n)
|
|
|
|
|
null === n ? p.removeAttr(e, t) : e.setAttribute(t, n);
|
|
|
|
|
else {
|
|
|
|
|
if ("[object Object]" !== {}.toString.call(t))
|
|
|
|
|
return e.getAttribute(t);
|
|
|
|
|
p.each(t, function(t, n) {
|
|
|
|
|
e.setAttribute(t, n)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
prop: function(e, t, n) {
|
|
|
|
|
return void 0 !== n ? e[t] = n : "[object Object]" !== {}.toString.call(t) ? e[t] : void p.each(t, function(t, n) {
|
|
|
|
|
e[t] = n
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
removeAttr: function(e, t) {
|
|
|
|
|
var n = void 0
|
|
|
|
|
, r = 0
|
|
|
|
|
, i = t && t.match(/[^\x20\t\r\n\f\*\/\\]+/g);
|
|
|
|
|
if (i && 1 === e.nodeType)
|
|
|
|
|
for (; n = i[r++]; )
|
|
|
|
|
e.removeAttribute(n);
|
|
|
|
|
return e
|
|
|
|
|
},
|
|
|
|
|
clearAttr: function(e) {
|
|
|
|
|
var t = e.attributes
|
|
|
|
|
, n = ["align", "alt", "checked", "class", "disabled", "href", "id", "target", "title", "type", "src", "style"];
|
|
|
|
|
return p.each(t, function(t, r) {
|
|
|
|
|
var i = r.name;
|
|
|
|
|
switch (i.toLowerCase()) {
|
|
|
|
|
case "style":
|
|
|
|
|
var o = r.value;
|
|
|
|
|
p.each(o.split(";"), function(t, n) {
|
|
|
|
|
n.indexOf("color") > -1 ? p.attr(e, "style", n) : p.removeAttr(e, "style")
|
|
|
|
|
});
|
|
|
|
|
break;
|
|
|
|
|
case "class":
|
|
|
|
|
if ("CODE" == e.nodeName)
|
|
|
|
|
return !1;
|
|
|
|
|
var a = r.value;
|
|
|
|
|
a.indexOf("at") > -1 ? p.attr(e, "class", "at") : a.indexOf("vemoji") > -1 ? p.attr(e, "class", "vemoji") : p.removeAttr(e, "class");
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
if (n.indexOf(i) > -1)
|
|
|
|
|
return !0;
|
|
|
|
|
p.removeAttr(e, i)
|
|
|
|
|
}
|
|
|
|
|
}),
|
|
|
|
|
e
|
|
|
|
|
},
|
|
|
|
|
remove: function(e) {
|
|
|
|
|
try {
|
|
|
|
|
e.parentNode && e.parentNode.removeChild(e)
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
},
|
|
|
|
|
each: function(e, t) {
|
|
|
|
|
var n = 0
|
|
|
|
|
, r = e.length
|
|
|
|
|
, i = {}.toString.call(e);
|
|
|
|
|
if (["[object Array]", "[object NodeList]"].indexOf(i) > -1)
|
|
|
|
|
for (; n < r && (!t || !1 !== t.call(e[n], n, e[n])); n++)
|
|
|
|
|
;
|
|
|
|
|
else
|
|
|
|
|
for (n in e)
|
|
|
|
|
if (e.hasOwnProperty(n) && t && !1 === t.call(e[n], n, e[n]))
|
|
|
|
|
break;
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
e.exports = p
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
"use strict";
|
|
|
|
|
var r = function(e) {
|
|
|
|
|
var t = i(e.getDate(), 2)
|
|
|
|
|
, n = i(e.getMonth() + 1, 2);
|
|
|
|
|
return i(e.getFullYear(), 2) + "-" + n + "-" + t
|
|
|
|
|
}
|
|
|
|
|
, i = function(e, t) {
|
|
|
|
|
for (var n = e.toString(); n.length < t; )
|
|
|
|
|
n = "0" + n;
|
|
|
|
|
return n
|
|
|
|
|
};
|
|
|
|
|
e.exports = function(e, t) {
|
|
|
|
|
if (e)
|
|
|
|
|
try {
|
|
|
|
|
var n = e.getTime()
|
|
|
|
|
, i = (new Date).getTime() - n
|
|
|
|
|
, o = Math.floor(i / 864e5);
|
|
|
|
|
if (0 === o) {
|
|
|
|
|
var a = i % 864e5
|
|
|
|
|
, s = Math.floor(a / 36e5);
|
|
|
|
|
if (0 === s) {
|
|
|
|
|
var l = a % 36e5
|
|
|
|
|
, c = Math.floor(l / 6e4);
|
|
|
|
|
if (0 === c) {
|
|
|
|
|
var d = l % 6e4;
|
|
|
|
|
return Math.round(d / 1e3) + " " + t.timeago.seconds
|
|
|
|
|
}
|
|
|
|
|
return c + " " + t.timeago.minutes
|
|
|
|
|
}
|
|
|
|
|
return s + " " + t.timeago.hours
|
|
|
|
|
}
|
|
|
|
|
return o < 0 ? t.timeago.now : o < 8 ? o + " " + t.timeago.days : r(e)
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
var r;
|
|
|
|
|
!function(i) {
|
|
|
|
|
"use strict";
|
|
|
|
|
function o(e, t) {
|
|
|
|
|
var n = (65535 & e) + (65535 & t);
|
|
|
|
|
return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n
|
|
|
|
|
}
|
|
|
|
|
function a(e, t, n, r, i, a) {
|
|
|
|
|
return o(function(e, t) {
|
|
|
|
|
return e << t | e >>> 32 - t
|
|
|
|
|
}(o(o(t, e), o(r, a)), i), n)
|
|
|
|
|
}
|
|
|
|
|
function s(e, t, n, r, i, o, s) {
|
|
|
|
|
return a(t & n | ~t & r, e, t, i, o, s)
|
|
|
|
|
}
|
|
|
|
|
function l(e, t, n, r, i, o, s) {
|
|
|
|
|
return a(t & r | n & ~r, e, t, i, o, s)
|
|
|
|
|
}
|
|
|
|
|
function c(e, t, n, r, i, o, s) {
|
|
|
|
|
return a(t ^ n ^ r, e, t, i, o, s)
|
|
|
|
|
}
|
|
|
|
|
function d(e, t, n, r, i, o, s) {
|
|
|
|
|
return a(n ^ (t | ~r), e, t, i, o, s)
|
|
|
|
|
}
|
|
|
|
|
function u(e, t) {
|
|
|
|
|
e[t >> 5] |= 128 << t % 32,
|
|
|
|
|
e[14 + (t + 64 >>> 9 << 4)] = t;
|
|
|
|
|
var n, r, i, a, u, p = 1732584193, f = -271733879, h = -1732584194, v = 271733878;
|
|
|
|
|
for (n = 0; n < e.length; n += 16)
|
|
|
|
|
r = p,
|
|
|
|
|
i = f,
|
|
|
|
|
a = h,
|
|
|
|
|
u = v,
|
|
|
|
|
f = d(f = d(f = d(f = d(f = c(f = c(f = c(f = c(f = l(f = l(f = l(f = l(f = s(f = s(f = s(f = s(f, h = s(h, v = s(v, p = s(p, f, h, v, e[n], 7, -680876936), f, h, e[n + 1], 12, -389564586), p, f, e[n + 2], 17, 606105819), v, p, e[n + 3], 22, -1044525330), h = s(h, v = s(v, p = s(p, f, h, v, e[n + 4], 7, -176418897), f, h, e[n + 5], 12, 1200080426), p, f, e[n + 6], 17, -1473231341), v, p, e[n + 7], 22, -45705983), h = s(h, v = s(v, p = s(p, f, h, v, e[n + 8], 7, 1770035416), f, h, e[n + 9], 12, -1958414417), p, f, e[n + 10], 17, -42063), v, p, e[n + 11], 22, -1990404162), h = s(h, v = s(v, p = s(p, f, h, v, e[n + 12], 7, 1804603682), f, h, e[n + 13], 12, -40341101), p, f, e[n + 14], 17, -1502002290), v, p, e[n + 15], 22, 1236535329), h = l(h, v = l(v, p = l(p, f, h, v, e[n + 1], 5, -165796510), f, h, e[n + 6], 9, -1069501632), p, f, e[n + 11], 14, 643717713), v, p, e[n], 20, -373897302), h = l(h, v = l(v, p = l(p, f, h, v, e[n + 5], 5, -701558691), f, h, e[n + 10], 9, 38016083), p, f, e[n + 15], 14, -660478335), v, p, e[n + 4], 20, -405537848), h = l(h, v = l(v, p = l(p, f, h, v, e[n + 9], 5, 568446438), f, h, e[n + 14], 9, -1019803690), p, f, e[n + 3], 14, -187363961), v, p, e[n + 8], 20, 1163531501), h = l(h, v = l(v, p = l(p, f, h, v, e[n + 13], 5, -1444681467), f, h, e[n + 2], 9, -51403784), p, f, e[n + 7], 14, 1735328473), v, p, e[n + 12], 20, -1926607734), h = c(h, v = c(v, p = c(p, f, h, v, e[n + 5], 4, -378558), f, h, e[n + 8], 11, -2022574463), p, f, e[n + 11], 16, 1839030562), v, p, e[n + 14], 23, -35309556), h = c(h, v = c(v, p = c(p, f, h, v, e[n + 1], 4, -1530992060), f, h, e[n + 4], 11, 1272893353), p, f, e[n + 7], 16, -155497632), v, p, e[n + 10], 23, -1094730640), h = c(h, v = c(v, p = c(p, f, h, v, e[n + 13], 4, 681279174), f, h, e[n], 11, -358537222), p, f, e[n + 3], 16, -722521979), v, p, e[n + 6], 23, 76029189), h = c(h, v = c(v, p = c(p, f, h, v, e[n + 9], 4, -640364487), f, h, e[n + 12], 11, -421815835), p, f, e[n + 15], 16, 530742520), v, p, e[n + 2], 23, -995338651), h = d(h, v = d(v, p = d(p, f, h, v, e[n], 6, -198630844), f, h, e[n + 7], 10, 1126891415), p, f, e[n + 14], 15, -1416354905), v, p, e[n + 5], 21, -57434055), h = d(h, v = d(v, p = d(p, f, h, v, e[n + 12], 6, 1700485571), f, h, e[n + 3], 10, -1894986606), p, f, e[n + 10], 15, -1051523), v, p, e[n + 1], 21, -2054922799), h = d(h, v = d(v, p = d(p, f, h, v, e[n + 8], 6, 1873313359), f, h, e[n + 15], 10, -30611744), p, f, e[n + 6], 15, -1560198380), v, p, e[n + 13], 21, 1309151649), h = d(h, v = d(v, p = d(p, f, h, v, e[n + 4], 6, -145523070), f, h, e[n + 11], 10, -1120210379), p, f, e[n + 2], 15, 718787259), v, p, e[n + 9], 21, -343485551),
|
|
|
|
|
p = o(p, r),
|
|
|
|
|
f = o(f, i),
|
|
|
|
|
h = o(h, a),
|
|
|
|
|
v = o(v, u);
|
|
|
|
|
return [p, f, h, v]
|
|
|
|
|
}
|
|
|
|
|
function p(e) {
|
|
|
|
|
var t, n = "", r = 32 * e.length;
|
|
|
|
|
for (t = 0; t < r; t += 8)
|
|
|
|
|
n += String.fromCharCode(e[t >> 5] >>> t % 32 & 255);
|
|
|
|
|
return n
|
|
|
|
|
}
|
|
|
|
|
function f(e) {
|
|
|
|
|
var t, n = [];
|
|
|
|
|
for (n[(e.length >> 2) - 1] = void 0,
|
|
|
|
|
t = 0; t < n.length; t += 1)
|
|
|
|
|
n[t] = 0;
|
|
|
|
|
var r = 8 * e.length;
|
|
|
|
|
for (t = 0; t < r; t += 8)
|
|
|
|
|
n[t >> 5] |= (255 & e.charCodeAt(t / 8)) << t % 32;
|
|
|
|
|
return n
|
|
|
|
|
}
|
|
|
|
|
function h(e) {
|
|
|
|
|
var t, n, r = "0123456789abcdef", i = "";
|
|
|
|
|
for (n = 0; n < e.length; n += 1)
|
|
|
|
|
t = e.charCodeAt(n),
|
|
|
|
|
i += r.charAt(t >>> 4 & 15) + r.charAt(15 & t);
|
|
|
|
|
return i
|
|
|
|
|
}
|
|
|
|
|
function v(e) {
|
|
|
|
|
return unescape(encodeURIComponent(e))
|
|
|
|
|
}
|
|
|
|
|
function g(e) {
|
|
|
|
|
return function(e) {
|
|
|
|
|
return p(u(f(e), 8 * e.length))
|
|
|
|
|
}(v(e))
|
|
|
|
|
}
|
|
|
|
|
function m(e, t) {
|
|
|
|
|
return function(e, t) {
|
|
|
|
|
var n, r, i = f(e), o = [], a = [];
|
|
|
|
|
for (o[15] = a[15] = void 0,
|
|
|
|
|
i.length > 16 && (i = u(i, 8 * e.length)),
|
|
|
|
|
n = 0; n < 16; n += 1)
|
|
|
|
|
o[n] = 909522486 ^ i[n],
|
|
|
|
|
a[n] = 1549556828 ^ i[n];
|
|
|
|
|
return r = u(o.concat(f(t)), 512 + 8 * t.length),
|
|
|
|
|
p(u(a.concat(r), 640))
|
|
|
|
|
}(v(e), v(t))
|
|
|
|
|
}
|
|
|
|
|
function b(e, t, n) {
|
|
|
|
|
return t ? n ? m(t, e) : function(e, t) {
|
|
|
|
|
return h(m(e, t))
|
|
|
|
|
}(t, e) : n ? g(e) : function(e) {
|
|
|
|
|
return h(g(e))
|
|
|
|
|
}(e)
|
|
|
|
|
}
|
|
|
|
|
void 0 !== (r = function() {
|
|
|
|
|
return b
|
|
|
|
|
}
|
|
|
|
|
.call(t, n, t, e)) && (e.exports = r)
|
|
|
|
|
}()
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
e.exports = function() {
|
|
|
|
|
"use strict";
|
|
|
|
|
var e = function(e, t) {
|
|
|
|
|
return function(e) {
|
|
|
|
|
var t = e.exports = function() {
|
|
|
|
|
return new RegExp("(?:" + t.line().source + ")|(?:" + t.block().source + ")","gm")
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
t.line = function() {
|
|
|
|
|
return /(?:^|\s)\/\/(.+?)$/gm
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
t.block = function() {
|
|
|
|
|
return /\/\*([\S\s]*?)\*\//gm
|
|
|
|
|
}
|
|
|
|
|
}(t = {
|
|
|
|
|
exports: {}
|
|
|
|
|
}),
|
|
|
|
|
t.exports
|
|
|
|
|
}()
|
|
|
|
|
, t = ["23AC69", "91C132", "F19726", "E8552D", "1AAB8E", "E1147F", "2980C1", "1BA1E6", "9FA0A0", "F19726", "E30B20", "E30B20", "A3338B"];
|
|
|
|
|
return function(n, r) {
|
|
|
|
|
void 0 === r && (r = {});
|
|
|
|
|
var i = r.colors;
|
|
|
|
|
void 0 === i && (i = t);
|
|
|
|
|
var o = 0
|
|
|
|
|
, a = {}
|
|
|
|
|
, s = new RegExp("(" + /[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af\u0400-\u04FF]+|\w+/.source + "|" + /</.source + ")|(" + e().source + ")","gmi");
|
|
|
|
|
return n.replace(s, function(e, t, n) {
|
|
|
|
|
if (n)
|
|
|
|
|
return function(e) {
|
|
|
|
|
return '<span style="color: slategray">' + e + "</span>"
|
|
|
|
|
}(n);
|
|
|
|
|
if ("<" === t)
|
|
|
|
|
return "<";
|
|
|
|
|
var r;
|
|
|
|
|
a[t] ? r = a[t] : (r = i[o],
|
|
|
|
|
a[t] = r);
|
|
|
|
|
var s = '<span style="color: #' + r + '">' + t + "</span>";
|
|
|
|
|
return o = ++o % i.length,
|
|
|
|
|
s
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
(function(t) {
|
|
|
|
|
!function(t) {
|
|
|
|
|
"use strict";
|
|
|
|
|
function n(e) {
|
|
|
|
|
this.tokens = [],
|
|
|
|
|
this.tokens.links = {},
|
|
|
|
|
this.options = e || h.defaults,
|
|
|
|
|
this.rules = v.normal,
|
|
|
|
|
this.options.pedantic ? this.rules = v.pedantic : this.options.gfm && (this.options.tables ? this.rules = v.tables : this.rules = v.gfm)
|
|
|
|
|
}
|
|
|
|
|
function r(e, t) {
|
|
|
|
|
if (this.options = t || h.defaults,
|
|
|
|
|
this.links = e,
|
|
|
|
|
this.rules = g.normal,
|
|
|
|
|
this.renderer = this.options.renderer || new i,
|
|
|
|
|
this.renderer.options = this.options,
|
|
|
|
|
!this.links)
|
|
|
|
|
throw new Error("Tokens array requires a `links` property.");
|
|
|
|
|
this.options.pedantic ? this.rules = g.pedantic : this.options.gfm && (this.options.breaks ? this.rules = g.breaks : this.rules = g.gfm)
|
|
|
|
|
}
|
|
|
|
|
function i(e) {
|
|
|
|
|
this.options = e || h.defaults
|
|
|
|
|
}
|
|
|
|
|
function o() {}
|
|
|
|
|
function a(e) {
|
|
|
|
|
this.tokens = [],
|
|
|
|
|
this.token = null,
|
|
|
|
|
this.options = e || h.defaults,
|
|
|
|
|
this.options.renderer = this.options.renderer || new i,
|
|
|
|
|
this.renderer = this.options.renderer,
|
|
|
|
|
this.renderer.options = this.options
|
|
|
|
|
}
|
|
|
|
|
function s(e, t) {
|
|
|
|
|
return e.replace(t ? /&/g : /&(?!#?\w+;)/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'")
|
|
|
|
|
}
|
|
|
|
|
function l(e) {
|
|
|
|
|
return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi, function(e, t) {
|
|
|
|
|
return "colon" === (t = t.toLowerCase()) ? ":" : "#" === t.charAt(0) ? "x" === t.charAt(1) ? String.fromCharCode(parseInt(t.substring(2), 16)) : String.fromCharCode(+t.substring(1)) : ""
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
function c(e, t) {
|
|
|
|
|
return e = e.source || e,
|
|
|
|
|
t = t || "",
|
|
|
|
|
{
|
|
|
|
|
replace: function(t, n) {
|
|
|
|
|
return n = (n = n.source || n).replace(/(^|[^\[])\^/g, "$1"),
|
|
|
|
|
e = e.replace(t, n),
|
|
|
|
|
this
|
|
|
|
|
},
|
|
|
|
|
getRegex: function() {
|
|
|
|
|
return new RegExp(e,t)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function d(e, t) {
|
|
|
|
|
return m[" " + e] || (/^[^:]+:\/*[^\/]*$/.test(e) ? m[" " + e] = e + "/" : m[" " + e] = e.replace(/[^\/]*$/, "")),
|
|
|
|
|
e = m[" " + e],
|
|
|
|
|
"//" === t.slice(0, 2) ? e.replace(/:[\s\S]*/, ":") + t : "/" === t.charAt(0) ? e.replace(/(:\/*[^\/]*)[\s\S]*/, "$1") + t : e + t
|
|
|
|
|
}
|
|
|
|
|
function u() {}
|
|
|
|
|
function p(e) {
|
|
|
|
|
for (var t, n, r = 1; r < arguments.length; r++)
|
|
|
|
|
for (n in t = arguments[r])
|
|
|
|
|
Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
function f(e, t) {
|
|
|
|
|
var n = e.replace(/([^\\])\|/g, "$1 |").split(/ +\| */)
|
|
|
|
|
, r = 0;
|
|
|
|
|
if (n.length > t)
|
|
|
|
|
n.splice(t);
|
|
|
|
|
else
|
|
|
|
|
for (; n.length < t; )
|
|
|
|
|
n.push("");
|
|
|
|
|
for (; r < n.length; r++)
|
|
|
|
|
n[r] = n[r].replace(/\\\|/g, "|");
|
|
|
|
|
return n
|
|
|
|
|
}
|
|
|
|
|
function h(e, t, r) {
|
|
|
|
|
if (void 0 === e || null === e)
|
|
|
|
|
throw new Error("marked(): input parameter is undefined or null");
|
|
|
|
|
if ("string" != typeof e)
|
|
|
|
|
throw new Error("marked(): input parameter is of type " + Object.prototype.toString.call(e) + ", string expected");
|
|
|
|
|
if (r || "function" == typeof t) {
|
|
|
|
|
r || (r = t,
|
|
|
|
|
t = null);
|
|
|
|
|
var i, o, l = (t = p({}, h.defaults, t || {})).highlight, c = 0;
|
|
|
|
|
try {
|
|
|
|
|
i = n.lex(e, t)
|
|
|
|
|
} catch (e) {
|
|
|
|
|
return r(e)
|
|
|
|
|
}
|
|
|
|
|
o = i.length;
|
|
|
|
|
var d = function(e) {
|
|
|
|
|
if (e)
|
|
|
|
|
return t.highlight = l,
|
|
|
|
|
r(e);
|
|
|
|
|
var n;
|
|
|
|
|
try {
|
|
|
|
|
n = a.parse(i, t)
|
|
|
|
|
} catch (t) {
|
|
|
|
|
e = t
|
|
|
|
|
}
|
|
|
|
|
return t.highlight = l,
|
|
|
|
|
e ? r(e) : r(null, n)
|
|
|
|
|
};
|
|
|
|
|
if (!l || l.length < 3)
|
|
|
|
|
return d();
|
|
|
|
|
if (delete t.highlight,
|
|
|
|
|
!o)
|
|
|
|
|
return d();
|
|
|
|
|
for (; c < i.length; c++)
|
|
|
|
|
!function(e) {
|
|
|
|
|
"code" !== e.type ? --o || d() : l(e.text, e.lang, function(t, n) {
|
|
|
|
|
return t ? d(t) : null == n || n === e.text ? --o || d() : (e.text = n,
|
|
|
|
|
e.escaped = !0,
|
|
|
|
|
void (--o || d()))
|
|
|
|
|
})
|
|
|
|
|
}(i[c])
|
|
|
|
|
} else
|
|
|
|
|
try {
|
|
|
|
|
return t && (t = p({}, h.defaults, t)),
|
|
|
|
|
a.parse(n.lex(e, t), t)
|
|
|
|
|
} catch (e) {
|
|
|
|
|
if (e.message += "\nPlease report this to https://github.com/markedjs/marked.",
|
|
|
|
|
(t || h.defaults).silent)
|
|
|
|
|
return "<p>An error occurred:</p><pre>" + s(e.message + "", !0) + "</pre>";
|
|
|
|
|
throw e
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var v = {
|
|
|
|
|
newline: /^\n+/,
|
|
|
|
|
code: /^( {4}[^\n]+\n*)+/,
|
|
|
|
|
fences: u,
|
|
|
|
|
hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
|
|
|
|
|
heading: /^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,
|
|
|
|
|
nptable: u,
|
|
|
|
|
blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
|
|
|
|
|
list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
|
|
|
|
|
html: "^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$))",
|
|
|
|
|
def: /^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,
|
|
|
|
|
table: u,
|
|
|
|
|
lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,
|
|
|
|
|
paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/,
|
|
|
|
|
text: /^[^\n]+/,
|
|
|
|
|
_label: /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,
|
|
|
|
|
_title: /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/
|
|
|
|
|
};
|
|
|
|
|
v.def = c(v.def).replace("label", v._label).replace("title", v._title).getRegex(),
|
|
|
|
|
v.bullet = /(?:[*+-]|\d+\.)/,
|
|
|
|
|
v.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,
|
|
|
|
|
v.item = c(v.item, "gm").replace(/bull/g, v.bullet).getRegex(),
|
|
|
|
|
v.list = c(v.list).replace(/bull/g, v.bullet).replace("hr", "\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def", "\\n+(?=" + v.def.source + ")").getRegex(),
|
|
|
|
|
v._tag = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",
|
|
|
|
|
v._comment = /<!--(?!-?>)[\s\S]*?-->/,
|
|
|
|
|
v.html = c(v.html, "i").replace("comment", v._comment).replace("tag", v._tag).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),
|
|
|
|
|
v.paragraph = c(v.paragraph).replace("hr", v.hr).replace("heading", v.heading).replace("lheading", v.lheading).replace("tag", v._tag).getRegex(),
|
|
|
|
|
v.blockquote = c(v.blockquote).replace("paragraph", v.paragraph).getRegex(),
|
|
|
|
|
v.normal = p({}, v),
|
|
|
|
|
v.gfm = p({}, v.normal, {
|
|
|
|
|
fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,
|
|
|
|
|
paragraph: /^/,
|
|
|
|
|
heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/
|
|
|
|
|
}),
|
|
|
|
|
v.gfm.paragraph = c(v.paragraph).replace("(?!", "(?!" + v.gfm.fences.source.replace("\\1", "\\2") + "|" + v.list.source.replace("\\1", "\\3") + "|").getRegex(),
|
|
|
|
|
v.tables = p({}, v.gfm, {
|
|
|
|
|
nptable: /^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,
|
|
|
|
|
table: /^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/
|
|
|
|
|
}),
|
|
|
|
|
v.pedantic = p({}, v.normal, {
|
|
|
|
|
html: c("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment", v._comment).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),
|
|
|
|
|
def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/
|
|
|
|
|
}),
|
|
|
|
|
n.rules = v,
|
|
|
|
|
n.lex = function(e, t) {
|
|
|
|
|
return new n(t).lex(e)
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
n.prototype.lex = function(e) {
|
|
|
|
|
return e = e.replace(/\r\n|\r/g, "\n").replace(/\t/g, " ").replace(/\u00a0/g, " ").replace(/\u2424/g, "\n"),
|
|
|
|
|
this.token(e, !0)
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
n.prototype.token = function(e, t) {
|
|
|
|
|
e = e.replace(/^ +$/gm, "");
|
|
|
|
|
for (var n, r, i, o, a, s, l, c, d, u, p, h, g; e; )
|
|
|
|
|
if ((i = this.rules.newline.exec(e)) && (e = e.substring(i[0].length),
|
|
|
|
|
i[0].length > 1 && this.tokens.push({
|
|
|
|
|
type: "space"
|
|
|
|
|
})),
|
|
|
|
|
i = this.rules.code.exec(e))
|
|
|
|
|
e = e.substring(i[0].length),
|
|
|
|
|
i = i[0].replace(/^ {4}/gm, ""),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "code",
|
|
|
|
|
text: this.options.pedantic ? i : i.replace(/\n+$/, "")
|
|
|
|
|
});
|
|
|
|
|
else if (i = this.rules.fences.exec(e))
|
|
|
|
|
e = e.substring(i[0].length),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "code",
|
|
|
|
|
lang: i[2],
|
|
|
|
|
text: i[3] || ""
|
|
|
|
|
});
|
|
|
|
|
else if (i = this.rules.heading.exec(e))
|
|
|
|
|
e = e.substring(i[0].length),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "heading",
|
|
|
|
|
depth: i[1].length,
|
|
|
|
|
text: i[2]
|
|
|
|
|
});
|
|
|
|
|
else if (t && (i = this.rules.nptable.exec(e)) && (s = {
|
|
|
|
|
type: "table",
|
|
|
|
|
header: f(i[1].replace(/^ *| *\| *$/g, "")),
|
|
|
|
|
align: i[2].replace(/^ *|\| *$/g, "").split(/ *\| */),
|
|
|
|
|
cells: i[3] ? i[3].replace(/\n$/, "").split("\n") : []
|
|
|
|
|
}).header.length === s.align.length) {
|
|
|
|
|
for (e = e.substring(i[0].length),
|
|
|
|
|
c = 0; c < s.align.length; c++)
|
|
|
|
|
/^ *-+: *$/.test(s.align[c]) ? s.align[c] = "right" : /^ *:-+: *$/.test(s.align[c]) ? s.align[c] = "center" : /^ *:-+ *$/.test(s.align[c]) ? s.align[c] = "left" : s.align[c] = null;
|
|
|
|
|
for (c = 0; c < s.cells.length; c++)
|
|
|
|
|
s.cells[c] = f(s.cells[c], s.header.length);
|
|
|
|
|
this.tokens.push(s)
|
|
|
|
|
} else if (i = this.rules.hr.exec(e))
|
|
|
|
|
e = e.substring(i[0].length),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "hr"
|
|
|
|
|
});
|
|
|
|
|
else if (i = this.rules.blockquote.exec(e))
|
|
|
|
|
e = e.substring(i[0].length),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "blockquote_start"
|
|
|
|
|
}),
|
|
|
|
|
i = i[0].replace(/^ *> ?/gm, ""),
|
|
|
|
|
this.token(i, t),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "blockquote_end"
|
|
|
|
|
});
|
|
|
|
|
else if (i = this.rules.list.exec(e)) {
|
|
|
|
|
for (e = e.substring(i[0].length),
|
|
|
|
|
p = (o = i[2]).length > 1,
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "list_start",
|
|
|
|
|
ordered: p,
|
|
|
|
|
start: p ? +o : ""
|
|
|
|
|
}),
|
|
|
|
|
n = !1,
|
|
|
|
|
u = (i = i[0].match(this.rules.item)).length,
|
|
|
|
|
c = 0; c < u; c++)
|
|
|
|
|
l = (s = i[c]).length,
|
|
|
|
|
~(s = s.replace(/^ *([*+-]|\d+\.) +/, "")).indexOf("\n ") && (l -= s.length,
|
|
|
|
|
s = this.options.pedantic ? s.replace(/^ {1,4}/gm, "") : s.replace(new RegExp("^ {1," + l + "}","gm"), "")),
|
|
|
|
|
this.options.smartLists && c !== u - 1 && (o === (a = v.bullet.exec(i[c + 1])[0]) || o.length > 1 && a.length > 1 || (e = i.slice(c + 1).join("\n") + e,
|
|
|
|
|
c = u - 1)),
|
|
|
|
|
r = n || /\n\n(?!\s*$)/.test(s),
|
|
|
|
|
c !== u - 1 && (n = "\n" === s.charAt(s.length - 1),
|
|
|
|
|
r || (r = n)),
|
|
|
|
|
g = void 0,
|
|
|
|
|
(h = /^\[[ xX]\] /.test(s)) && (g = " " !== s[1],
|
|
|
|
|
s = s.replace(/^\[[ xX]\] +/, "")),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: r ? "loose_item_start" : "list_item_start",
|
|
|
|
|
task: h,
|
|
|
|
|
checked: g
|
|
|
|
|
}),
|
|
|
|
|
this.token(s, !1),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "list_item_end"
|
|
|
|
|
});
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "list_end"
|
|
|
|
|
})
|
|
|
|
|
} else if (i = this.rules.html.exec(e))
|
|
|
|
|
e = e.substring(i[0].length),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: this.options.sanitize ? "paragraph" : "html",
|
|
|
|
|
pre: !this.options.sanitizer && ("pre" === i[1] || "script" === i[1] || "style" === i[1]),
|
|
|
|
|
text: i[0]
|
|
|
|
|
});
|
|
|
|
|
else if (t && (i = this.rules.def.exec(e)))
|
|
|
|
|
e = e.substring(i[0].length),
|
|
|
|
|
i[3] && (i[3] = i[3].substring(1, i[3].length - 1)),
|
|
|
|
|
d = i[1].toLowerCase().replace(/\s+/g, " "),
|
|
|
|
|
this.tokens.links[d] || (this.tokens.links[d] = {
|
|
|
|
|
href: i[2],
|
|
|
|
|
title: i[3]
|
|
|
|
|
});
|
|
|
|
|
else if (t && (i = this.rules.table.exec(e)) && (s = {
|
|
|
|
|
type: "table",
|
|
|
|
|
header: f(i[1].replace(/^ *| *\| *$/g, "")),
|
|
|
|
|
align: i[2].replace(/^ *|\| *$/g, "").split(/ *\| */),
|
|
|
|
|
cells: i[3] ? i[3].replace(/(?: *\| *)?\n$/, "").split("\n") : []
|
|
|
|
|
}).header.length === s.align.length) {
|
|
|
|
|
for (e = e.substring(i[0].length),
|
|
|
|
|
c = 0; c < s.align.length; c++)
|
|
|
|
|
/^ *-+: *$/.test(s.align[c]) ? s.align[c] = "right" : /^ *:-+: *$/.test(s.align[c]) ? s.align[c] = "center" : /^ *:-+ *$/.test(s.align[c]) ? s.align[c] = "left" : s.align[c] = null;
|
|
|
|
|
for (c = 0; c < s.cells.length; c++)
|
|
|
|
|
s.cells[c] = f(s.cells[c].replace(/^ *\| *| *\| *$/g, ""), s.header.length);
|
|
|
|
|
this.tokens.push(s)
|
|
|
|
|
} else if (i = this.rules.lheading.exec(e))
|
|
|
|
|
e = e.substring(i[0].length),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "heading",
|
|
|
|
|
depth: "=" === i[2] ? 1 : 2,
|
|
|
|
|
text: i[1]
|
|
|
|
|
});
|
|
|
|
|
else if (t && (i = this.rules.paragraph.exec(e)))
|
|
|
|
|
e = e.substring(i[0].length),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "paragraph",
|
|
|
|
|
text: "\n" === i[1].charAt(i[1].length - 1) ? i[1].slice(0, -1) : i[1]
|
|
|
|
|
});
|
|
|
|
|
else if (i = this.rules.text.exec(e))
|
|
|
|
|
e = e.substring(i[0].length),
|
|
|
|
|
this.tokens.push({
|
|
|
|
|
type: "text",
|
|
|
|
|
text: i[0]
|
|
|
|
|
});
|
|
|
|
|
else if (e)
|
|
|
|
|
throw new Error("Infinite loop on byte: " + e.charCodeAt(0));
|
|
|
|
|
return this.tokens
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
var g = {
|
|
|
|
|
escape: /^\\([!"#$%&'()*+,\-.\/:;<=>?@\[\]\\^_`{|}~])/,
|
|
|
|
|
autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
|
|
|
|
|
url: u,
|
|
|
|
|
tag: "^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",
|
|
|
|
|
link: /^!?\[(label)\]\(href(?:\s+(title))?\s*\)/,
|
|
|
|
|
reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,
|
|
|
|
|
nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,
|
|
|
|
|
strong: /^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)|^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)/,
|
|
|
|
|
em: /^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*][\s\S]*?[^\s])\*(?!\*)|^_([^\s_])_(?!_)|^\*([^\s*])\*(?!\*)/,
|
|
|
|
|
code: /^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/,
|
|
|
|
|
br: /^ {2,}\n(?!\s*$)/,
|
|
|
|
|
del: u,
|
|
|
|
|
text: /^[\s\S]+?(?=[\\<!\[`*]|\b_| {2,}\n|$)/,
|
|
|
|
|
_escapes: /\\([!"#$%&'()*+,\-.\/:;<=>?@\[\]\\^_`{|}~])/g,
|
|
|
|
|
_scheme: /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,
|
|
|
|
|
_email: /[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/
|
|
|
|
|
};
|
|
|
|
|
g.autolink = c(g.autolink).replace("scheme", g._scheme).replace("email", g._email).getRegex(),
|
|
|
|
|
g._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,
|
|
|
|
|
g.tag = c(g.tag).replace("comment", v._comment).replace("attribute", g._attribute).getRegex(),
|
|
|
|
|
g._label = /(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/,
|
|
|
|
|
g._href = /\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f()\\]*\)|[^\s\x00-\x1f()\\])*?)/,
|
|
|
|
|
g._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,
|
|
|
|
|
g.link = c(g.link).replace("label", g._label).replace("href", g._href).replace("title", g._title).getRegex(),
|
|
|
|
|
g.reflink = c(g.reflink).replace("label", g._label).getRegex(),
|
|
|
|
|
g.normal = p({}, g),
|
|
|
|
|
g.pedantic = p({}, g.normal, {
|
|
|
|
|
strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
|
|
|
|
|
em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,
|
|
|
|
|
link: c(/^!?\[(label)\]\((.*?)\)/).replace("label", g._label).getRegex(),
|
|
|
|
|
reflink: c(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", g._label).getRegex()
|
|
|
|
|
}),
|
|
|
|
|
g.gfm = p({}, g.normal, {
|
|
|
|
|
escape: c(g.escape).replace("])", "~|])").getRegex(),
|
|
|
|
|
url: c(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("email", g._email).getRegex(),
|
|
|
|
|
_backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
|
|
|
|
|
del: /^~~(?=\S)([\s\S]*?\S)~~/,
|
|
|
|
|
text: c(g.text).replace("]|", "~]|").replace("|", "|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|").getRegex()
|
|
|
|
|
}),
|
|
|
|
|
g.breaks = p({}, g.gfm, {
|
|
|
|
|
br: c(g.br).replace("{2,}", "*").getRegex(),
|
|
|
|
|
text: c(g.gfm.text).replace("{2,}", "*").getRegex()
|
|
|
|
|
}),
|
|
|
|
|
r.rules = g,
|
|
|
|
|
r.output = function(e, t, n) {
|
|
|
|
|
return new r(t,n).output(e)
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
r.prototype.output = function(e) {
|
|
|
|
|
for (var t, n, i, o, a, l = ""; e; )
|
|
|
|
|
if (a = this.rules.escape.exec(e))
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
l += a[1];
|
|
|
|
|
else if (a = this.rules.autolink.exec(e))
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
"@" === a[2] ? i = "mailto:" + (n = s(this.mangle(a[1]))) : i = n = s(a[1]),
|
|
|
|
|
l += this.renderer.link(i, null, n);
|
|
|
|
|
else if (this.inLink || !(a = this.rules.url.exec(e))) {
|
|
|
|
|
if (a = this.rules.tag.exec(e))
|
|
|
|
|
!this.inLink && /^<a /i.test(a[0]) ? this.inLink = !0 : this.inLink && /^<\/a>/i.test(a[0]) && (this.inLink = !1),
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
l += this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(a[0]) : s(a[0]) : a[0];
|
|
|
|
|
else if (a = this.rules.link.exec(e))
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
this.inLink = !0,
|
|
|
|
|
i = a[2],
|
|
|
|
|
this.options.pedantic ? (t = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i)) ? (i = t[1],
|
|
|
|
|
o = t[3]) : o = "" : o = a[3] ? a[3].slice(1, -1) : "",
|
|
|
|
|
i = i.trim().replace(/^<([\s\S]*)>$/, "$1"),
|
|
|
|
|
l += this.outputLink(a, {
|
|
|
|
|
href: r.escapes(i),
|
|
|
|
|
title: r.escapes(o)
|
|
|
|
|
}),
|
|
|
|
|
this.inLink = !1;
|
|
|
|
|
else if ((a = this.rules.reflink.exec(e)) || (a = this.rules.nolink.exec(e))) {
|
|
|
|
|
if (e = e.substring(a[0].length),
|
|
|
|
|
t = (a[2] || a[1]).replace(/\s+/g, " "),
|
|
|
|
|
!(t = this.links[t.toLowerCase()]) || !t.href) {
|
|
|
|
|
l += a[0].charAt(0),
|
|
|
|
|
e = a[0].substring(1) + e;
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
this.inLink = !0,
|
|
|
|
|
l += this.outputLink(a, t),
|
|
|
|
|
this.inLink = !1
|
|
|
|
|
} else if (a = this.rules.strong.exec(e))
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
l += this.renderer.strong(this.output(a[4] || a[3] || a[2] || a[1]));
|
|
|
|
|
else if (a = this.rules.em.exec(e))
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
l += this.renderer.em(this.output(a[6] || a[5] || a[4] || a[3] || a[2] || a[1]));
|
|
|
|
|
else if (a = this.rules.code.exec(e))
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
l += this.renderer.codespan(s(a[2].trim(), !0));
|
|
|
|
|
else if (a = this.rules.br.exec(e))
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
l += this.renderer.br();
|
|
|
|
|
else if (a = this.rules.del.exec(e))
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
l += this.renderer.del(this.output(a[1]));
|
|
|
|
|
else if (a = this.rules.text.exec(e))
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
l += this.renderer.text(s(this.smartypants(a[0])));
|
|
|
|
|
else if (e)
|
|
|
|
|
throw new Error("Infinite loop on byte: " + e.charCodeAt(0))
|
|
|
|
|
} else
|
|
|
|
|
a[0] = this.rules._backpedal.exec(a[0])[0],
|
|
|
|
|
e = e.substring(a[0].length),
|
|
|
|
|
"@" === a[2] ? i = "mailto:" + (n = s(a[0])) : (n = s(a[0]),
|
|
|
|
|
i = "www." === a[1] ? "http://" + n : n),
|
|
|
|
|
l += this.renderer.link(i, null, n);
|
|
|
|
|
return l
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
r.escapes = function(e) {
|
|
|
|
|
return e ? e.replace(r.rules._escapes, "$1") : e
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
r.prototype.outputLink = function(e, t) {
|
|
|
|
|
var n = t.href
|
|
|
|
|
, r = t.title ? s(t.title) : null;
|
|
|
|
|
return "!" !== e[0].charAt(0) ? this.renderer.link(n, r, this.output(e[1])) : this.renderer.image(n, r, s(e[1]))
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
r.prototype.smartypants = function(e) {
|
|
|
|
|
return this.options.smartypants ? e.replace(/---/g, "—").replace(/--/g, "–").replace(/(^|[-\u2014\/(\[{"\s])'/g, "$1‘").replace(/'/g, "’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g, "$1“").replace(/"/g, "”").replace(/\.{3}/g, "…") : e
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
r.prototype.mangle = function(e) {
|
|
|
|
|
if (!this.options.mangle)
|
|
|
|
|
return e;
|
|
|
|
|
for (var t, n = "", r = e.length, i = 0; i < r; i++)
|
|
|
|
|
t = e.charCodeAt(i),
|
|
|
|
|
Math.random() > .5 && (t = "x" + t.toString(16)),
|
|
|
|
|
n += "&#" + t + ";";
|
|
|
|
|
return n
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.code = function(e, t, n) {
|
|
|
|
|
if (this.options.highlight) {
|
|
|
|
|
var r = this.options.highlight(e, t);
|
|
|
|
|
null != r && r !== e && (n = !0,
|
|
|
|
|
e = r)
|
|
|
|
|
}
|
|
|
|
|
return t ? '<pre><code class="' + this.options.langPrefix + s(t, !0) + '">' + (n ? e : s(e, !0)) + "</code></pre>\n" : "<pre><code>" + (n ? e : s(e, !0)) + "</code></pre>"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.blockquote = function(e) {
|
|
|
|
|
return "<blockquote>\n" + e + "</blockquote>\n"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.html = function(e) {
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.heading = function(e, t, n) {
|
|
|
|
|
return this.options.headerIds ? "<h" + t + ' id="' + this.options.headerPrefix + n.toLowerCase().replace(/[^\w]+/g, "-") + '">' + e + "</h" + t + ">\n" : "<h" + t + ">" + e + "</h" + t + ">\n"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.hr = function() {
|
|
|
|
|
return this.options.xhtml ? "<hr/>\n" : "<hr>\n"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.list = function(e, t, n) {
|
|
|
|
|
var r = t ? "ol" : "ul";
|
|
|
|
|
return "<" + r + (t && 1 !== n ? ' start="' + n + '"' : "") + ">\n" + e + "</" + r + ">\n"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.listitem = function(e) {
|
|
|
|
|
return "<li>" + e + "</li>\n"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.checkbox = function(e) {
|
|
|
|
|
return "<input " + (e ? 'checked="" ' : "") + 'disabled="" type="checkbox"' + (this.options.xhtml ? " /" : "") + "> "
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.paragraph = function(e) {
|
|
|
|
|
return "<p>" + e + "</p>\n"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.table = function(e, t) {
|
|
|
|
|
return t && (t = "<tbody>" + t + "</tbody>"),
|
|
|
|
|
"<table>\n<thead>\n" + e + "</thead>\n" + t + "</table>\n"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.tablerow = function(e) {
|
|
|
|
|
return "<tr>\n" + e + "</tr>\n"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.tablecell = function(e, t) {
|
|
|
|
|
var n = t.header ? "th" : "td";
|
|
|
|
|
return (t.align ? "<" + n + ' align="' + t.align + '">' : "<" + n + ">") + e + "</" + n + ">\n"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.strong = function(e) {
|
|
|
|
|
return "<strong>" + e + "</strong>"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.em = function(e) {
|
|
|
|
|
return "<em>" + e + "</em>"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.codespan = function(e) {
|
|
|
|
|
return "<code>" + e + "</code>"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.br = function() {
|
|
|
|
|
return this.options.xhtml ? "<br/>" : "<br>"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.del = function(e) {
|
|
|
|
|
return "<del>" + e + "</del>"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.link = function(e, t, n) {
|
|
|
|
|
if (this.options.sanitize) {
|
|
|
|
|
try {
|
|
|
|
|
var r = decodeURIComponent(l(e)).replace(/[^\w:]/g, "").toLowerCase()
|
|
|
|
|
} catch (e) {
|
|
|
|
|
return n
|
|
|
|
|
}
|
|
|
|
|
if (0 === r.indexOf("javascript:") || 0 === r.indexOf("vbscript:") || 0 === r.indexOf("data:"))
|
|
|
|
|
return n
|
|
|
|
|
}
|
|
|
|
|
this.options.baseUrl && !b.test(e) && (e = d(this.options.baseUrl, e));
|
|
|
|
|
try {
|
|
|
|
|
e = encodeURI(e).replace(/%25/g, "%")
|
|
|
|
|
} catch (e) {
|
|
|
|
|
return n
|
|
|
|
|
}
|
|
|
|
|
var i = '<a href="' + s(e) + '"';
|
|
|
|
|
return t && (i += ' title="' + t + '"'),
|
|
|
|
|
i + ">" + n + "</a>"
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.image = function(e, t, n) {
|
|
|
|
|
this.options.baseUrl && !b.test(e) && (e = d(this.options.baseUrl, e));
|
|
|
|
|
var r = '<img src="' + e + '" alt="' + n + '"';
|
|
|
|
|
return t && (r += ' title="' + t + '"'),
|
|
|
|
|
r + (this.options.xhtml ? "/>" : ">")
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
i.prototype.text = function(e) {
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
o.prototype.strong = o.prototype.em = o.prototype.codespan = o.prototype.del = o.prototype.text = function(e) {
|
|
|
|
|
return e
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
o.prototype.link = o.prototype.image = function(e, t, n) {
|
|
|
|
|
return "" + n
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
o.prototype.br = function() {
|
|
|
|
|
return ""
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
a.parse = function(e, t) {
|
|
|
|
|
return new a(t).parse(e)
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
a.prototype.parse = function(e) {
|
|
|
|
|
this.inline = new r(e.links,this.options),
|
|
|
|
|
this.inlineText = new r(e.links,p({}, this.options, {
|
|
|
|
|
renderer: new o
|
|
|
|
|
})),
|
|
|
|
|
this.tokens = e.reverse();
|
|
|
|
|
for (var t = ""; this.next(); )
|
|
|
|
|
t += this.tok();
|
|
|
|
|
return t
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
a.prototype.next = function() {
|
|
|
|
|
return this.token = this.tokens.pop()
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
a.prototype.peek = function() {
|
|
|
|
|
return this.tokens[this.tokens.length - 1] || 0
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
a.prototype.parseText = function() {
|
|
|
|
|
for (var e = this.token.text; "text" === this.peek().type; )
|
|
|
|
|
e += "\n" + this.next().text;
|
|
|
|
|
return this.inline.output(e)
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
a.prototype.tok = function() {
|
|
|
|
|
switch (this.token.type) {
|
|
|
|
|
case "space":
|
|
|
|
|
return "";
|
|
|
|
|
case "hr":
|
|
|
|
|
return this.renderer.hr();
|
|
|
|
|
case "heading":
|
|
|
|
|
return this.renderer.heading(this.inline.output(this.token.text), this.token.depth, l(this.inlineText.output(this.token.text)));
|
|
|
|
|
case "code":
|
|
|
|
|
return this.renderer.code(this.token.text, this.token.lang, this.token.escaped);
|
|
|
|
|
case "table":
|
|
|
|
|
var e, t, n, r, i = "", o = "";
|
|
|
|
|
for (n = "",
|
|
|
|
|
e = 0; e < this.token.header.length; e++)
|
|
|
|
|
n += this.renderer.tablecell(this.inline.output(this.token.header[e]), {
|
|
|
|
|
header: !0,
|
|
|
|
|
align: this.token.align[e]
|
|
|
|
|
});
|
|
|
|
|
for (i += this.renderer.tablerow(n),
|
|
|
|
|
e = 0; e < this.token.cells.length; e++) {
|
|
|
|
|
for (t = this.token.cells[e],
|
|
|
|
|
n = "",
|
|
|
|
|
r = 0; r < t.length; r++)
|
|
|
|
|
n += this.renderer.tablecell(this.inline.output(t[r]), {
|
|
|
|
|
header: !1,
|
|
|
|
|
align: this.token.align[r]
|
|
|
|
|
});
|
|
|
|
|
o += this.renderer.tablerow(n)
|
|
|
|
|
}
|
|
|
|
|
return this.renderer.table(i, o);
|
|
|
|
|
case "blockquote_start":
|
|
|
|
|
for (o = ""; "blockquote_end" !== this.next().type; )
|
|
|
|
|
o += this.tok();
|
|
|
|
|
return this.renderer.blockquote(o);
|
|
|
|
|
case "list_start":
|
|
|
|
|
o = "";
|
|
|
|
|
for (var a = this.token.ordered, s = this.token.start; "list_end" !== this.next().type; )
|
|
|
|
|
o += this.tok();
|
|
|
|
|
return this.renderer.list(o, a, s);
|
|
|
|
|
case "list_item_start":
|
|
|
|
|
for (o = "",
|
|
|
|
|
this.token.task && (o += this.renderer.checkbox(this.token.checked)); "list_item_end" !== this.next().type; )
|
|
|
|
|
o += "text" === this.token.type ? this.parseText() : this.tok();
|
|
|
|
|
return this.renderer.listitem(o);
|
|
|
|
|
case "loose_item_start":
|
|
|
|
|
for (o = ""; "list_item_end" !== this.next().type; )
|
|
|
|
|
o += this.tok();
|
|
|
|
|
return this.renderer.listitem(o);
|
|
|
|
|
case "html":
|
|
|
|
|
return this.renderer.html(this.token.text);
|
|
|
|
|
case "paragraph":
|
|
|
|
|
return this.renderer.paragraph(this.inline.output(this.token.text));
|
|
|
|
|
case "text":
|
|
|
|
|
return this.renderer.paragraph(this.parseText())
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
var m = {}
|
|
|
|
|
, b = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
|
|
|
|
|
u.exec = u,
|
|
|
|
|
h.options = h.setOptions = function(e) {
|
|
|
|
|
return p(h.defaults, e),
|
|
|
|
|
h
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
h.getDefaults = function() {
|
|
|
|
|
return {
|
|
|
|
|
baseUrl: null,
|
|
|
|
|
breaks: !1,
|
|
|
|
|
gfm: !0,
|
|
|
|
|
headerIds: !0,
|
|
|
|
|
headerPrefix: "",
|
|
|
|
|
highlight: null,
|
|
|
|
|
langPrefix: "language-",
|
|
|
|
|
mangle: !0,
|
|
|
|
|
pedantic: !1,
|
|
|
|
|
renderer: new i,
|
|
|
|
|
sanitize: !1,
|
|
|
|
|
sanitizer: null,
|
|
|
|
|
silent: !1,
|
|
|
|
|
smartLists: !1,
|
|
|
|
|
smartypants: !1,
|
|
|
|
|
tables: !0,
|
|
|
|
|
xhtml: !1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
h.defaults = h.getDefaults(),
|
|
|
|
|
h.Parser = a,
|
|
|
|
|
h.parser = a.parse,
|
|
|
|
|
h.Renderer = i,
|
|
|
|
|
h.TextRenderer = o,
|
|
|
|
|
h.Lexer = n,
|
|
|
|
|
h.lexer = n.lex,
|
|
|
|
|
h.InlineLexer = r,
|
|
|
|
|
h.inlineLexer = r.output,
|
|
|
|
|
h.parse = h,
|
|
|
|
|
e.exports = h
|
|
|
|
|
}(this || "undefined" != typeof window && window)
|
|
|
|
|
}
|
|
|
|
|
).call(t, n(10))
|
|
|
|
|
}
|
|
|
|
|
, function(e, t) {
|
|
|
|
|
e.exports = {
|
|
|
|
|
name: "valine",
|
|
|
|
|
version: "Volantis Edition (based on 1.3.10)",
|
|
|
|
|
description: "A simple comment system based on Leancloud.",
|
|
|
|
|
main: "/dist/Valine.min.js",
|
|
|
|
|
author: "xCss <xioveliu@gmail.com> (https://github.com/xCss)",
|
|
|
|
|
scripts: {
|
|
|
|
|
test: "webpack",
|
|
|
|
|
build: "webpack",
|
|
|
|
|
dev: "webpack-dev-server --env.dev",
|
|
|
|
|
clean: "rm -rf dist/* "
|
|
|
|
|
},
|
|
|
|
|
keywords: ["simple", "easy-to-use", "fast-and-safe", "comment-system"],
|
|
|
|
|
license: "GPL-2.0",
|
|
|
|
|
repository: {
|
|
|
|
|
type: "git",
|
|
|
|
|
url: "git+https://github.com/xcss/Valine.git"
|
|
|
|
|
},
|
|
|
|
|
homepage: "https://github.com/xcss/Valine#readme",
|
|
|
|
|
devDependencies: {
|
|
|
|
|
autoprefixer: "^7.1.1",
|
|
|
|
|
autosize: "^4.0.2",
|
|
|
|
|
"babel-core": "^6.25.0",
|
|
|
|
|
"babel-loader": "^7.1.1",
|
|
|
|
|
"babel-polyfill": "^6.23.0",
|
|
|
|
|
"babel-preset-es2015": "^6.24.1",
|
|
|
|
|
"babel-preset-stage-0": "^6.24.1",
|
|
|
|
|
"blueimp-md5": "^2.8.0",
|
|
|
|
|
"css-loader": "^0.28.4",
|
|
|
|
|
"exports-loader": "^0.6.3",
|
|
|
|
|
"file-loader": "^0.11.2",
|
|
|
|
|
hanabi: "^0.4.0",
|
|
|
|
|
marked: "^0.4.0",
|
|
|
|
|
"node-sass": "^4.9.2",
|
|
|
|
|
"postcss-loader": "^2.0.5",
|
|
|
|
|
"sass-loader": "^6.0.3",
|
|
|
|
|
"style-loader": "^0.18.2",
|
|
|
|
|
"url-loader": "^0.6.2",
|
|
|
|
|
webpack: "^2.6.1",
|
|
|
|
|
"webpack-cli": "^3.3.5",
|
|
|
|
|
"webpack-dev-server": "^2.9.1"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
, function(e, t) {
|
|
|
|
|
var n;
|
|
|
|
|
n = function() {
|
|
|
|
|
return this
|
|
|
|
|
}();
|
|
|
|
|
try {
|
|
|
|
|
n = n || Function("return this")() || (0,
|
|
|
|
|
eval)("this")
|
|
|
|
|
} catch (e) {
|
|
|
|
|
"object" == typeof window && (n = window)
|
|
|
|
|
}
|
|
|
|
|
e.exports = n
|
|
|
|
|
}
|
|
|
|
|
, function(e, t) {
|
|
|
|
|
function aru(index){
|
|
|
|
|
return "<img id='emoji' src='https://cdn.jsdelivr.net/gh/xaoxuu/cdn-assets/emoji/aru/" + index + ".png'>";
|
|
|
|
|
}
|
|
|
|
|
function tieba(str){
|
|
|
|
|
return "<img id='emoji' src='https://cdn.jsdelivr.net/gh/xaoxuu/cdn-assets/emoji/tieba/" + str + ".png'>";
|
|
|
|
|
}
|
|
|
|
|
function qq(str) {
|
|
|
|
|
return "<img id='emoji' src='https://cdn.jsdelivr.net/gh/xaoxuu/cdn-assets/emoji/qq/" + str + ".gif'>";
|
|
|
|
|
}
|
|
|
|
|
e.exports = {
|
|
|
|
|
aru151: aru(151),
|
|
|
|
|
贴吧what: tieba('what'),
|
|
|
|
|
贴吧乖: tieba('乖'),
|
|
|
|
|
贴吧喷: tieba('喷'),
|
|
|
|
|
贴吧太开心: tieba('太开心'),
|
|
|
|
|
贴吧委屈: tieba('委屈'),
|
|
|
|
|
贴吧小乖: tieba('小乖'),
|
|
|
|
|
贴吧捂嘴笑: tieba('捂嘴笑'),
|
|
|
|
|
贴吧泪: tieba('泪'),
|
|
|
|
|
贴吧滑稽: tieba('滑稽'),
|
|
|
|
|
贴吧爱心: tieba('爱心'),
|
|
|
|
|
贴吧玫瑰: tieba('玫瑰'),
|
|
|
|
|
贴吧真棒: tieba('真棒'),
|
|
|
|
|
贴吧疑问: tieba('疑问'),
|
|
|
|
|
qqOK: qq('OK'),
|
|
|
|
|
qq亲亲: qq('亲亲'),
|
|
|
|
|
qq便便: qq('便便'),
|
|
|
|
|
qq偷笑: qq('偷笑'),
|
|
|
|
|
qq冷汗: qq('冷汗'),
|
|
|
|
|
qq发呆: qq('发呆'),
|
|
|
|
|
qq发怒: qq('发怒'),
|
|
|
|
|
qq可怜: qq('可怜'),
|
|
|
|
|
qq可爱: qq('可爱'),
|
|
|
|
|
qq左哼哼: qq('左哼哼'),
|
|
|
|
|
qq右哼哼: qq('右哼哼'),
|
|
|
|
|
qq吓: qq('吓'),
|
|
|
|
|
qq呲牙: qq('呲牙'),
|
|
|
|
|
qq嗅大了: qq('嗅大了'),
|
|
|
|
|
qq坏笑: qq('坏笑'),
|
|
|
|
|
qq奋斗: qq('奋斗'),
|
|
|
|
|
qq委屈: qq('委屈'),
|
|
|
|
|
qq害羞: qq('害羞'),
|
|
|
|
|
qq尴尬: qq('尴尬'),
|
|
|
|
|
qq强: qq('强'),
|
|
|
|
|
qq得意: qq('得意'),
|
|
|
|
|
qq快哭了: qq('快哭了'),
|
|
|
|
|
qq惊恐: qq('惊恐'),
|
|
|
|
|
qq憨笑: qq('憨笑'),
|
|
|
|
|
qq抓狂: qq('抓狂'),
|
|
|
|
|
qq抱拳: qq('抱拳'),
|
|
|
|
|
qq握手: qq('握手'),
|
|
|
|
|
qq晕: qq('晕'),
|
|
|
|
|
qq疑问: qq('疑问'),
|
|
|
|
|
qq阴险: qq('阴险'),
|
|
|
|
|
qq鼓掌: qq('鼓掌'),
|
|
|
|
|
grinning: "😀",
|
|
|
|
|
smiley: "😃",
|
|
|
|
|
smile: "😄",
|
|
|
|
|
grin: "😁",
|
|
|
|
|
laughing: "😆",
|
|
|
|
|
sweat_smile: "😅",
|
|
|
|
|
joy: "😂",
|
|
|
|
|
blush: "😊",
|
|
|
|
|
innocent: "😇",
|
|
|
|
|
wink: "😉",
|
|
|
|
|
relieved: "😌",
|
|
|
|
|
heart_eyes: "😍",
|
|
|
|
|
kissing_heart: "😘",
|
|
|
|
|
kissing: "😗",
|
|
|
|
|
kissing_smiling_eyes: "😙",
|
|
|
|
|
kissing_closed_eyes: "😚",
|
|
|
|
|
yum: "😋",
|
|
|
|
|
stuck_out_tongue_winking_eye: "😜",
|
|
|
|
|
stuck_out_tongue_closed_eyes: "😝",
|
|
|
|
|
stuck_out_tongue: "😛",
|
|
|
|
|
sunglasses: "😎",
|
|
|
|
|
smirk: "😏",
|
|
|
|
|
unamused: "😒",
|
|
|
|
|
disappointed: "😞",
|
|
|
|
|
pensive: "😔",
|
|
|
|
|
worried: "😟",
|
|
|
|
|
confused: "😕",
|
|
|
|
|
persevere: "😣",
|
|
|
|
|
confounded: "😖",
|
|
|
|
|
tired_face: "😫",
|
|
|
|
|
weary: "😩",
|
|
|
|
|
angry: "😠",
|
|
|
|
|
rage: "😡",
|
|
|
|
|
no_mouth: "😶",
|
|
|
|
|
neutral_face: "😐",
|
|
|
|
|
expressionless: "😑",
|
|
|
|
|
hushed: "😯",
|
|
|
|
|
frowning: "😦",
|
|
|
|
|
anguished: "😧",
|
|
|
|
|
open_mouth: "😮",
|
|
|
|
|
astonished: "😲",
|
|
|
|
|
dizzy_face: "😵",
|
|
|
|
|
flushed: "😳",
|
|
|
|
|
scream: "😱",
|
|
|
|
|
fearful: "😨",
|
|
|
|
|
cold_sweat: "😰",
|
|
|
|
|
cry: "😢",
|
|
|
|
|
disappointed_relieved: "😥",
|
|
|
|
|
sob: "😭",
|
|
|
|
|
sweat: "😓",
|
|
|
|
|
sleepy: "😪",
|
|
|
|
|
sleeping: "😴",
|
|
|
|
|
mask: "😷",
|
|
|
|
|
smiling_imp: "😈",
|
|
|
|
|
smiley_cat: "😺",
|
|
|
|
|
smile_cat: "😸",
|
|
|
|
|
joy_cat: "😹",
|
|
|
|
|
heart_eyes_cat: "😻",
|
|
|
|
|
smirk_cat: "😼",
|
|
|
|
|
kissing_cat: "😽",
|
|
|
|
|
scream_cat: "🙀",
|
|
|
|
|
crying_cat_face: "😿",
|
|
|
|
|
pouting_cat: "😾",
|
|
|
|
|
cat: "🐱",
|
|
|
|
|
mouse: "🐭",
|
|
|
|
|
cow: "🐮",
|
|
|
|
|
monkey_face: "🐵",
|
|
|
|
|
hand: "✋",
|
|
|
|
|
fist: "✊",
|
|
|
|
|
v: "✌️",
|
|
|
|
|
point_up: "👆",
|
|
|
|
|
point_down: "👇",
|
|
|
|
|
point_left: "👈",
|
|
|
|
|
point_right: "👉",
|
|
|
|
|
facepunch: "👊",
|
|
|
|
|
wave: "👋",
|
|
|
|
|
clap: "👏",
|
|
|
|
|
open_hands: "👐",
|
|
|
|
|
"+1": "👍",
|
|
|
|
|
"-1": "👎",
|
|
|
|
|
ok_hand: "👌",
|
|
|
|
|
pray: "🙏",
|
|
|
|
|
ear: "👂",
|
|
|
|
|
eyes: "👀",
|
|
|
|
|
nose: "👃",
|
|
|
|
|
lips: "👄",
|
|
|
|
|
tongue: "👅",
|
|
|
|
|
heart: "❤️",
|
|
|
|
|
cupid: "💘",
|
|
|
|
|
sparkling_heart: "💖",
|
|
|
|
|
star: "⭐️",
|
|
|
|
|
sparkles: "✨",
|
|
|
|
|
zap: "⚡️",
|
|
|
|
|
sunny: "☀️",
|
|
|
|
|
cloud: "☁️",
|
|
|
|
|
snowflake: "❄️",
|
|
|
|
|
umbrella: "☔️",
|
|
|
|
|
coffee: "☕️",
|
|
|
|
|
airplane: "✈️",
|
|
|
|
|
anchor: "⚓️",
|
|
|
|
|
watch: "⌚️",
|
|
|
|
|
phone: "☎️",
|
|
|
|
|
hourglass: "⌛️",
|
|
|
|
|
email: "✉️",
|
|
|
|
|
scissors: "✂️",
|
|
|
|
|
black_nib: "✒️",
|
|
|
|
|
pencil2: "✏️",
|
|
|
|
|
x: "❌",
|
|
|
|
|
recycle: "♻️",
|
|
|
|
|
white_check_mark: "✅",
|
|
|
|
|
negative_squared_cross_mark: "❎",
|
|
|
|
|
m: "Ⓜ️",
|
|
|
|
|
i: "ℹ️",
|
|
|
|
|
tm: "™️",
|
|
|
|
|
copyright: "©️",
|
|
|
|
|
registered: "®️"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
var r = n(13);
|
|
|
|
|
"string" == typeof r && (r = [[e.i, r, ""]]);
|
|
|
|
|
var i = {
|
|
|
|
|
transform: void 0
|
|
|
|
|
};
|
|
|
|
|
n(15)(r, i),
|
|
|
|
|
r.locals && (e.exports = r.locals)
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
(e.exports = n(14)(!1)).push([e.i, '.v{font-size:16px;text-align:left}.v *{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:2;color:#555;-webkit-transition:all .3s ease;transition:all .3s ease}.v hr{margin:.825em 0;border-color:#f6f6f6;border-style:dashed}.v.hide-avatar .vimg{display:none}.v a{position:relative;cursor:pointer;color:#1abc9c;display:inline-block}.v a:before{content:"";position:absolute;width:0;right:0;bottom:0;height:1px;background:#1abc9c;-webkit-transition:width .3s ease;transition:width .3s ease}.v a:hover{color:#d7191a}.v a:hover:before{width:100%;left:0;right:auto}.v code,.v pre{background-color:#f6f6f6;color:#555;padding:.2em .4em;border-radius:3px;font-size:85%;margin:0;font-family:Source Code Pro,courier new,Input Mono,PT Mono,SFMono-Regular,Consolas,Monaco,Menlo,PingFang SC,Liberation Mono,Microsoft YaHei,Courier,monospace}.v pre{padding:10px;overflow:auto;line-height:1.45}.v pre code{padding:0;background:transparent;white-space:pre-wrap;word-break:keep-all}.v blockquote{color:#666;margin:.5em 0;padding:0 0 0 1em;border-left:8px solid hsla(0,0%,93%,.5)}.v .vinput{border:none;resize:none;outline:none;padding:10px 5px;max-width:100%;font-size:.775em}.v input[type=checkbox],.v input[type=radio]{display:inline-block;vertical-align:middle;margin-top:-2px}.v .vwrap{border:1px solid #f0f0f0;border-radius:4px;margin-bottom:10px;overflow:hidden;position:relative;padding:10px}.v .vwrap input{background:transparent}.v .vwrap .vedit{position:relative;padding-top:10px}.v .vwrap .vedit .vctrl{text-align:right;font-size:12px}.v .vwrap .vedit .vctrl span{padding:10px;display:inline-block;vertical-align:middle;cursor:pointer}.v .vwrap .vedit .vemojis{display:none;font-size:18px;text-align:justify;max-height:145px;overflow:auto;margin-bottom:10px;-webkit-box-shadow:0 0 1px #f0f0f0;box-shadow:0 0 1px #f0f0f0}.v .vwrap .vedit .vemojis i{font-style:normal;padding:7px 0;width:38px;cursor:pointer;text-align:center;display:inline-block;vertical-align:middle}.v .vwrap .vedit .vpreview{padding:7px;-webkit-box-shadow:0 0 1px #f0f0f0;box-shadow:0 0 1px #f0f0f0}.v .vwrap .vedit .vpreview frame,.v .vwrap .vedit .vpreview iframe,.v .vwrap .vedit .vpreview img{max-width:100%;border:none}.v .vwrap .vheader .vinput{width:33.33%;border-bottom:1px dashed #dedede}.v .vwrap .vheader.item2 .vinput{width:50%}.v .vwrap .vheader.item1 .vinput{width:100%}.v .vwrap .vheader .vinput:focus{border-bottom-color:#eb5055}@media screen and (max-width:520px){.v .vwrap .vheader.item2 .vinput,.v .vwrap .vheader .vinput{width:100%}}.v .vwrap .vcontrol{font-size:0;padding-top:15px}.v .vwrap .vcontrol .col{display:inline-block;font-size:16px;vertical-align:middle;color:#ccc}.v .vwrap .vcontrol .col.text-right{text-align:right}.v .vwrap .vcontrol .col svg{margin-right:2px;overflow:hidden;fill:currentColor;vertical-align:middle}.v .vwrap .vcontrol .col.col-20{width:20%}.v .vwrap .vcontrol .col.col-40{width:40%}.v .vwrap .vcontrol .col.col-60{width:60%}.v .vwrap .vcontrol .col.col-80{width:80%}.v .vwrap .vcontrol .col.split{width:50%}.v .vwrap .vmark{position:absolute;background:rgba(0,0,0,.65);width:100%;height:100%;left:0;top:0}.v .vwrap .vmark .valert{padding-top:3em}.v .vwrap .vmark .valert .vtext{color:#fff;padding:1em 0}.v .vwrap .vmark .valert .vcode{width:4.6875em;border-radius:.3125em;padding:.5em;background:#dedede}.v .vwrap .vmark .valert .vcode:focus{border-color:#3090e4;background-color:#fff}@media screen and (max-width:720px){.v .vwrap .vmark .valert{padding-top:5.5em}.v .vwrap .vmark .valert .vtext{color:#fff;padding:1em 0}}.v .power{color:#999;padding:.5em 0}.v .power,.v .power a{font-size:.75em}.v .vinfo{font-size:0;padding:5px}.v .vinfo .col{font-size:16px;display:inline-block;width:50%;vertical-align:middle}.v .vinfo .vcount .vnum{font-weight:600;font-size:1.25em}.v a{text-decoration:none;color:#555}.v a:hover{color:#222}.v ol,.v ul{padding:0;margin-left:1.25em}.v .txt-center{text-align:center}.v .txt-right{text-align:right}.v .pd5{padding:5px}.v .pd10{padding:10px}.v .veditor{width:100%;min-height:8.75em;font-s
|
|
|
|
|
}
|
|
|
|
|
, function(e, t) {
|
|
|
|
|
function n(e, t) {
|
|
|
|
|
var n = e[1] || ""
|
|
|
|
|
, r = e[3];
|
|
|
|
|
if (!r)
|
|
|
|
|
return n;
|
|
|
|
|
if (t && "function" == typeof btoa) {
|
|
|
|
|
var i = function(e) {
|
|
|
|
|
return "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(e)))) + " */"
|
|
|
|
|
}(r);
|
|
|
|
|
return [n].concat(r.sources.map(function(e) {
|
|
|
|
|
return "/*# sourceURL=" + r.sourceRoot + e + " */"
|
|
|
|
|
})).concat([i]).join("\n")
|
|
|
|
|
}
|
|
|
|
|
return [n].join("\n")
|
|
|
|
|
}
|
|
|
|
|
e.exports = function(e) {
|
|
|
|
|
var t = [];
|
|
|
|
|
return t.toString = function() {
|
|
|
|
|
return this.map(function(t) {
|
|
|
|
|
var r = n(t, e);
|
|
|
|
|
return t[2] ? "@media " + t[2] + "{" + r + "}" : r
|
|
|
|
|
}).join("")
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
t.i = function(e, n) {
|
|
|
|
|
"string" == typeof e && (e = [[null, e, ""]]);
|
|
|
|
|
for (var r = {}, i = 0; i < this.length; i++) {
|
|
|
|
|
var o = this[i][0];
|
|
|
|
|
"number" == typeof o && (r[o] = !0)
|
|
|
|
|
}
|
|
|
|
|
for (i = 0; i < e.length; i++) {
|
|
|
|
|
var a = e[i];
|
|
|
|
|
"number" == typeof a[0] && r[a[0]] || (n && !a[2] ? a[2] = n : n && (a[2] = "(" + a[2] + ") and (" + n + ")"),
|
|
|
|
|
t.push(a))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
,
|
|
|
|
|
t
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
function r(e, t) {
|
|
|
|
|
for (var n = 0; n < e.length; n++) {
|
|
|
|
|
var r = e[n]
|
|
|
|
|
, i = p[r.id];
|
|
|
|
|
if (i) {
|
|
|
|
|
i.refs++;
|
|
|
|
|
for (var o = 0; o < i.parts.length; o++)
|
|
|
|
|
i.parts[o](r.parts[o]);
|
|
|
|
|
for (; o < r.parts.length; o++)
|
|
|
|
|
i.parts.push(d(r.parts[o], t))
|
|
|
|
|
} else {
|
|
|
|
|
var a = [];
|
|
|
|
|
for (o = 0; o < r.parts.length; o++)
|
|
|
|
|
a.push(d(r.parts[o], t));
|
|
|
|
|
p[r.id] = {
|
|
|
|
|
id: r.id,
|
|
|
|
|
refs: 1,
|
|
|
|
|
parts: a
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function i(e, t) {
|
|
|
|
|
for (var n = [], r = {}, i = 0; i < e.length; i++) {
|
|
|
|
|
var o = e[i]
|
|
|
|
|
, a = t.base ? o[0] + t.base : o[0]
|
|
|
|
|
, s = {
|
|
|
|
|
css: o[1],
|
|
|
|
|
media: o[2],
|
|
|
|
|
sourceMap: o[3]
|
|
|
|
|
};
|
|
|
|
|
r[a] ? r[a].parts.push(s) : n.push(r[a] = {
|
|
|
|
|
id: a,
|
|
|
|
|
parts: [s]
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
return n
|
|
|
|
|
}
|
|
|
|
|
function o(e, t) {
|
|
|
|
|
var n = h(e.insertInto);
|
|
|
|
|
if (!n)
|
|
|
|
|
throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
|
|
|
|
|
var r = m[m.length - 1];
|
|
|
|
|
if ("top" === e.insertAt)
|
|
|
|
|
r ? r.nextSibling ? n.insertBefore(t, r.nextSibling) : n.appendChild(t) : n.insertBefore(t, n.firstChild),
|
|
|
|
|
m.push(t);
|
|
|
|
|
else {
|
|
|
|
|
if ("bottom" !== e.insertAt)
|
|
|
|
|
throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
|
|
|
|
|
n.appendChild(t)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function a(e) {
|
|
|
|
|
if (null === e.parentNode)
|
|
|
|
|
return !1;
|
|
|
|
|
e.parentNode.removeChild(e);
|
|
|
|
|
var t = m.indexOf(e);
|
|
|
|
|
t >= 0 && m.splice(t, 1)
|
|
|
|
|
}
|
|
|
|
|
function s(e) {
|
|
|
|
|
var t = document.createElement("style");
|
|
|
|
|
return e.attrs.type = "text/css",
|
|
|
|
|
c(t, e.attrs),
|
|
|
|
|
o(e, t),
|
|
|
|
|
t
|
|
|
|
|
}
|
|
|
|
|
function l(e) {
|
|
|
|
|
var t = document.createElement("link");
|
|
|
|
|
return e.attrs.type = "text/css",
|
|
|
|
|
e.attrs.rel = "stylesheet",
|
|
|
|
|
c(t, e.attrs),
|
|
|
|
|
o(e, t),
|
|
|
|
|
t
|
|
|
|
|
}
|
|
|
|
|
function c(e, t) {
|
|
|
|
|
Object.keys(t).forEach(function(n) {
|
|
|
|
|
e.setAttribute(n, t[n])
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
function d(e, t) {
|
|
|
|
|
var n, r, i, o;
|
|
|
|
|
if (t.transform && e.css) {
|
|
|
|
|
if (!(o = t.transform(e.css)))
|
|
|
|
|
return function() {}
|
|
|
|
|
;
|
|
|
|
|
e.css = o
|
|
|
|
|
}
|
|
|
|
|
if (t.singleton) {
|
|
|
|
|
var c = g++;
|
|
|
|
|
n = v || (v = s(t)),
|
|
|
|
|
r = u.bind(null, n, c, !1),
|
|
|
|
|
i = u.bind(null, n, c, !0)
|
|
|
|
|
} else
|
|
|
|
|
e.sourceMap && "function" == typeof URL && "function" == typeof URL.createObjectURL && "function" == typeof URL.revokeObjectURL && "function" == typeof Blob && "function" == typeof btoa ? (n = l(t),
|
|
|
|
|
r = function(e, t, n) {
|
|
|
|
|
var r = n.css
|
|
|
|
|
, i = n.sourceMap
|
|
|
|
|
, o = void 0 === t.convertToAbsoluteUrls && i;
|
|
|
|
|
(t.convertToAbsoluteUrls || o) && (r = b(r)),
|
|
|
|
|
i && (r += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(i)))) + " */");
|
|
|
|
|
var a = new Blob([r],{
|
|
|
|
|
type: "text/css"
|
|
|
|
|
})
|
|
|
|
|
, s = e.href;
|
|
|
|
|
e.href = URL.createObjectURL(a),
|
|
|
|
|
s && URL.revokeObjectURL(s)
|
|
|
|
|
}
|
|
|
|
|
.bind(null, n, t),
|
|
|
|
|
i = function() {
|
|
|
|
|
a(n),
|
|
|
|
|
n.href && URL.revokeObjectURL(n.href)
|
|
|
|
|
}
|
|
|
|
|
) : (n = s(t),
|
|
|
|
|
r = function(e, t) {
|
|
|
|
|
var n = t.css
|
|
|
|
|
, r = t.media;
|
|
|
|
|
if (r && e.setAttribute("media", r),
|
|
|
|
|
e.styleSheet)
|
|
|
|
|
e.styleSheet.cssText = n;
|
|
|
|
|
else {
|
|
|
|
|
for (; e.firstChild; )
|
|
|
|
|
e.removeChild(e.firstChild);
|
|
|
|
|
e.appendChild(document.createTextNode(n))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.bind(null, n),
|
|
|
|
|
i = function() {
|
|
|
|
|
a(n)
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
return r(e),
|
|
|
|
|
function(t) {
|
|
|
|
|
if (t) {
|
|
|
|
|
if (t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap)
|
|
|
|
|
return;
|
|
|
|
|
r(e = t)
|
|
|
|
|
} else
|
|
|
|
|
i()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function u(e, t, n, r) {
|
|
|
|
|
var i = n ? "" : r.css;
|
|
|
|
|
if (e.styleSheet)
|
|
|
|
|
e.styleSheet.cssText = x(t, i);
|
|
|
|
|
else {
|
|
|
|
|
var o = document.createTextNode(i)
|
|
|
|
|
, a = e.childNodes;
|
|
|
|
|
a[t] && e.removeChild(a[t]),
|
|
|
|
|
a.length ? e.insertBefore(o, a[t]) : e.appendChild(o)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var p = {}
|
|
|
|
|
, f = function(e) {
|
|
|
|
|
var t;
|
|
|
|
|
return function() {
|
|
|
|
|
return void 0 === t && (t = function() {
|
|
|
|
|
return window && document && document.all && !window.atob
|
|
|
|
|
}
|
|
|
|
|
.apply(this, arguments)),
|
|
|
|
|
t
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
, h = function(e) {
|
|
|
|
|
var t = {};
|
|
|
|
|
return function(e) {
|
|
|
|
|
return void 0 === t[e] && (t[e] = function(e) {
|
|
|
|
|
return document.querySelector(e)
|
|
|
|
|
}
|
|
|
|
|
.call(this, e)),
|
|
|
|
|
t[e]
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
, v = null
|
|
|
|
|
, g = 0
|
|
|
|
|
, m = []
|
|
|
|
|
, b = n(16);
|
|
|
|
|
e.exports = function(e, t) {
|
|
|
|
|
if ("undefined" != typeof DEBUG && DEBUG && "object" != typeof document)
|
|
|
|
|
throw new Error("The style-loader cannot be used in a non-browser environment");
|
|
|
|
|
(t = t || {}).attrs = "object" == typeof t.attrs ? t.attrs : {},
|
|
|
|
|
t.singleton || (t.singleton = f()),
|
|
|
|
|
t.insertInto || (t.insertInto = "head"),
|
|
|
|
|
t.insertAt || (t.insertAt = "bottom");
|
|
|
|
|
var n = i(e, t);
|
|
|
|
|
return r(n, t),
|
|
|
|
|
function(e) {
|
|
|
|
|
for (var o = [], a = 0; a < n.length; a++) {
|
|
|
|
|
var s = n[a];
|
|
|
|
|
(l = p[s.id]).refs--,
|
|
|
|
|
o.push(l)
|
|
|
|
|
}
|
|
|
|
|
e && r(i(e, t), t);
|
|
|
|
|
for (a = 0; a < o.length; a++) {
|
|
|
|
|
var l;
|
|
|
|
|
if (0 === (l = o[a]).refs) {
|
|
|
|
|
for (var c = 0; c < l.parts.length; c++)
|
|
|
|
|
l.parts[c]();
|
|
|
|
|
delete p[l.id]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
var x = function() {
|
|
|
|
|
var e = [];
|
|
|
|
|
return function(t, n) {
|
|
|
|
|
return e[t] = n,
|
|
|
|
|
e.filter(Boolean).join("\n")
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
}
|
|
|
|
|
, function(e, t) {
|
|
|
|
|
e.exports = function(e) {
|
|
|
|
|
var t = "undefined" != typeof window && window.location;
|
|
|
|
|
if (!t)
|
|
|
|
|
throw new Error("fixUrls requires window.location");
|
|
|
|
|
if (!e || "string" != typeof e)
|
|
|
|
|
return e;
|
|
|
|
|
var n = t.protocol + "//" + t.host
|
|
|
|
|
, r = n + t.pathname.replace(/\/[^\/]*$/, "/");
|
|
|
|
|
return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(e, t) {
|
|
|
|
|
var i, o = t.trim().replace(/^"(.*)"$/, function(e, t) {
|
|
|
|
|
return t
|
|
|
|
|
}).replace(/^'(.*)'$/, function(e, t) {
|
|
|
|
|
return t
|
|
|
|
|
});
|
|
|
|
|
return /^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(o) ? e : (i = 0 === o.indexOf("//") ? o : 0 === o.indexOf("/") ? n + o : r + o.replace(/^\.\//, ""),
|
|
|
|
|
"url(" + JSON.stringify(i) + ")")
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
, function(e, t, n) {
|
|
|
|
|
n(12),
|
|
|
|
|
e.exports = n(1)
|
|
|
|
|
}
|
|
|
|
|
])
|
|
|
|
|
});
|