94ef6392b0
As in https://github.com/PrivateBin/PrivateBin/pull/892 To get to know what is bad... USed DuckDuckGo's beautifier
2447 lines
106 KiB
JavaScript
2447 lines
106 KiB
JavaScript
/*! showdown v 2.0.0 - 15-02-2022 */ ! function() {
|
||
function a(e) {
|
||
"use strict";
|
||
var r = {
|
||
omitExtraWLInCodeBlocks: {
|
||
defaultValue: !1,
|
||
describe: "Omit the default extra whiteline added to code blocks",
|
||
type: "boolean"
|
||
},
|
||
noHeaderId: {
|
||
defaultValue: !1,
|
||
describe: "Turn on/off generated header id",
|
||
type: "boolean"
|
||
},
|
||
prefixHeaderId: {
|
||
defaultValue: !1,
|
||
describe: "Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",
|
||
type: "string"
|
||
},
|
||
rawPrefixHeaderId: {
|
||
defaultValue: !1,
|
||
describe: 'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',
|
||
type: "boolean"
|
||
},
|
||
ghCompatibleHeaderId: {
|
||
defaultValue: !1,
|
||
describe: "Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",
|
||
type: "boolean"
|
||
},
|
||
rawHeaderId: {
|
||
defaultValue: !1,
|
||
describe: "Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",
|
||
type: "boolean"
|
||
},
|
||
headerLevelStart: {
|
||
defaultValue: !1,
|
||
describe: "The header blocks level start",
|
||
type: "integer"
|
||
},
|
||
parseImgDimensions: {
|
||
defaultValue: !1,
|
||
describe: "Turn on/off image dimension parsing",
|
||
type: "boolean"
|
||
},
|
||
simplifiedAutoLink: {
|
||
defaultValue: !1,
|
||
describe: "Turn on/off GFM autolink style",
|
||
type: "boolean"
|
||
},
|
||
excludeTrailingPunctuationFromURLs: {
|
||
defaultValue: !1,
|
||
describe: "Excludes trailing punctuation from links generated with autoLinking",
|
||
type: "boolean"
|
||
},
|
||
literalMidWordUnderscores: {
|
||
defaultValue: !1,
|
||
describe: "Parse midword underscores as literal underscores",
|
||
type: "boolean"
|
||
},
|
||
literalMidWordAsterisks: {
|
||
defaultValue: !1,
|
||
describe: "Parse midword asterisks as literal asterisks",
|
||
type: "boolean"
|
||
},
|
||
strikethrough: {
|
||
defaultValue: !1,
|
||
describe: "Turn on/off strikethrough support",
|
||
type: "boolean"
|
||
},
|
||
tables: {
|
||
defaultValue: !1,
|
||
describe: "Turn on/off tables support",
|
||
type: "boolean"
|
||
},
|
||
tablesHeaderId: {
|
||
defaultValue: !1,
|
||
describe: "Add an id to table headers",
|
||
type: "boolean"
|
||
},
|
||
ghCodeBlocks: {
|
||
defaultValue: !0,
|
||
describe: "Turn on/off GFM fenced code blocks support",
|
||
type: "boolean"
|
||
},
|
||
tasklists: {
|
||
defaultValue: !1,
|
||
describe: "Turn on/off GFM tasklist support",
|
||
type: "boolean"
|
||
},
|
||
smoothLivePreview: {
|
||
defaultValue: !1,
|
||
describe: "Prevents weird effects in live previews due to incomplete input",
|
||
type: "boolean"
|
||
},
|
||
smartIndentationFix: {
|
||
defaultValue: !1,
|
||
description: "Tries to smartly fix indentation in es6 strings",
|
||
type: "boolean"
|
||
},
|
||
disableForced4SpacesIndentedSublists: {
|
||
defaultValue: !1,
|
||
description: "Disables the requirement of indenting nested sublists by 4 spaces",
|
||
type: "boolean"
|
||
},
|
||
simpleLineBreaks: {
|
||
defaultValue: !1,
|
||
description: "Parses simple line breaks as <br> (GFM Style)",
|
||
type: "boolean"
|
||
},
|
||
requireSpaceBeforeHeadingText: {
|
||
defaultValue: !1,
|
||
description: "Makes adding a space between `#` and the header text mandatory (GFM Style)",
|
||
type: "boolean"
|
||
},
|
||
ghMentions: {
|
||
defaultValue: !1,
|
||
description: "Enables github @mentions",
|
||
type: "boolean"
|
||
},
|
||
ghMentionsLink: {
|
||
defaultValue: "https://github.com/{u}",
|
||
description: "Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",
|
||
type: "string"
|
||
},
|
||
encodeEmails: {
|
||
defaultValue: !0,
|
||
description: "Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",
|
||
type: "boolean"
|
||
},
|
||
openLinksInNewWindow: {
|
||
defaultValue: !1,
|
||
description: "Open all links in new windows",
|
||
type: "boolean"
|
||
},
|
||
backslashEscapesHTMLTags: {
|
||
defaultValue: !1,
|
||
description: "Support for HTML Tag escaping. ex: <div>foo</div>",
|
||
type: "boolean"
|
||
},
|
||
emoji: {
|
||
defaultValue: !1,
|
||
description: "Enable emoji support. Ex: `this is a :smile: emoji`",
|
||
type: "boolean"
|
||
},
|
||
underline: {
|
||
defaultValue: !1,
|
||
description: "Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`",
|
||
type: "boolean"
|
||
},
|
||
ellipsis: {
|
||
defaultValue: !0,
|
||
description: "Replaces three dots with the ellipsis unicode character",
|
||
type: "boolean"
|
||
},
|
||
completeHTMLDocument: {
|
||
defaultValue: !1,
|
||
description: "Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags",
|
||
type: "boolean"
|
||
},
|
||
metadata: {
|
||
defaultValue: !1,
|
||
description: "Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",
|
||
type: "boolean"
|
||
},
|
||
splitAdjacentBlockquotes: {
|
||
defaultValue: !1,
|
||
description: "Split adjacent blockquote blocks",
|
||
type: "boolean"
|
||
}
|
||
};
|
||
if (!1 === e) return JSON.parse(JSON.stringify(r));
|
||
var t, a = {};
|
||
for (t in r) r.hasOwnProperty(t) && (a[t] = r[t].defaultValue);
|
||
return a
|
||
}
|
||
var x = {},
|
||
t = {},
|
||
d = {},
|
||
p = a(!0),
|
||
h = "vanilla",
|
||
_ = {
|
||
github: {
|
||
omitExtraWLInCodeBlocks: !0,
|
||
simplifiedAutoLink: !0,
|
||
excludeTrailingPunctuationFromURLs: !0,
|
||
literalMidWordUnderscores: !0,
|
||
strikethrough: !0,
|
||
tables: !0,
|
||
tablesHeaderId: !0,
|
||
ghCodeBlocks: !0,
|
||
tasklists: !0,
|
||
disableForced4SpacesIndentedSublists: !0,
|
||
simpleLineBreaks: !0,
|
||
requireSpaceBeforeHeadingText: !0,
|
||
ghCompatibleHeaderId: !0,
|
||
ghMentions: !0,
|
||
backslashEscapesHTMLTags: !0,
|
||
emoji: !0,
|
||
splitAdjacentBlockquotes: !0
|
||
},
|
||
original: {
|
||
noHeaderId: !0,
|
||
ghCodeBlocks: !1
|
||
},
|
||
ghost: {
|
||
omitExtraWLInCodeBlocks: !0,
|
||
parseImgDimensions: !0,
|
||
simplifiedAutoLink: !0,
|
||
excludeTrailingPunctuationFromURLs: !0,
|
||
literalMidWordUnderscores: !0,
|
||
strikethrough: !0,
|
||
tables: !0,
|
||
tablesHeaderId: !0,
|
||
ghCodeBlocks: !0,
|
||
tasklists: !0,
|
||
smoothLivePreview: !0,
|
||
simpleLineBreaks: !0,
|
||
requireSpaceBeforeHeadingText: !0,
|
||
ghMentions: !1,
|
||
encodeEmails: !0
|
||
},
|
||
vanilla: a(!0),
|
||
allOn: function() {
|
||
"use strict";
|
||
var e, r = a(!0),
|
||
t = {};
|
||
for (e in r) r.hasOwnProperty(e) && (t[e] = !0);
|
||
return t
|
||
}()
|
||
};
|
||
|
||
function g(e, r) {
|
||
"use strict";
|
||
var t = r ? "Error in " + r + " extension->" : "Error in unnamed extension",
|
||
a = {
|
||
valid: !0,
|
||
error: ""
|
||
};
|
||
x.helper.isArray(e) || (e = [e]);
|
||
for (var n = 0; n < e.length; ++n) {
|
||
var s = t + " sub-extension " + n + ": ",
|
||
o = e[n];
|
||
if ("object" != typeof o) return a.valid = !1, a.error = s + "must be an object, but " + typeof o + " given", a;
|
||
if (!x.helper.isString(o.type)) return a.valid = !1, a.error = s + 'property "type" must be a string, but ' + typeof o.type + " given", a;
|
||
var i = o.type = o.type.toLowerCase();
|
||
if ("lang" !== (i = "html" === (i = "language" === i ? o.type = "lang" : i) ? o.type = "output" : i) && "output" !== i && "listener" !== i) return a.valid = !1, a.error = s + "type " + i + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"', a;
|
||
if ("listener" === i) {
|
||
if (x.helper.isUndefined(o.listeners)) return a.valid = !1, a.error = s + '. Extensions of type "listener" must have a property called "listeners"', a
|
||
} else if (x.helper.isUndefined(o.filter) && x.helper.isUndefined(o.regex)) return a.valid = !1, a.error = s + i + ' extensions must define either a "regex" property or a "filter" method', a;
|
||
if (o.listeners) {
|
||
if ("object" != typeof o.listeners) return a.valid = !1, a.error = s + '"listeners" property must be an object but ' + typeof o.listeners + " given", a;
|
||
for (var l in o.listeners)
|
||
if (o.listeners.hasOwnProperty(l) && "function" != typeof o.listeners[l]) return a.valid = !1, a.error = s + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + l + " must be a function but " + typeof o.listeners[l] + " given", a
|
||
}
|
||
if (o.filter) {
|
||
if ("function" != typeof o.filter) return a.valid = !1, a.error = s + '"filter" must be a function, but ' + typeof o.filter + " given", a
|
||
} else if (o.regex) {
|
||
if (x.helper.isString(o.regex) && (o.regex = new RegExp(o.regex, "g")), !(o.regex instanceof RegExp)) return a.valid = !1, a.error = s + '"regex" property must either be a string or a RegExp object, but ' + typeof o.regex + " given", a;
|
||
if (x.helper.isUndefined(o.replace)) return a.valid = !1, a.error = s + '"regex" extensions must implement a replace string or function', a
|
||
}
|
||
}
|
||
return a
|
||
}
|
||
|
||
function n(e, r) {
|
||
"use strict";
|
||
return "¨E" + r.charCodeAt(0) + "E"
|
||
}
|
||
x.helper = {}, x.extensions = {}, x.setOption = function(e, r) {
|
||
"use strict";
|
||
return p[e] = r, this
|
||
}, x.getOption = function(e) {
|
||
"use strict";
|
||
return p[e]
|
||
}, x.getOptions = function() {
|
||
"use strict";
|
||
return p
|
||
}, x.resetOptions = function() {
|
||
"use strict";
|
||
p = a(!0)
|
||
}, x.setFlavor = function(e) {
|
||
"use strict";
|
||
if (!_.hasOwnProperty(e)) throw Error(e + " flavor was not found");
|
||
x.resetOptions();
|
||
var r, t = _[e];
|
||
for (r in h = e, t) t.hasOwnProperty(r) && (p[r] = t[r])
|
||
}, x.getFlavor = function() {
|
||
"use strict";
|
||
return h
|
||
}, x.getFlavorOptions = function(e) {
|
||
"use strict";
|
||
if (_.hasOwnProperty(e)) return _[e]
|
||
}, x.getDefaultOptions = a, x.subParser = function(e, r) {
|
||
"use strict";
|
||
if (x.helper.isString(e)) {
|
||
if (void 0 === r) {
|
||
if (t.hasOwnProperty(e)) return t[e];
|
||
throw Error("SubParser named " + e + " not registered!")
|
||
}
|
||
t[e] = r
|
||
}
|
||
}, x.extension = function(e, r) {
|
||
"use strict";
|
||
if (!x.helper.isString(e)) throw Error("Extension 'name' must be a string");
|
||
if (e = x.helper.stdExtName(e), x.helper.isUndefined(r)) {
|
||
if (!d.hasOwnProperty(e)) throw Error("Extension named " + e + " is not registered!");
|
||
return d[e]
|
||
}
|
||
"function" == typeof r && (r = r());
|
||
var t = g(r = x.helper.isArray(r) ? r : [r], e);
|
||
if (!t.valid) throw Error(t.error);
|
||
d[e] = r
|
||
}, x.getAllExtensions = function() {
|
||
"use strict";
|
||
return d
|
||
}, x.removeExtension = function(e) {
|
||
"use strict";
|
||
delete d[e]
|
||
}, x.resetExtensions = function() {
|
||
"use strict";
|
||
d = {}
|
||
}, x.validateExtension = function(e) {
|
||
"use strict";
|
||
e = g(e, null);
|
||
return !!e.valid || (console.warn(e.error), !1)
|
||
}, x.hasOwnProperty("helper") || (x.helper = {}), x.helper.isString = function(e) {
|
||
"use strict";
|
||
return "string" == typeof e || e instanceof String
|
||
}, x.helper.isFunction = function(e) {
|
||
"use strict";
|
||
return e && "[object Function]" === {}.toString.call(e)
|
||
}, x.helper.isArray = function(e) {
|
||
"use strict";
|
||
return Array.isArray(e)
|
||
}, x.helper.isUndefined = function(e) {
|
||
"use strict";
|
||
return void 0 === e
|
||
}, x.helper.forEach = function(e, r) {
|
||
"use strict";
|
||
if (x.helper.isUndefined(e)) throw new Error("obj param is required");
|
||
if (x.helper.isUndefined(r)) throw new Error("callback param is required");
|
||
if (!x.helper.isFunction(r)) throw new Error("callback param must be a function/closure");
|
||
if ("function" == typeof e.forEach) e.forEach(r);
|
||
else if (x.helper.isArray(e))
|
||
for (var t = 0; t < e.length; t++) r(e[t], t, e);
|
||
else {
|
||
if ("object" != typeof e) throw new Error("obj does not seem to be an array or an iterable object");
|
||
for (var a in e) e.hasOwnProperty(a) && r(e[a], a, e)
|
||
}
|
||
}, x.helper.stdExtName = function(e) {
|
||
"use strict";
|
||
return e.replace(/[_?*+\/\\.^-]/g, "").replace(/\s/g, "").toLowerCase()
|
||
}, x.helper.escapeCharactersCallback = n, x.helper.escapeCharacters = function(e, r, t) {
|
||
"use strict";
|
||
r = "([" + r.replace(/([\[\]\\])/g, "\\$1") + "])", t && (r = "\\\\" + r), t = new RegExp(r, "g");
|
||
return e = e.replace(t, n)
|
||
}, x.helper.unescapeHTMLEntities = function(e) {
|
||
"use strict";
|
||
return e.replace(/"/g, '"').replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&")
|
||
};
|
||
|
||
function u(e, r, u, t) {
|
||
"use strict";
|
||
var a, n, s, d = -1 < (t = t || "").indexOf("g"),
|
||
o = new RegExp(r + "|" + u, "g" + t.replace(/g/g, "")),
|
||
p = new RegExp(r, t.replace(/g/g, "")),
|
||
i = [];
|
||
do {
|
||
for (a = 0; c = o.exec(e);)
|
||
if (p.test(c[0])) a++ || (s = (n = o.lastIndex) - c[0].length);
|
||
else if (a && !--a) {
|
||
var l = c.index + c[0].length,
|
||
c = {
|
||
left: {
|
||
start: s,
|
||
end: n
|
||
},
|
||
match: {
|
||
start: n,
|
||
end: c.index
|
||
},
|
||
right: {
|
||
start: c.index,
|
||
end: l
|
||
},
|
||
wholeMatch: {
|
||
start: s,
|
||
end: l
|
||
}
|
||
};
|
||
if (i.push(c), !d) return i
|
||
}
|
||
} while (a && (o.lastIndex = n));
|
||
return i
|
||
}
|
||
|
||
function s(u) {
|
||
"use strict";
|
||
return function(e, r, t, a, c, n, s) {
|
||
var o = t = t.replace(x.helper.regexes.asteriskDashAndColon, x.helper.escapeCharactersCallback),
|
||
i = "",
|
||
l = "",
|
||
r = r || "",
|
||
s = s || "";
|
||
return /^www\./i.test(t) && (t = t.replace(/^www\./i, "http://www.")), u.excludeTrailingPunctuationFromURLs && n && (i = n), r + '<a href="' + t + '"' + (l = u.openLinksInNewWindow ? ' rel="noopener noreferrer" target="¨E95Eblank"' : l) + ">" + o + "</a>" + i + s
|
||
}
|
||
}
|
||
|
||
function o(n, s) {
|
||
"use strict";
|
||
return function(e, r, t) {
|
||
var a = "mailto:";
|
||
return r = r || "", t = x.subParser("unescapeSpecialChars")(t, n, s), n.encodeEmails ? (a = x.helper.encodeEmailAddress(a + t), t = x.helper.encodeEmailAddress(t)) : a += t, r + '<a href="' + a + '">' + t + "</a>"
|
||
}
|
||
}
|
||
x.helper.matchRecursiveRegExp = function(e, r, t, a) {
|
||
"use strict";
|
||
for (var n = u(e, r, t, a), s = [], o = 0; o < n.length; ++o) s.push([e.slice(n[o].wholeMatch.start, n[o].wholeMatch.end), e.slice(n[o].match.start, n[o].match.end), e.slice(n[o].left.start, n[o].left.end), e.slice(n[o].right.start, n[o].right.end)]);
|
||
return s
|
||
}, x.helper.replaceRecursiveRegExp = function(e, r, t, a, n) {
|
||
"use strict";
|
||
x.helper.isFunction(r) || (s = r, r = function() {
|
||
return s
|
||
});
|
||
var s, o = u(e, t, a, n),
|
||
t = e,
|
||
i = o.length;
|
||
if (0 < i) {
|
||
var l = [];
|
||
0 !== o[0].wholeMatch.start && l.push(e.slice(0, o[0].wholeMatch.start));
|
||
for (var c = 0; c < i; ++c) l.push(r(e.slice(o[c].wholeMatch.start, o[c].wholeMatch.end), e.slice(o[c].match.start, o[c].match.end), e.slice(o[c].left.start, o[c].left.end), e.slice(o[c].right.start, o[c].right.end))), c < i - 1 && l.push(e.slice(o[c].wholeMatch.end, o[c + 1].wholeMatch.start));
|
||
o[i - 1].wholeMatch.end < e.length && l.push(e.slice(o[i - 1].wholeMatch.end)), t = l.join("")
|
||
}
|
||
return t
|
||
}, x.helper.regexIndexOf = function(e, r, t) {
|
||
"use strict";
|
||
if (!x.helper.isString(e)) throw "InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";
|
||
if (r instanceof RegExp == !1) throw "InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp";
|
||
e = e.substring(t || 0).search(r);
|
||
return 0 <= e ? e + (t || 0) : e
|
||
}, x.helper.splitAtIndex = function(e, r) {
|
||
"use strict";
|
||
if (!x.helper.isString(e)) throw "InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";
|
||
return [e.substring(0, r), e.substring(r)]
|
||
}, x.helper.encodeEmailAddress = function(e) {
|
||
"use strict";
|
||
var t = [function(e) {
|
||
return "&#" + e.charCodeAt(0) + ";"
|
||
}, function(e) {
|
||
return "&#x" + e.charCodeAt(0).toString(16) + ";"
|
||
}, function(e) {
|
||
return e
|
||
}];
|
||
return e = e.replace(/./g, function(e) {
|
||
var r;
|
||
return e = "@" === e ? t[Math.floor(2 * Math.random())](e) : .9 < (r = Math.random()) ? t[2](e) : .45 < r ? t[1](e) : t[0](e)
|
||
})
|
||
}, x.helper.padEnd = function(e, r, t) {
|
||
"use strict";
|
||
return r >>= 0, t = String(t || " "), e.length > r ? String(e) : ((r -= e.length) > t.length && (t += t.repeat(r / t.length)), String(e) + t.slice(0, r))
|
||
}, "undefined" == typeof console && (console = {
|
||
warn: function(e) {
|
||
"use strict";
|
||
alert(e)
|
||
},
|
||
log: function(e) {
|
||
"use strict";
|
||
alert(e)
|
||
},
|
||
error: function(e) {
|
||
"use strict";
|
||
throw e
|
||
}
|
||
}), x.helper.regexes = {
|
||
asteriskDashAndColon: /([*_:~])/g
|
||
}, x.helper.emojis = {
|
||
"+1": "👍",
|
||
"-1": "👎",
|
||
100: "💯",
|
||
1234: "🔢",
|
||
"1st_place_medal": "🥇",
|
||
"2nd_place_medal": "🥈",
|
||
"3rd_place_medal": "🥉",
|
||
"8ball": "🎱",
|
||
a: "🅰️",
|
||
ab: "🆎",
|
||
abc: "🔤",
|
||
abcd: "🔡",
|
||
accept: "🉑",
|
||
aerial_tramway: "🚡",
|
||
airplane: "✈️",
|
||
alarm_clock: "⏰",
|
||
alembic: "⚗️",
|
||
alien: "👽",
|
||
ambulance: "🚑",
|
||
amphora: "🏺",
|
||
anchor: "⚓️",
|
||
angel: "👼",
|
||
anger: "💢",
|
||
angry: "😠",
|
||
anguished: "😧",
|
||
ant: "🐜",
|
||
apple: "🍎",
|
||
aquarius: "♒️",
|
||
aries: "♈️",
|
||
arrow_backward: "◀️",
|
||
arrow_double_down: "⏬",
|
||
arrow_double_up: "⏫",
|
||
arrow_down: "⬇️",
|
||
arrow_down_small: "🔽",
|
||
arrow_forward: "▶️",
|
||
arrow_heading_down: "⤵️",
|
||
arrow_heading_up: "⤴️",
|
||
arrow_left: "⬅️",
|
||
arrow_lower_left: "↙️",
|
||
arrow_lower_right: "↘️",
|
||
arrow_right: "➡️",
|
||
arrow_right_hook: "↪️",
|
||
arrow_up: "⬆️",
|
||
arrow_up_down: "↕️",
|
||
arrow_up_small: "🔼",
|
||
arrow_upper_left: "↖️",
|
||
arrow_upper_right: "↗️",
|
||
arrows_clockwise: "🔃",
|
||
arrows_counterclockwise: "🔄",
|
||
art: "🎨",
|
||
articulated_lorry: "🚛",
|
||
artificial_satellite: "🛰",
|
||
astonished: "😲",
|
||
athletic_shoe: "👟",
|
||
atm: "🏧",
|
||
atom_symbol: "⚛️",
|
||
avocado: "🥑",
|
||
b: "🅱️",
|
||
baby: "👶",
|
||
baby_bottle: "🍼",
|
||
baby_chick: "🐤",
|
||
baby_symbol: "🚼",
|
||
back: "🔙",
|
||
bacon: "🥓",
|
||
badminton: "🏸",
|
||
baggage_claim: "🛄",
|
||
baguette_bread: "🥖",
|
||
balance_scale: "⚖️",
|
||
balloon: "🎈",
|
||
ballot_box: "🗳",
|
||
ballot_box_with_check: "☑️",
|
||
bamboo: "🎍",
|
||
banana: "🍌",
|
||
bangbang: "‼️",
|
||
bank: "🏦",
|
||
bar_chart: "📊",
|
||
barber: "💈",
|
||
baseball: "⚾️",
|
||
basketball: "🏀",
|
||
basketball_man: "⛹️",
|
||
basketball_woman: "⛹️‍♀️",
|
||
bat: "🦇",
|
||
bath: "🛀",
|
||
bathtub: "🛁",
|
||
battery: "🔋",
|
||
beach_umbrella: "🏖",
|
||
bear: "🐻",
|
||
bed: "🛏",
|
||
bee: "🐝",
|
||
beer: "🍺",
|
||
beers: "🍻",
|
||
beetle: "🐞",
|
||
beginner: "🔰",
|
||
bell: "🔔",
|
||
bellhop_bell: "🛎",
|
||
bento: "🍱",
|
||
biking_man: "🚴",
|
||
bike: "🚲",
|
||
biking_woman: "🚴‍♀️",
|
||
bikini: "👙",
|
||
biohazard: "☣️",
|
||
bird: "🐦",
|
||
birthday: "🎂",
|
||
black_circle: "⚫️",
|
||
black_flag: "🏴",
|
||
black_heart: "🖤",
|
||
black_joker: "🃏",
|
||
black_large_square: "⬛️",
|
||
black_medium_small_square: "◾️",
|
||
black_medium_square: "◼️",
|
||
black_nib: "✒️",
|
||
black_small_square: "▪️",
|
||
black_square_button: "🔲",
|
||
blonde_man: "👱",
|
||
blonde_woman: "👱‍♀️",
|
||
blossom: "🌼",
|
||
blowfish: "🐡",
|
||
blue_book: "📘",
|
||
blue_car: "🚙",
|
||
blue_heart: "💙",
|
||
blush: "😊",
|
||
boar: "🐗",
|
||
boat: "⛵️",
|
||
bomb: "💣",
|
||
book: "📖",
|
||
bookmark: "🔖",
|
||
bookmark_tabs: "📑",
|
||
books: "📚",
|
||
boom: "💥",
|
||
boot: "👢",
|
||
bouquet: "💐",
|
||
bowing_man: "🙇",
|
||
bow_and_arrow: "🏹",
|
||
bowing_woman: "🙇‍♀️",
|
||
bowling: "🎳",
|
||
boxing_glove: "🥊",
|
||
boy: "👦",
|
||
bread: "🍞",
|
||
bride_with_veil: "👰",
|
||
bridge_at_night: "🌉",
|
||
briefcase: "💼",
|
||
broken_heart: "💔",
|
||
bug: "🐛",
|
||
building_construction: "🏗",
|
||
bulb: "💡",
|
||
bullettrain_front: "🚅",
|
||
bullettrain_side: "🚄",
|
||
burrito: "🌯",
|
||
bus: "🚌",
|
||
business_suit_levitating: "🕴",
|
||
busstop: "🚏",
|
||
bust_in_silhouette: "👤",
|
||
busts_in_silhouette: "👥",
|
||
butterfly: "🦋",
|
||
cactus: "🌵",
|
||
cake: "🍰",
|
||
calendar: "📆",
|
||
call_me_hand: "🤙",
|
||
calling: "📲",
|
||
camel: "🐫",
|
||
camera: "📷",
|
||
camera_flash: "📸",
|
||
camping: "🏕",
|
||
cancer: "♋️",
|
||
candle: "🕯",
|
||
candy: "🍬",
|
||
canoe: "🛶",
|
||
capital_abcd: "🔠",
|
||
capricorn: "♑️",
|
||
car: "🚗",
|
||
card_file_box: "🗃",
|
||
card_index: "📇",
|
||
card_index_dividers: "🗂",
|
||
carousel_horse: "🎠",
|
||
carrot: "🥕",
|
||
cat: "🐱",
|
||
cat2: "🐈",
|
||
cd: "💿",
|
||
chains: "⛓",
|
||
champagne: "🍾",
|
||
chart: "💹",
|
||
chart_with_downwards_trend: "📉",
|
||
chart_with_upwards_trend: "📈",
|
||
checkered_flag: "🏁",
|
||
cheese: "🧀",
|
||
cherries: "🍒",
|
||
cherry_blossom: "🌸",
|
||
chestnut: "🌰",
|
||
chicken: "🐔",
|
||
children_crossing: "🚸",
|
||
chipmunk: "🐿",
|
||
chocolate_bar: "🍫",
|
||
christmas_tree: "🎄",
|
||
church: "⛪️",
|
||
cinema: "🎦",
|
||
circus_tent: "🎪",
|
||
city_sunrise: "🌇",
|
||
city_sunset: "🌆",
|
||
cityscape: "🏙",
|
||
cl: "🆑",
|
||
clamp: "🗜",
|
||
clap: "👏",
|
||
clapper: "🎬",
|
||
classical_building: "🏛",
|
||
clinking_glasses: "🥂",
|
||
clipboard: "📋",
|
||
clock1: "🕐",
|
||
clock10: "🕙",
|
||
clock1030: "🕥",
|
||
clock11: "🕚",
|
||
clock1130: "🕦",
|
||
clock12: "🕛",
|
||
clock1230: "🕧",
|
||
clock130: "🕜",
|
||
clock2: "🕑",
|
||
clock230: "🕝",
|
||
clock3: "🕒",
|
||
clock330: "🕞",
|
||
clock4: "🕓",
|
||
clock430: "🕟",
|
||
clock5: "🕔",
|
||
clock530: "🕠",
|
||
clock6: "🕕",
|
||
clock630: "🕡",
|
||
clock7: "🕖",
|
||
clock730: "🕢",
|
||
clock8: "🕗",
|
||
clock830: "🕣",
|
||
clock9: "🕘",
|
||
clock930: "🕤",
|
||
closed_book: "📕",
|
||
closed_lock_with_key: "🔐",
|
||
closed_umbrella: "🌂",
|
||
cloud: "☁️",
|
||
cloud_with_lightning: "🌩",
|
||
cloud_with_lightning_and_rain: "⛈",
|
||
cloud_with_rain: "🌧",
|
||
cloud_with_snow: "🌨",
|
||
clown_face: "🤡",
|
||
clubs: "♣️",
|
||
cocktail: "🍸",
|
||
coffee: "☕️",
|
||
coffin: "⚰️",
|
||
cold_sweat: "😰",
|
||
comet: "☄️",
|
||
computer: "💻",
|
||
computer_mouse: "🖱",
|
||
confetti_ball: "🎊",
|
||
confounded: "😖",
|
||
confused: "😕",
|
||
congratulations: "㊗️",
|
||
construction: "🚧",
|
||
construction_worker_man: "👷",
|
||
construction_worker_woman: "👷‍♀️",
|
||
control_knobs: "🎛",
|
||
convenience_store: "🏪",
|
||
cookie: "🍪",
|
||
cool: "🆒",
|
||
policeman: "👮",
|
||
copyright: "©️",
|
||
corn: "🌽",
|
||
couch_and_lamp: "🛋",
|
||
couple: "👫",
|
||
couple_with_heart_woman_man: "💑",
|
||
couple_with_heart_man_man: "👨‍❤️‍👨",
|
||
couple_with_heart_woman_woman: "👩‍❤️‍👩",
|
||
couplekiss_man_man: "👨‍❤️‍💋‍👨",
|
||
couplekiss_man_woman: "💏",
|
||
couplekiss_woman_woman: "👩‍❤️‍💋‍👩",
|
||
cow: "🐮",
|
||
cow2: "🐄",
|
||
cowboy_hat_face: "🤠",
|
||
crab: "🦀",
|
||
crayon: "🖍",
|
||
credit_card: "💳",
|
||
crescent_moon: "🌙",
|
||
cricket: "🏏",
|
||
crocodile: "🐊",
|
||
croissant: "🥐",
|
||
crossed_fingers: "🤞",
|
||
crossed_flags: "🎌",
|
||
crossed_swords: "⚔️",
|
||
crown: "👑",
|
||
cry: "😢",
|
||
crying_cat_face: "😿",
|
||
crystal_ball: "🔮",
|
||
cucumber: "🥒",
|
||
cupid: "💘",
|
||
curly_loop: "➰",
|
||
currency_exchange: "💱",
|
||
curry: "🍛",
|
||
custard: "🍮",
|
||
customs: "🛃",
|
||
cyclone: "🌀",
|
||
dagger: "🗡",
|
||
dancer: "💃",
|
||
dancing_women: "👯",
|
||
dancing_men: "👯‍♂️",
|
||
dango: "🍡",
|
||
dark_sunglasses: "🕶",
|
||
dart: "🎯",
|
||
dash: "💨",
|
||
date: "📅",
|
||
deciduous_tree: "🌳",
|
||
deer: "🦌",
|
||
department_store: "🏬",
|
||
derelict_house: "🏚",
|
||
desert: "🏜",
|
||
desert_island: "🏝",
|
||
desktop_computer: "🖥",
|
||
male_detective: "🕵️",
|
||
diamond_shape_with_a_dot_inside: "💠",
|
||
diamonds: "♦️",
|
||
disappointed: "😞",
|
||
disappointed_relieved: "😥",
|
||
dizzy: "💫",
|
||
dizzy_face: "😵",
|
||
do_not_litter: "🚯",
|
||
dog: "🐶",
|
||
dog2: "🐕",
|
||
dollar: "💵",
|
||
dolls: "🎎",
|
||
dolphin: "🐬",
|
||
door: "🚪",
|
||
doughnut: "🍩",
|
||
dove: "🕊",
|
||
dragon: "🐉",
|
||
dragon_face: "🐲",
|
||
dress: "👗",
|
||
dromedary_camel: "🐪",
|
||
drooling_face: "🤤",
|
||
droplet: "💧",
|
||
drum: "🥁",
|
||
duck: "🦆",
|
||
dvd: "📀",
|
||
"e-mail": "📧",
|
||
eagle: "🦅",
|
||
ear: "👂",
|
||
ear_of_rice: "🌾",
|
||
earth_africa: "🌍",
|
||
earth_americas: "🌎",
|
||
earth_asia: "🌏",
|
||
egg: "🥚",
|
||
eggplant: "🍆",
|
||
eight_pointed_black_star: "✴️",
|
||
eight_spoked_asterisk: "✳️",
|
||
electric_plug: "🔌",
|
||
elephant: "🐘",
|
||
email: "✉️",
|
||
end: "🔚",
|
||
envelope_with_arrow: "📩",
|
||
euro: "💶",
|
||
european_castle: "🏰",
|
||
european_post_office: "🏤",
|
||
evergreen_tree: "🌲",
|
||
exclamation: "❗️",
|
||
expressionless: "😑",
|
||
eye: "👁",
|
||
eye_speech_bubble: "👁‍🗨",
|
||
eyeglasses: "👓",
|
||
eyes: "👀",
|
||
face_with_head_bandage: "🤕",
|
||
face_with_thermometer: "🤒",
|
||
fist_oncoming: "👊",
|
||
factory: "🏭",
|
||
fallen_leaf: "🍂",
|
||
family_man_woman_boy: "👪",
|
||
family_man_boy: "👨‍👦",
|
||
family_man_boy_boy: "👨‍👦‍👦",
|
||
family_man_girl: "👨‍👧",
|
||
family_man_girl_boy: "👨‍👧‍👦",
|
||
family_man_girl_girl: "👨‍👧‍👧",
|
||
family_man_man_boy: "👨‍👨‍👦",
|
||
family_man_man_boy_boy: "👨‍👨‍👦‍👦",
|
||
family_man_man_girl: "👨‍👨‍👧",
|
||
family_man_man_girl_boy: "👨‍👨‍👧‍👦",
|
||
family_man_man_girl_girl: "👨‍👨‍👧‍👧",
|
||
family_man_woman_boy_boy: "👨‍👩‍👦‍👦",
|
||
family_man_woman_girl: "👨‍👩‍👧",
|
||
family_man_woman_girl_boy: "👨‍👩‍👧‍👦",
|
||
family_man_woman_girl_girl: "👨‍👩‍👧‍👧",
|
||
family_woman_boy: "👩‍👦",
|
||
family_woman_boy_boy: "👩‍👦‍👦",
|
||
family_woman_girl: "👩‍👧",
|
||
family_woman_girl_boy: "👩‍👧‍👦",
|
||
family_woman_girl_girl: "👩‍👧‍👧",
|
||
family_woman_woman_boy: "👩‍👩‍👦",
|
||
family_woman_woman_boy_boy: "👩‍👩‍👦‍👦",
|
||
family_woman_woman_girl: "👩‍👩‍👧",
|
||
family_woman_woman_girl_boy: "👩‍👩‍👧‍👦",
|
||
family_woman_woman_girl_girl: "👩‍👩‍👧‍👧",
|
||
fast_forward: "⏩",
|
||
fax: "📠",
|
||
fearful: "😨",
|
||
feet: "🐾",
|
||
female_detective: "🕵️‍♀️",
|
||
ferris_wheel: "🎡",
|
||
ferry: "⛴",
|
||
field_hockey: "🏑",
|
||
file_cabinet: "🗄",
|
||
file_folder: "📁",
|
||
film_projector: "📽",
|
||
film_strip: "🎞",
|
||
fire: "🔥",
|
||
fire_engine: "🚒",
|
||
fireworks: "🎆",
|
||
first_quarter_moon: "🌓",
|
||
first_quarter_moon_with_face: "🌛",
|
||
fish: "🐟",
|
||
fish_cake: "🍥",
|
||
fishing_pole_and_fish: "🎣",
|
||
fist_raised: "✊",
|
||
fist_left: "🤛",
|
||
fist_right: "🤜",
|
||
flags: "🎏",
|
||
flashlight: "🔦",
|
||
fleur_de_lis: "⚜️",
|
||
flight_arrival: "🛬",
|
||
flight_departure: "🛫",
|
||
floppy_disk: "💾",
|
||
flower_playing_cards: "🎴",
|
||
flushed: "😳",
|
||
fog: "🌫",
|
||
foggy: "🌁",
|
||
football: "🏈",
|
||
footprints: "👣",
|
||
fork_and_knife: "🍴",
|
||
fountain: "⛲️",
|
||
fountain_pen: "🖋",
|
||
four_leaf_clover: "🍀",
|
||
fox_face: "🦊",
|
||
framed_picture: "🖼",
|
||
free: "🆓",
|
||
fried_egg: "🍳",
|
||
fried_shrimp: "🍤",
|
||
fries: "🍟",
|
||
frog: "🐸",
|
||
frowning: "😦",
|
||
frowning_face: "☹️",
|
||
frowning_man: "🙍‍♂️",
|
||
frowning_woman: "🙍",
|
||
middle_finger: "🖕",
|
||
fuelpump: "⛽️",
|
||
full_moon: "🌕",
|
||
full_moon_with_face: "🌝",
|
||
funeral_urn: "⚱️",
|
||
game_die: "🎲",
|
||
gear: "⚙️",
|
||
gem: "💎",
|
||
gemini: "♊️",
|
||
ghost: "👻",
|
||
gift: "🎁",
|
||
gift_heart: "💝",
|
||
girl: "👧",
|
||
globe_with_meridians: "🌐",
|
||
goal_net: "🥅",
|
||
goat: "🐐",
|
||
golf: "⛳️",
|
||
golfing_man: "🏌️",
|
||
golfing_woman: "🏌️‍♀️",
|
||
gorilla: "🦍",
|
||
grapes: "🍇",
|
||
green_apple: "🍏",
|
||
green_book: "📗",
|
||
green_heart: "💚",
|
||
green_salad: "🥗",
|
||
grey_exclamation: "❕",
|
||
grey_question: "❔",
|
||
grimacing: "😬",
|
||
grin: "😁",
|
||
grinning: "😀",
|
||
guardsman: "💂",
|
||
guardswoman: "💂‍♀️",
|
||
guitar: "🎸",
|
||
gun: "🔫",
|
||
haircut_woman: "💇",
|
||
haircut_man: "💇‍♂️",
|
||
hamburger: "🍔",
|
||
hammer: "🔨",
|
||
hammer_and_pick: "⚒",
|
||
hammer_and_wrench: "🛠",
|
||
hamster: "🐹",
|
||
hand: "✋",
|
||
handbag: "👜",
|
||
handshake: "🤝",
|
||
hankey: "💩",
|
||
hatched_chick: "🐥",
|
||
hatching_chick: "🐣",
|
||
headphones: "🎧",
|
||
hear_no_evil: "🙉",
|
||
heart: "❤️",
|
||
heart_decoration: "💟",
|
||
heart_eyes: "😍",
|
||
heart_eyes_cat: "😻",
|
||
heartbeat: "💓",
|
||
heartpulse: "💗",
|
||
hearts: "♥️",
|
||
heavy_check_mark: "✔️",
|
||
heavy_division_sign: "➗",
|
||
heavy_dollar_sign: "💲",
|
||
heavy_heart_exclamation: "❣️",
|
||
heavy_minus_sign: "➖",
|
||
heavy_multiplication_x: "✖️",
|
||
heavy_plus_sign: "➕",
|
||
helicopter: "🚁",
|
||
herb: "🌿",
|
||
hibiscus: "🌺",
|
||
high_brightness: "🔆",
|
||
high_heel: "👠",
|
||
hocho: "🔪",
|
||
hole: "🕳",
|
||
honey_pot: "🍯",
|
||
horse: "🐴",
|
||
horse_racing: "🏇",
|
||
hospital: "🏥",
|
||
hot_pepper: "🌶",
|
||
hotdog: "🌭",
|
||
hotel: "🏨",
|
||
hotsprings: "♨️",
|
||
hourglass: "⌛️",
|
||
hourglass_flowing_sand: "⏳",
|
||
house: "🏠",
|
||
house_with_garden: "🏡",
|
||
houses: "🏘",
|
||
hugs: "🤗",
|
||
hushed: "😯",
|
||
ice_cream: "🍨",
|
||
ice_hockey: "🏒",
|
||
ice_skate: "⛸",
|
||
icecream: "🍦",
|
||
id: "🆔",
|
||
ideograph_advantage: "🉐",
|
||
imp: "👿",
|
||
inbox_tray: "📥",
|
||
incoming_envelope: "📨",
|
||
tipping_hand_woman: "💁",
|
||
information_source: "ℹ️",
|
||
innocent: "😇",
|
||
interrobang: "⁉️",
|
||
iphone: "📱",
|
||
izakaya_lantern: "🏮",
|
||
jack_o_lantern: "🎃",
|
||
japan: "🗾",
|
||
japanese_castle: "🏯",
|
||
japanese_goblin: "👺",
|
||
japanese_ogre: "👹",
|
||
jeans: "👖",
|
||
joy: "😂",
|
||
joy_cat: "😹",
|
||
joystick: "🕹",
|
||
kaaba: "🕋",
|
||
key: "🔑",
|
||
keyboard: "⌨️",
|
||
keycap_ten: "🔟",
|
||
kick_scooter: "🛴",
|
||
kimono: "👘",
|
||
kiss: "💋",
|
||
kissing: "😗",
|
||
kissing_cat: "😽",
|
||
kissing_closed_eyes: "😚",
|
||
kissing_heart: "😘",
|
||
kissing_smiling_eyes: "😙",
|
||
kiwi_fruit: "🥝",
|
||
koala: "🐨",
|
||
koko: "🈁",
|
||
label: "🏷",
|
||
large_blue_circle: "🔵",
|
||
large_blue_diamond: "🔷",
|
||
large_orange_diamond: "🔶",
|
||
last_quarter_moon: "🌗",
|
||
last_quarter_moon_with_face: "🌜",
|
||
latin_cross: "✝️",
|
||
laughing: "😆",
|
||
leaves: "🍃",
|
||
ledger: "📒",
|
||
left_luggage: "🛅",
|
||
left_right_arrow: "↔️",
|
||
leftwards_arrow_with_hook: "↩️",
|
||
lemon: "🍋",
|
||
leo: "♌️",
|
||
leopard: "🐆",
|
||
level_slider: "🎚",
|
||
libra: "♎️",
|
||
light_rail: "🚈",
|
||
link: "🔗",
|
||
lion: "🦁",
|
||
lips: "👄",
|
||
lipstick: "💄",
|
||
lizard: "🦎",
|
||
lock: "🔒",
|
||
lock_with_ink_pen: "🔏",
|
||
lollipop: "🍭",
|
||
loop: "➿",
|
||
loud_sound: "🔊",
|
||
loudspeaker: "📢",
|
||
love_hotel: "🏩",
|
||
love_letter: "💌",
|
||
low_brightness: "🔅",
|
||
lying_face: "🤥",
|
||
m: "Ⓜ️",
|
||
mag: "🔍",
|
||
mag_right: "🔎",
|
||
mahjong: "🀄️",
|
||
mailbox: "📫",
|
||
mailbox_closed: "📪",
|
||
mailbox_with_mail: "📬",
|
||
mailbox_with_no_mail: "📭",
|
||
man: "👨",
|
||
man_artist: "👨‍🎨",
|
||
man_astronaut: "👨‍🚀",
|
||
man_cartwheeling: "🤸‍♂️",
|
||
man_cook: "👨‍🍳",
|
||
man_dancing: "🕺",
|
||
man_facepalming: "🤦‍♂️",
|
||
man_factory_worker: "👨‍🏭",
|
||
man_farmer: "👨‍🌾",
|
||
man_firefighter: "👨‍🚒",
|
||
man_health_worker: "👨‍⚕️",
|
||
man_in_tuxedo: "🤵",
|
||
man_judge: "👨‍⚖️",
|
||
man_juggling: "🤹‍♂️",
|
||
man_mechanic: "👨‍🔧",
|
||
man_office_worker: "👨‍💼",
|
||
man_pilot: "👨‍✈️",
|
||
man_playing_handball: "🤾‍♂️",
|
||
man_playing_water_polo: "🤽‍♂️",
|
||
man_scientist: "👨‍🔬",
|
||
man_shrugging: "🤷‍♂️",
|
||
man_singer: "👨‍🎤",
|
||
man_student: "👨‍🎓",
|
||
man_teacher: "👨‍🏫",
|
||
man_technologist: "👨‍💻",
|
||
man_with_gua_pi_mao: "👲",
|
||
man_with_turban: "👳",
|
||
tangerine: "🍊",
|
||
mans_shoe: "👞",
|
||
mantelpiece_clock: "🕰",
|
||
maple_leaf: "🍁",
|
||
martial_arts_uniform: "🥋",
|
||
mask: "😷",
|
||
massage_woman: "💆",
|
||
massage_man: "💆‍♂️",
|
||
meat_on_bone: "🍖",
|
||
medal_military: "🎖",
|
||
medal_sports: "🏅",
|
||
mega: "📣",
|
||
melon: "🍈",
|
||
memo: "📝",
|
||
men_wrestling: "🤼‍♂️",
|
||
menorah: "🕎",
|
||
mens: "🚹",
|
||
metal: "🤘",
|
||
metro: "🚇",
|
||
microphone: "🎤",
|
||
microscope: "🔬",
|
||
milk_glass: "🥛",
|
||
milky_way: "🌌",
|
||
minibus: "🚐",
|
||
minidisc: "💽",
|
||
mobile_phone_off: "📴",
|
||
money_mouth_face: "🤑",
|
||
money_with_wings: "💸",
|
||
moneybag: "💰",
|
||
monkey: "🐒",
|
||
monkey_face: "🐵",
|
||
monorail: "🚝",
|
||
moon: "🌔",
|
||
mortar_board: "🎓",
|
||
mosque: "🕌",
|
||
motor_boat: "🛥",
|
||
motor_scooter: "🛵",
|
||
motorcycle: "🏍",
|
||
motorway: "🛣",
|
||
mount_fuji: "🗻",
|
||
mountain: "⛰",
|
||
mountain_biking_man: "🚵",
|
||
mountain_biking_woman: "🚵‍♀️",
|
||
mountain_cableway: "🚠",
|
||
mountain_railway: "🚞",
|
||
mountain_snow: "🏔",
|
||
mouse: "🐭",
|
||
mouse2: "🐁",
|
||
movie_camera: "🎥",
|
||
moyai: "🗿",
|
||
mrs_claus: "🤶",
|
||
muscle: "💪",
|
||
mushroom: "🍄",
|
||
musical_keyboard: "🎹",
|
||
musical_note: "🎵",
|
||
musical_score: "🎼",
|
||
mute: "🔇",
|
||
nail_care: "💅",
|
||
name_badge: "📛",
|
||
national_park: "🏞",
|
||
nauseated_face: "🤢",
|
||
necktie: "👔",
|
||
negative_squared_cross_mark: "❎",
|
||
nerd_face: "🤓",
|
||
neutral_face: "😐",
|
||
new: "🆕",
|
||
new_moon: "🌑",
|
||
new_moon_with_face: "🌚",
|
||
newspaper: "📰",
|
||
newspaper_roll: "🗞",
|
||
next_track_button: "⏭",
|
||
ng: "🆖",
|
||
no_good_man: "🙅‍♂️",
|
||
no_good_woman: "🙅",
|
||
night_with_stars: "🌃",
|
||
no_bell: "🔕",
|
||
no_bicycles: "🚳",
|
||
no_entry: "⛔️",
|
||
no_entry_sign: "🚫",
|
||
no_mobile_phones: "📵",
|
||
no_mouth: "😶",
|
||
no_pedestrians: "🚷",
|
||
no_smoking: "🚭",
|
||
"non-potable_water": "🚱",
|
||
nose: "👃",
|
||
notebook: "📓",
|
||
notebook_with_decorative_cover: "📔",
|
||
notes: "🎶",
|
||
nut_and_bolt: "🔩",
|
||
o: "⭕️",
|
||
o2: "🅾️",
|
||
ocean: "🌊",
|
||
octopus: "🐙",
|
||
oden: "🍢",
|
||
office: "🏢",
|
||
oil_drum: "🛢",
|
||
ok: "🆗",
|
||
ok_hand: "👌",
|
||
ok_man: "🙆‍♂️",
|
||
ok_woman: "🙆",
|
||
old_key: "🗝",
|
||
older_man: "👴",
|
||
older_woman: "👵",
|
||
om: "🕉",
|
||
on: "🔛",
|
||
oncoming_automobile: "🚘",
|
||
oncoming_bus: "🚍",
|
||
oncoming_police_car: "🚔",
|
||
oncoming_taxi: "🚖",
|
||
open_file_folder: "📂",
|
||
open_hands: "👐",
|
||
open_mouth: "😮",
|
||
open_umbrella: "☂️",
|
||
ophiuchus: "⛎",
|
||
orange_book: "📙",
|
||
orthodox_cross: "☦️",
|
||
outbox_tray: "📤",
|
||
owl: "🦉",
|
||
ox: "🐂",
|
||
package: "📦",
|
||
page_facing_up: "📄",
|
||
page_with_curl: "📃",
|
||
pager: "📟",
|
||
paintbrush: "🖌",
|
||
palm_tree: "🌴",
|
||
pancakes: "🥞",
|
||
panda_face: "🐼",
|
||
paperclip: "📎",
|
||
paperclips: "🖇",
|
||
parasol_on_ground: "⛱",
|
||
parking: "🅿️",
|
||
part_alternation_mark: "〽️",
|
||
partly_sunny: "⛅️",
|
||
passenger_ship: "🛳",
|
||
passport_control: "🛂",
|
||
pause_button: "⏸",
|
||
peace_symbol: "☮️",
|
||
peach: "🍑",
|
||
peanuts: "🥜",
|
||
pear: "🍐",
|
||
pen: "🖊",
|
||
pencil2: "✏️",
|
||
penguin: "🐧",
|
||
pensive: "😔",
|
||
performing_arts: "🎭",
|
||
persevere: "😣",
|
||
person_fencing: "🤺",
|
||
pouting_woman: "🙎",
|
||
phone: "☎️",
|
||
pick: "⛏",
|
||
pig: "🐷",
|
||
pig2: "🐖",
|
||
pig_nose: "🐽",
|
||
pill: "💊",
|
||
pineapple: "🍍",
|
||
ping_pong: "🏓",
|
||
pisces: "♓️",
|
||
pizza: "🍕",
|
||
place_of_worship: "🛐",
|
||
plate_with_cutlery: "🍽",
|
||
play_or_pause_button: "⏯",
|
||
point_down: "👇",
|
||
point_left: "👈",
|
||
point_right: "👉",
|
||
point_up: "☝️",
|
||
point_up_2: "👆",
|
||
police_car: "🚓",
|
||
policewoman: "👮‍♀️",
|
||
poodle: "🐩",
|
||
popcorn: "🍿",
|
||
post_office: "🏣",
|
||
postal_horn: "📯",
|
||
postbox: "📮",
|
||
potable_water: "🚰",
|
||
potato: "🥔",
|
||
pouch: "👝",
|
||
poultry_leg: "🍗",
|
||
pound: "💷",
|
||
rage: "😡",
|
||
pouting_cat: "😾",
|
||
pouting_man: "🙎‍♂️",
|
||
pray: "🙏",
|
||
prayer_beads: "📿",
|
||
pregnant_woman: "🤰",
|
||
previous_track_button: "⏮",
|
||
prince: "🤴",
|
||
princess: "👸",
|
||
printer: "🖨",
|
||
purple_heart: "💜",
|
||
purse: "👛",
|
||
pushpin: "📌",
|
||
put_litter_in_its_place: "🚮",
|
||
question: "❓",
|
||
rabbit: "🐰",
|
||
rabbit2: "🐇",
|
||
racehorse: "🐎",
|
||
racing_car: "🏎",
|
||
radio: "📻",
|
||
radio_button: "🔘",
|
||
radioactive: "☢️",
|
||
railway_car: "🚃",
|
||
railway_track: "🛤",
|
||
rainbow: "🌈",
|
||
rainbow_flag: "🏳️‍🌈",
|
||
raised_back_of_hand: "🤚",
|
||
raised_hand_with_fingers_splayed: "🖐",
|
||
raised_hands: "🙌",
|
||
raising_hand_woman: "🙋",
|
||
raising_hand_man: "🙋‍♂️",
|
||
ram: "🐏",
|
||
ramen: "🍜",
|
||
rat: "🐀",
|
||
record_button: "⏺",
|
||
recycle: "♻️",
|
||
red_circle: "🔴",
|
||
registered: "®️",
|
||
relaxed: "☺️",
|
||
relieved: "😌",
|
||
reminder_ribbon: "🎗",
|
||
repeat: "🔁",
|
||
repeat_one: "🔂",
|
||
rescue_worker_helmet: "⛑",
|
||
restroom: "🚻",
|
||
revolving_hearts: "💞",
|
||
rewind: "⏪",
|
||
rhinoceros: "🦏",
|
||
ribbon: "🎀",
|
||
rice: "🍚",
|
||
rice_ball: "🍙",
|
||
rice_cracker: "🍘",
|
||
rice_scene: "🎑",
|
||
right_anger_bubble: "🗯",
|
||
ring: "💍",
|
||
robot: "🤖",
|
||
rocket: "🚀",
|
||
rofl: "🤣",
|
||
roll_eyes: "🙄",
|
||
roller_coaster: "🎢",
|
||
rooster: "🐓",
|
||
rose: "🌹",
|
||
rosette: "🏵",
|
||
rotating_light: "🚨",
|
||
round_pushpin: "📍",
|
||
rowing_man: "🚣",
|
||
rowing_woman: "🚣‍♀️",
|
||
rugby_football: "🏉",
|
||
running_man: "🏃",
|
||
running_shirt_with_sash: "🎽",
|
||
running_woman: "🏃‍♀️",
|
||
sa: "🈂️",
|
||
sagittarius: "♐️",
|
||
sake: "🍶",
|
||
sandal: "👡",
|
||
santa: "🎅",
|
||
satellite: "📡",
|
||
saxophone: "🎷",
|
||
school: "🏫",
|
||
school_satchel: "🎒",
|
||
scissors: "✂️",
|
||
scorpion: "🦂",
|
||
scorpius: "♏️",
|
||
scream: "😱",
|
||
scream_cat: "🙀",
|
||
scroll: "📜",
|
||
seat: "💺",
|
||
secret: "㊙️",
|
||
see_no_evil: "🙈",
|
||
seedling: "🌱",
|
||
selfie: "🤳",
|
||
shallow_pan_of_food: "🥘",
|
||
shamrock: "☘️",
|
||
shark: "🦈",
|
||
shaved_ice: "🍧",
|
||
sheep: "🐑",
|
||
shell: "🐚",
|
||
shield: "🛡",
|
||
shinto_shrine: "⛩",
|
||
ship: "🚢",
|
||
shirt: "👕",
|
||
shopping: "🛍",
|
||
shopping_cart: "🛒",
|
||
shower: "🚿",
|
||
shrimp: "🦐",
|
||
signal_strength: "📶",
|
||
six_pointed_star: "🔯",
|
||
ski: "🎿",
|
||
skier: "⛷",
|
||
skull: "💀",
|
||
skull_and_crossbones: "☠️",
|
||
sleeping: "😴",
|
||
sleeping_bed: "🛌",
|
||
sleepy: "😪",
|
||
slightly_frowning_face: "🙁",
|
||
slightly_smiling_face: "🙂",
|
||
slot_machine: "🎰",
|
||
small_airplane: "🛩",
|
||
small_blue_diamond: "🔹",
|
||
small_orange_diamond: "🔸",
|
||
small_red_triangle: "🔺",
|
||
small_red_triangle_down: "🔻",
|
||
smile: "😄",
|
||
smile_cat: "😸",
|
||
smiley: "😃",
|
||
smiley_cat: "😺",
|
||
smiling_imp: "😈",
|
||
smirk: "😏",
|
||
smirk_cat: "😼",
|
||
smoking: "🚬",
|
||
snail: "🐌",
|
||
snake: "🐍",
|
||
sneezing_face: "🤧",
|
||
snowboarder: "🏂",
|
||
snowflake: "❄️",
|
||
snowman: "⛄️",
|
||
snowman_with_snow: "☃️",
|
||
sob: "😭",
|
||
soccer: "⚽️",
|
||
soon: "🔜",
|
||
sos: "🆘",
|
||
sound: "🔉",
|
||
space_invader: "👾",
|
||
spades: "♠️",
|
||
spaghetti: "🍝",
|
||
sparkle: "❇️",
|
||
sparkler: "🎇",
|
||
sparkles: "✨",
|
||
sparkling_heart: "💖",
|
||
speak_no_evil: "🙊",
|
||
speaker: "🔈",
|
||
speaking_head: "🗣",
|
||
speech_balloon: "💬",
|
||
speedboat: "🚤",
|
||
spider: "🕷",
|
||
spider_web: "🕸",
|
||
spiral_calendar: "🗓",
|
||
spiral_notepad: "🗒",
|
||
spoon: "🥄",
|
||
squid: "🦑",
|
||
stadium: "🏟",
|
||
star: "⭐️",
|
||
star2: "🌟",
|
||
star_and_crescent: "☪️",
|
||
star_of_david: "✡️",
|
||
stars: "🌠",
|
||
station: "🚉",
|
||
statue_of_liberty: "🗽",
|
||
steam_locomotive: "🚂",
|
||
stew: "🍲",
|
||
stop_button: "⏹",
|
||
stop_sign: "🛑",
|
||
stopwatch: "⏱",
|
||
straight_ruler: "📏",
|
||
strawberry: "🍓",
|
||
stuck_out_tongue: "😛",
|
||
stuck_out_tongue_closed_eyes: "😝",
|
||
stuck_out_tongue_winking_eye: "😜",
|
||
studio_microphone: "🎙",
|
||
stuffed_flatbread: "🥙",
|
||
sun_behind_large_cloud: "🌥",
|
||
sun_behind_rain_cloud: "🌦",
|
||
sun_behind_small_cloud: "🌤",
|
||
sun_with_face: "🌞",
|
||
sunflower: "🌻",
|
||
sunglasses: "😎",
|
||
sunny: "☀️",
|
||
sunrise: "🌅",
|
||
sunrise_over_mountains: "🌄",
|
||
surfing_man: "🏄",
|
||
surfing_woman: "🏄‍♀️",
|
||
sushi: "🍣",
|
||
suspension_railway: "🚟",
|
||
sweat: "😓",
|
||
sweat_drops: "💦",
|
||
sweat_smile: "😅",
|
||
sweet_potato: "🍠",
|
||
swimming_man: "🏊",
|
||
swimming_woman: "🏊‍♀️",
|
||
symbols: "🔣",
|
||
synagogue: "🕍",
|
||
syringe: "💉",
|
||
taco: "🌮",
|
||
tada: "🎉",
|
||
tanabata_tree: "🎋",
|
||
taurus: "♉️",
|
||
taxi: "🚕",
|
||
tea: "🍵",
|
||
telephone_receiver: "📞",
|
||
telescope: "🔭",
|
||
tennis: "🎾",
|
||
tent: "⛺️",
|
||
thermometer: "🌡",
|
||
thinking: "🤔",
|
||
thought_balloon: "💭",
|
||
ticket: "🎫",
|
||
tickets: "🎟",
|
||
tiger: "🐯",
|
||
tiger2: "🐅",
|
||
timer_clock: "⏲",
|
||
tipping_hand_man: "💁‍♂️",
|
||
tired_face: "😫",
|
||
tm: "™️",
|
||
toilet: "🚽",
|
||
tokyo_tower: "🗼",
|
||
tomato: "🍅",
|
||
tongue: "👅",
|
||
top: "🔝",
|
||
tophat: "🎩",
|
||
tornado: "🌪",
|
||
trackball: "🖲",
|
||
tractor: "🚜",
|
||
traffic_light: "🚥",
|
||
train: "🚋",
|
||
train2: "🚆",
|
||
tram: "🚊",
|
||
triangular_flag_on_post: "🚩",
|
||
triangular_ruler: "📐",
|
||
trident: "🔱",
|
||
triumph: "😤",
|
||
trolleybus: "🚎",
|
||
trophy: "🏆",
|
||
tropical_drink: "🍹",
|
||
tropical_fish: "🐠",
|
||
truck: "🚚",
|
||
trumpet: "🎺",
|
||
tulip: "🌷",
|
||
tumbler_glass: "🥃",
|
||
turkey: "🦃",
|
||
turtle: "🐢",
|
||
tv: "📺",
|
||
twisted_rightwards_arrows: "🔀",
|
||
two_hearts: "💕",
|
||
two_men_holding_hands: "👬",
|
||
two_women_holding_hands: "👭",
|
||
u5272: "🈹",
|
||
u5408: "🈴",
|
||
u55b6: "🈺",
|
||
u6307: "🈯️",
|
||
u6708: "🈷️",
|
||
u6709: "🈶",
|
||
u6e80: "🈵",
|
||
u7121: "🈚️",
|
||
u7533: "🈸",
|
||
u7981: "🈲",
|
||
u7a7a: "🈳",
|
||
umbrella: "☔️",
|
||
unamused: "😒",
|
||
underage: "🔞",
|
||
unicorn: "🦄",
|
||
unlock: "🔓",
|
||
up: "🆙",
|
||
upside_down_face: "🙃",
|
||
v: "✌️",
|
||
vertical_traffic_light: "🚦",
|
||
vhs: "📼",
|
||
vibration_mode: "📳",
|
||
video_camera: "📹",
|
||
video_game: "🎮",
|
||
violin: "🎻",
|
||
virgo: "♍️",
|
||
volcano: "🌋",
|
||
volleyball: "🏐",
|
||
vs: "🆚",
|
||
vulcan_salute: "🖖",
|
||
walking_man: "🚶",
|
||
walking_woman: "🚶‍♀️",
|
||
waning_crescent_moon: "🌘",
|
||
waning_gibbous_moon: "🌖",
|
||
warning: "⚠️",
|
||
wastebasket: "🗑",
|
||
watch: "⌚️",
|
||
water_buffalo: "🐃",
|
||
watermelon: "🍉",
|
||
wave: "👋",
|
||
wavy_dash: "〰️",
|
||
waxing_crescent_moon: "🌒",
|
||
wc: "🚾",
|
||
weary: "😩",
|
||
wedding: "💒",
|
||
weight_lifting_man: "🏋️",
|
||
weight_lifting_woman: "🏋️‍♀️",
|
||
whale: "🐳",
|
||
whale2: "🐋",
|
||
wheel_of_dharma: "☸️",
|
||
wheelchair: "♿️",
|
||
white_check_mark: "✅",
|
||
white_circle: "⚪️",
|
||
white_flag: "🏳️",
|
||
white_flower: "💮",
|
||
white_large_square: "⬜️",
|
||
white_medium_small_square: "◽️",
|
||
white_medium_square: "◻️",
|
||
white_small_square: "▫️",
|
||
white_square_button: "🔳",
|
||
wilted_flower: "🥀",
|
||
wind_chime: "🎐",
|
||
wind_face: "🌬",
|
||
wine_glass: "🍷",
|
||
wink: "😉",
|
||
wolf: "🐺",
|
||
woman: "👩",
|
||
woman_artist: "👩‍🎨",
|
||
woman_astronaut: "👩‍🚀",
|
||
woman_cartwheeling: "🤸‍♀️",
|
||
woman_cook: "👩‍🍳",
|
||
woman_facepalming: "🤦‍♀️",
|
||
woman_factory_worker: "👩‍🏭",
|
||
woman_farmer: "👩‍🌾",
|
||
woman_firefighter: "👩‍🚒",
|
||
woman_health_worker: "👩‍⚕️",
|
||
woman_judge: "👩‍⚖️",
|
||
woman_juggling: "🤹‍♀️",
|
||
woman_mechanic: "👩‍🔧",
|
||
woman_office_worker: "👩‍💼",
|
||
woman_pilot: "👩‍✈️",
|
||
woman_playing_handball: "🤾‍♀️",
|
||
woman_playing_water_polo: "🤽‍♀️",
|
||
woman_scientist: "👩‍🔬",
|
||
woman_shrugging: "🤷‍♀️",
|
||
woman_singer: "👩‍🎤",
|
||
woman_student: "👩‍🎓",
|
||
woman_teacher: "👩‍🏫",
|
||
woman_technologist: "👩‍💻",
|
||
woman_with_turban: "👳‍♀️",
|
||
womans_clothes: "👚",
|
||
womans_hat: "👒",
|
||
women_wrestling: "🤼‍♀️",
|
||
womens: "🚺",
|
||
world_map: "🗺",
|
||
worried: "😟",
|
||
wrench: "🔧",
|
||
writing_hand: "✍️",
|
||
x: "❌",
|
||
yellow_heart: "💛",
|
||
yen: "💴",
|
||
yin_yang: "☯️",
|
||
yum: "😋",
|
||
zap: "⚡️",
|
||
zipper_mouth_face: "🤐",
|
||
zzz: "💤",
|
||
octocat: '<img alt=":octocat:" height="20" width="20" align="absmiddle" src="https://assets-cdn.github.com/images/icons/emoji/octocat.png">',
|
||
showdown: "<span style=\"font-family: 'Anonymous Pro', monospace; text-decoration: underline; text-decoration-style: dashed; text-decoration-color: #3e8b8a;text-underline-position: under;\">S</span>"
|
||
}, x.Converter = function(e) {
|
||
"use strict";
|
||
var r, t, n = {},
|
||
i = [],
|
||
l = [],
|
||
o = {},
|
||
a = h,
|
||
s = {
|
||
parsed: {},
|
||
raw: "",
|
||
format: ""
|
||
};
|
||
for (r in e = e || {}, p) p.hasOwnProperty(r) && (n[r] = p[r]);
|
||
if ("object" != typeof e) throw Error("Converter expects the passed parameter to be an object, but " + typeof e + " was passed instead.");
|
||
for (t in e) e.hasOwnProperty(t) && (n[t] = e[t]);
|
||
|
||
function c(e, r) {
|
||
if (r = r || null, x.helper.isString(e)) {
|
||
if (r = e = x.helper.stdExtName(e), x.extensions[e]) {
|
||
console.warn("DEPRECATION WARNING: " + e + " is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!");
|
||
var t = x.extensions[e],
|
||
a = e;
|
||
if ("function" == typeof t && (t = t(new x.Converter)), x.helper.isArray(t) || (t = [t]), !(a = g(t, a)).valid) throw Error(a.error);
|
||
for (var n = 0; n < t.length; ++n) switch (t[n].type) {
|
||
case "lang":
|
||
i.push(t[n]);
|
||
break;
|
||
case "output":
|
||
l.push(t[n]);
|
||
break;
|
||
default:
|
||
throw Error("Extension loader error: Type unrecognized!!!")
|
||
}
|
||
return
|
||
}
|
||
if (x.helper.isUndefined(d[e])) throw Error('Extension "' + e + '" could not be loaded. It was either not found or is not a valid extension.');
|
||
e = d[e]
|
||
}
|
||
"function" == typeof e && (e = e());
|
||
a = g(e = x.helper.isArray(e) ? e : [e], r);
|
||
if (!a.valid) throw Error(a.error);
|
||
for (var s = 0; s < e.length; ++s) {
|
||
switch (e[s].type) {
|
||
case "lang":
|
||
i.push(e[s]);
|
||
break;
|
||
case "output":
|
||
l.push(e[s])
|
||
}
|
||
if (e[s].hasOwnProperty("listeners"))
|
||
for (var o in e[s].listeners) e[s].listeners.hasOwnProperty(o) && u(o, e[s].listeners[o])
|
||
}
|
||
}
|
||
|
||
function u(e, r) {
|
||
if (!x.helper.isString(e)) throw Error("Invalid argument in converter.listen() method: name must be a string, but " + typeof e + " given");
|
||
if ("function" != typeof r) throw Error("Invalid argument in converter.listen() method: callback must be a function, but " + typeof r + " given");
|
||
o.hasOwnProperty(e) || (o[e] = []), o[e].push(r)
|
||
}
|
||
n.extensions && x.helper.forEach(n.extensions, c), this._dispatch = function(e, r, t, a) {
|
||
if (o.hasOwnProperty(e))
|
||
for (var n = 0; n < o[e].length; ++n) {
|
||
var s = o[e][n](e, r, this, t, a);
|
||
s && void 0 !== s && (r = s)
|
||
}
|
||
return r
|
||
}, this.listen = function(e, r) {
|
||
return u(e, r), this
|
||
}, this.makeHtml = function(r) {
|
||
if (!r) return r;
|
||
var e, t, a = {
|
||
gHtmlBlocks: [],
|
||
gHtmlMdBlocks: [],
|
||
gHtmlSpans: [],
|
||
gUrls: {},
|
||
gTitles: {},
|
||
gDimensions: {},
|
||
gListLevel: 0,
|
||
hashLinkCounts: {},
|
||
langExtensions: i,
|
||
outputModifiers: l,
|
||
converter: this,
|
||
ghCodeBlocks: [],
|
||
metadata: {
|
||
parsed: {},
|
||
raw: "",
|
||
format: ""
|
||
}
|
||
};
|
||
return r = (r = (r = (r = (r = r.replace(/¨/g, "¨T")).replace(/\$/g, "¨D")).replace(/\r\n/g, "\n")).replace(/\r/g, "\n")).replace(/\u00A0/g, " "), n.smartIndentationFix && (t = (e = r).match(/^\s*/)[0].length, t = new RegExp("^\\s{0," + t + "}", "gm"), r = e.replace(t, "")), r = "\n\n" + r + "\n\n", r = (r = x.subParser("detab")(r, n, a)).replace(/^[ \t]+$/gm, ""), x.helper.forEach(i, function(e) {
|
||
r = x.subParser("runExtension")(e, r, n, a)
|
||
}), r = x.subParser("metadata")(r, n, a), r = x.subParser("hashPreCodeTags")(r, n, a), r = x.subParser("githubCodeBlocks")(r, n, a), r = x.subParser("hashHTMLBlocks")(r, n, a), r = x.subParser("hashCodeTags")(r, n, a), r = x.subParser("stripLinkDefinitions")(r, n, a), r = x.subParser("blockGamut")(r, n, a), r = x.subParser("unhashHTMLSpans")(r, n, a), r = (r = (r = x.subParser("unescapeSpecialChars")(r, n, a)).replace(/¨D/g, "$$")).replace(/¨T/g, "¨"), r = x.subParser("completeHTMLDocument")(r, n, a), x.helper.forEach(l, function(e) {
|
||
r = x.subParser("runExtension")(e, r, n, a)
|
||
}), s = a.metadata, r
|
||
}, this.makeMarkdown = this.makeMd = function(e, r) {
|
||
if (e = (e = (e = e.replace(/\r\n/g, "\n")).replace(/\r/g, "\n")).replace(/>[ \t]+</, ">¨NBSP;<"), !r) {
|
||
if (!window || !window.document) throw new Error("HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM");
|
||
r = window.document
|
||
}
|
||
for (var r = r.createElement("div"), t = (r.innerHTML = e, {
|
||
preList: function(e) {
|
||
for (var r = e.querySelectorAll("pre"), t = [], a = 0; a < r.length; ++a)
|
||
if (1 === r[a].childElementCount && "code" === r[a].firstChild.tagName.toLowerCase()) {
|
||
var n = r[a].firstChild.innerHTML.trim(),
|
||
s = r[a].firstChild.getAttribute("data-language") || "";
|
||
if ("" === s)
|
||
for (var o = r[a].firstChild.className.split(" "), i = 0; i < o.length; ++i) {
|
||
var l = o[i].match(/^language-(.+)$/);
|
||
if (null !== l) {
|
||
s = l[1];
|
||
break
|
||
}
|
||
}
|
||
n = x.helper.unescapeHTMLEntities(n), t.push(n), r[a].outerHTML = '<precode language="' + s + '" precodenum="' + a.toString() + '"></precode>'
|
||
} else t.push(r[a].innerHTML), r[a].innerHTML = "", r[a].setAttribute("prenum", a.toString());
|
||
return t
|
||
}(r)
|
||
}), a = (! function e(r) {
|
||
for (var t = 0; t < r.childNodes.length; ++t) {
|
||
var a = r.childNodes[t];
|
||
3 === a.nodeType ? /\S/.test(a.nodeValue) || /^[ ]+$/.test(a.nodeValue) ? (a.nodeValue = a.nodeValue.split("\n").join(" "), a.nodeValue = a.nodeValue.replace(/(\s)+/g, "$1")) : (r.removeChild(a), --t) : 1 === a.nodeType && e(a)
|
||
}
|
||
}(r), r.childNodes), n = "", s = 0; s < a.length; s++) n += x.subParser("makeMarkdown.node")(a[s], t);
|
||
return n
|
||
}, this.setOption = function(e, r) {
|
||
n[e] = r
|
||
}, this.getOption = function(e) {
|
||
return n[e]
|
||
}, this.getOptions = function() {
|
||
return n
|
||
}, this.addExtension = function(e, r) {
|
||
c(e, r = r || null)
|
||
}, this.useExtension = function(e) {
|
||
c(e)
|
||
}, this.setFlavor = function(e) {
|
||
if (!_.hasOwnProperty(e)) throw Error(e + " flavor was not found");
|
||
var r, t = _[e];
|
||
for (r in a = e, t) t.hasOwnProperty(r) && (n[r] = t[r])
|
||
}, this.getFlavor = function() {
|
||
return a
|
||
}, this.removeExtension = function(e) {
|
||
x.helper.isArray(e) || (e = [e]);
|
||
for (var r = 0; r < e.length; ++r) {
|
||
for (var t = e[r], a = 0; a < i.length; ++a) i[a] === t && i.splice(a, 1);
|
||
for (var n = 0; n < l.length; ++n) l[n] === t && l.splice(n, 1)
|
||
}
|
||
}, this.getAllExtensions = function() {
|
||
return {
|
||
language: i,
|
||
output: l
|
||
}
|
||
}, this.getMetadata = function(e) {
|
||
return e ? s.raw : s.parsed
|
||
}, this.getMetadataFormat = function() {
|
||
return s.format
|
||
}, this._setMetadataPair = function(e, r) {
|
||
s.parsed[e] = r
|
||
}, this._setMetadataFormat = function(e) {
|
||
s.format = e
|
||
}, this._setMetadataRaw = function(e) {
|
||
s.raw = e
|
||
}
|
||
}, x.subParser("anchors", function(e, i, l) {
|
||
"use strict";
|
||
|
||
function r(e, r, t, a, n, s, o) {
|
||
if (x.helper.isUndefined(o) && (o = ""), t = t.toLowerCase(), -1 < e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)) a = "";
|
||
else if (!a) {
|
||
if (a = "#" + (t = t || r.toLowerCase().replace(/ ?\n/g, " ")), x.helper.isUndefined(l.gUrls[t])) return e;
|
||
a = l.gUrls[t], x.helper.isUndefined(l.gTitles[t]) || (o = l.gTitles[t])
|
||
}
|
||
return e = '<a href="' + (a = a.replace(x.helper.regexes.asteriskDashAndColon, x.helper.escapeCharactersCallback)) + '"', "" !== o && null !== o && (e += ' title="' + (o = (o = o.replace(/"/g, """)).replace(x.helper.regexes.asteriskDashAndColon, x.helper.escapeCharactersCallback)) + '"'), i.openLinksInNewWindow && !/^#/.test(a) && (e += ' rel="noopener noreferrer" target="¨E95Eblank"'), e += ">" + r + "</a>"
|
||
}
|
||
return e = (e = (e = (e = (e = l.converter._dispatch("anchors.before", e, i, l)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g, r)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g, r)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g, r)).replace(/\[([^\[\]]+)]()()()()()/g, r), i.ghMentions && (e = e.replace(/(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d.-]+?[a-z\d]+)*))/gim, function(e, r, t, a, n) {
|
||
if ("\\" === t) return r + a;
|
||
if (!x.helper.isString(i.ghMentionsLink)) throw new Error("ghMentionsLink option must be a string");
|
||
t = "";
|
||
return r + '<a href="' + i.ghMentionsLink.replace(/\{u}/g, n) + '"' + (t = i.openLinksInNewWindow ? ' rel="noopener noreferrer" target="¨E95Eblank"' : t) + ">" + a + "</a>"
|
||
})), e = l.converter._dispatch("anchors.after", e, i, l)
|
||
});
|
||
var i = /([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,
|
||
l = /([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,
|
||
c = /()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,
|
||
m = /(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim,
|
||
f = /<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi;
|
||
x.subParser("autoLinks", function(e, r, t) {
|
||
"use strict";
|
||
return e = (e = (e = t.converter._dispatch("autoLinks.before", e, r, t)).replace(c, s(r))).replace(f, o(r, t)), e = t.converter._dispatch("autoLinks.after", e, r, t)
|
||
}), x.subParser("simplifiedAutoLinks", function(e, r, t) {
|
||
"use strict";
|
||
return r.simplifiedAutoLink ? (e = t.converter._dispatch("simplifiedAutoLinks.before", e, r, t), e = (e = r.excludeTrailingPunctuationFromURLs ? e.replace(l, s(r)) : e.replace(i, s(r))).replace(m, o(r, t)), t.converter._dispatch("simplifiedAutoLinks.after", e, r, t)) : e
|
||
}), x.subParser("blockGamut", function(e, r, t) {
|
||
"use strict";
|
||
return e = t.converter._dispatch("blockGamut.before", e, r, t), e = x.subParser("blockQuotes")(e, r, t), e = x.subParser("headers")(e, r, t), e = x.subParser("horizontalRule")(e, r, t), e = x.subParser("lists")(e, r, t), e = x.subParser("codeBlocks")(e, r, t), e = x.subParser("tables")(e, r, t), e = x.subParser("hashHTMLBlocks")(e, r, t), e = x.subParser("paragraphs")(e, r, t), e = t.converter._dispatch("blockGamut.after", e, r, t)
|
||
}), x.subParser("blockQuotes", function(e, r, t) {
|
||
"use strict";
|
||
e = t.converter._dispatch("blockQuotes.before", e, r, t);
|
||
var a = /(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;
|
||
return r.splitAdjacentBlockquotes && (a = /^ {0,3}>[\s\S]*?(?:\n\n)/gm), e = (e += "\n\n").replace(a, function(e) {
|
||
return e = (e = (e = e.replace(/^[ \t]*>[ \t]?/gm, "")).replace(/¨0/g, "")).replace(/^[ \t]+$/gm, ""), e = x.subParser("githubCodeBlocks")(e, r, t), e = (e = (e = x.subParser("blockGamut")(e, r, t)).replace(/(^|\n)/g, "$1 ")).replace(/(\s*<pre>[^\r]+?<\/pre>)/gm, function(e, r) {
|
||
return r.replace(/^ /gm, "¨0").replace(/¨0/g, "")
|
||
}), x.subParser("hashBlock")("<blockquote>\n" + e + "\n</blockquote>", r, t)
|
||
}), e = t.converter._dispatch("blockQuotes.after", e, r, t)
|
||
}), x.subParser("codeBlocks", function(e, n, s) {
|
||
"use strict";
|
||
e = s.converter._dispatch("codeBlocks.before", e, n, s);
|
||
return e = (e = (e += "¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g, function(e, r, t) {
|
||
var a = "\n",
|
||
r = x.subParser("outdent")(r, n, s);
|
||
return r = x.subParser("encodeCode")(r, n, s), r = "<pre><code>" + (r = (r = (r = x.subParser("detab")(r, n, s)).replace(/^\n+/g, "")).replace(/\n+$/g, "")) + (a = n.omitExtraWLInCodeBlocks ? "" : a) + "</code></pre>", x.subParser("hashBlock")(r, n, s) + t
|
||
})).replace(/¨0/, ""), e = s.converter._dispatch("codeBlocks.after", e, n, s)
|
||
}), x.subParser("codeSpans", function(e, n, s) {
|
||
"use strict";
|
||
return e = (e = void 0 === (e = s.converter._dispatch("codeSpans.before", e, n, s)) ? "" : e).replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, function(e, r, t, a) {
|
||
return a = (a = a.replace(/^([ \t]*)/g, "")).replace(/[ \t]*$/g, ""), a = r + "<code>" + (a = x.subParser("encodeCode")(a, n, s)) + "</code>", a = x.subParser("hashHTMLSpans")(a, n, s)
|
||
}), e = s.converter._dispatch("codeSpans.after", e, n, s)
|
||
}), x.subParser("completeHTMLDocument", function(e, r, t) {
|
||
"use strict";
|
||
if (!r.completeHTMLDocument) return e;
|
||
e = t.converter._dispatch("completeHTMLDocument.before", e, r, t);
|
||
var a, n = "html",
|
||
s = "<!DOCTYPE HTML>\n",
|
||
o = "",
|
||
i = '<meta charset="utf-8">\n',
|
||
l = "",
|
||
c = "";
|
||
for (a in void 0 !== t.metadata.parsed.doctype && (s = "<!DOCTYPE " + t.metadata.parsed.doctype + ">\n", "html" !== (n = t.metadata.parsed.doctype.toString().toLowerCase()) && "html5" !== n || (i = '<meta charset="utf-8">')), t.metadata.parsed)
|
||
if (t.metadata.parsed.hasOwnProperty(a)) switch (a.toLowerCase()) {
|
||
case "doctype":
|
||
break;
|
||
case "title":
|
||
o = "<title>" + t.metadata.parsed.title + "</title>\n";
|
||
break;
|
||
case "charset":
|
||
i = "html" === n || "html5" === n ? '<meta charset="' + t.metadata.parsed.charset + '">\n' : '<meta name="charset" content="' + t.metadata.parsed.charset + '">\n';
|
||
break;
|
||
case "language":
|
||
case "lang":
|
||
l = ' lang="' + t.metadata.parsed[a] + '"', c += '<meta name="' + a + '" content="' + t.metadata.parsed[a] + '">\n';
|
||
break;
|
||
default:
|
||
c += '<meta name="' + a + '" content="' + t.metadata.parsed[a] + '">\n'
|
||
}
|
||
return e = s + "<html" + l + ">\n<head>\n" + o + i + c + "</head>\n<body>\n" + e.trim() + "\n</body>\n</html>", e = t.converter._dispatch("completeHTMLDocument.after", e, r, t)
|
||
}), x.subParser("detab", function(e, r, t) {
|
||
"use strict";
|
||
return e = (e = (e = (e = (e = (e = t.converter._dispatch("detab.before", e, r, t)).replace(/\t(?=\t)/g, " ")).replace(/\t/g, "¨A¨B")).replace(/¨B(.+?)¨A/g, function(e, r) {
|
||
for (var t = r, a = 4 - t.length % 4, n = 0; n < a; n++) t += " ";
|
||
return t
|
||
})).replace(/¨A/g, " ")).replace(/¨B/g, ""), e = t.converter._dispatch("detab.after", e, r, t)
|
||
}), x.subParser("ellipsis", function(e, r, t) {
|
||
"use strict";
|
||
return r.ellipsis ? (e = (e = t.converter._dispatch("ellipsis.before", e, r, t)).replace(/\.\.\./g, "…"), t.converter._dispatch("ellipsis.after", e, r, t)) : e
|
||
}), x.subParser("emoji", function(e, r, t) {
|
||
"use strict";
|
||
if (!r.emoji) return e;
|
||
return e = (e = t.converter._dispatch("emoji.before", e, r, t)).replace(/:([\S]+?):/g, function(e, r) {
|
||
return x.helper.emojis.hasOwnProperty(r) ? x.helper.emojis[r] : e
|
||
}), e = t.converter._dispatch("emoji.after", e, r, t)
|
||
}), x.subParser("encodeAmpsAndAngles", function(e, r, t) {
|
||
"use strict";
|
||
return e = (e = (e = (e = (e = t.converter._dispatch("encodeAmpsAndAngles.before", e, r, t)).replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, "&")).replace(/<(?![a-z\/?$!])/gi, "<")).replace(/</g, "<")).replace(/>/g, ">"), e = t.converter._dispatch("encodeAmpsAndAngles.after", e, r, t)
|
||
}), x.subParser("encodeBackslashEscapes", function(e, r, t) {
|
||
"use strict";
|
||
return e = (e = (e = t.converter._dispatch("encodeBackslashEscapes.before", e, r, t)).replace(/\\(\\)/g, x.helper.escapeCharactersCallback)).replace(/\\([`*_{}\[\]()>#+.!~=|:-])/g, x.helper.escapeCharactersCallback), e = t.converter._dispatch("encodeBackslashEscapes.after", e, r, t)
|
||
}), x.subParser("encodeCode", function(e, r, t) {
|
||
"use strict";
|
||
return e = (e = t.converter._dispatch("encodeCode.before", e, r, t)).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/([*_{}\[\]\\=~-])/g, x.helper.escapeCharactersCallback), e = t.converter._dispatch("encodeCode.after", e, r, t)
|
||
}), x.subParser("escapeSpecialCharsWithinTagAttributes", function(e, r, t) {
|
||
"use strict";
|
||
return e = (e = (e = t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before", e, r, t)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi, function(e) {
|
||
return e.replace(/(.)<\/?code>(?=.)/g, "$1`").replace(/([\\`*_~=|])/g, x.helper.escapeCharactersCallback)
|
||
})).replace(/<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi, function(e) {
|
||
return e.replace(/([\\`*_~=|])/g, x.helper.escapeCharactersCallback)
|
||
}), e = t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after", e, r, t)
|
||
}), x.subParser("githubCodeBlocks", function(e, s, o) {
|
||
"use strict";
|
||
return s.ghCodeBlocks ? (e = o.converter._dispatch("githubCodeBlocks.before", e, s, o), e = (e = (e += "¨0").replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g, function(e, r, t, a) {
|
||
var n = s.omitExtraWLInCodeBlocks ? "" : "\n";
|
||
return a = x.subParser("encodeCode")(a, s, o), a = "<pre><code" + (t ? ' class="' + t + " language-" + t + '"' : "") + ">" + (a = (a = (a = x.subParser("detab")(a, s, o)).replace(/^\n+/g, "")).replace(/\n+$/g, "")) + n + "</code></pre>", a = x.subParser("hashBlock")(a, s, o), "\n\n¨G" + (o.ghCodeBlocks.push({
|
||
text: e,
|
||
codeblock: a
|
||
}) - 1) + "G\n\n"
|
||
})).replace(/¨0/, ""), o.converter._dispatch("githubCodeBlocks.after", e, s, o)) : e
|
||
}), x.subParser("hashBlock", function(e, r, t) {
|
||
"use strict";
|
||
return e = (e = t.converter._dispatch("hashBlock.before", e, r, t)).replace(/(^\n+|\n+$)/g, ""), e = "\n\n¨K" + (t.gHtmlBlocks.push(e) - 1) + "K\n\n", e = t.converter._dispatch("hashBlock.after", e, r, t)
|
||
}), x.subParser("hashCodeTags", function(e, n, s) {
|
||
"use strict";
|
||
e = s.converter._dispatch("hashCodeTags.before", e, n, s);
|
||
return e = x.helper.replaceRecursiveRegExp(e, function(e, r, t, a) {
|
||
t = t + x.subParser("encodeCode")(r, n, s) + a;
|
||
return "¨C" + (s.gHtmlSpans.push(t) - 1) + "C"
|
||
}, "<code\\b[^>]*>", "</code>", "gim"), e = s.converter._dispatch("hashCodeTags.after", e, n, s)
|
||
}), x.subParser("hashElement", function(e, r, t) {
|
||
"use strict";
|
||
return function(e, r) {
|
||
return r = (r = (r = r.replace(/\n\n/g, "\n")).replace(/^\n/, "")).replace(/\n+$/g, ""), r = "\n\n¨K" + (t.gHtmlBlocks.push(r) - 1) + "K\n\n"
|
||
}
|
||
}), x.subParser("hashHTMLBlocks", function(e, r, n) {
|
||
"use strict";
|
||
e = n.converter._dispatch("hashHTMLBlocks.before", e, r, n);
|
||
|
||
function t(e, r, t, a) {
|
||
return -1 !== t.search(/\bmarkdown\b/) && (e = t + n.converter.makeHtml(r) + a), "\n\n¨K" + (n.gHtmlBlocks.push(e) - 1) + "K\n\n"
|
||
}
|
||
var a = ["pre", "div", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "table", "dl", "ol", "ul", "script", "noscript", "form", "fieldset", "iframe", "math", "style", "section", "header", "footer", "nav", "article", "aside", "address", "audio", "canvas", "figure", "hgroup", "output", "video", "p"];
|
||
r.backslashEscapesHTMLTags && (e = e.replace(/\\<(\/?[^>]+?)>/g, function(e, r) {
|
||
return "<" + r + ">"
|
||
}));
|
||
for (var s = 0; s < a.length; ++s)
|
||
for (var o = new RegExp("^ {0,3}(<" + a[s] + "\\b[^>]*>)", "im"), i = "<" + a[s] + "\\b[^>]*>", u = "</" + a[s] + ">"; - 1 !== (l = x.helper.regexIndexOf(e, o));) {
|
||
var l = x.helper.splitAtIndex(e, l),
|
||
c = x.helper.replaceRecursiveRegExp(l[1], t, i, u, "im");
|
||
if (c === l[1]) break;
|
||
e = l[0].concat(c)
|
||
}
|
||
return e = e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, x.subParser("hashElement")(e, r, n)), e = (e = x.helper.replaceRecursiveRegExp(e, function(e) {
|
||
return "\n\n¨K" + (n.gHtmlBlocks.push(e) - 1) + "K\n\n"
|
||
}, "^ {0,3}\x3c!--", "--\x3e", "gm")).replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g, x.subParser("hashElement")(e, r, n)), e = n.converter._dispatch("hashHTMLBlocks.after", e, r, n)
|
||
}), x.subParser("hashHTMLSpans", function(e, r, t) {
|
||
"use strict";
|
||
|
||
function a(e) {
|
||
return "¨C" + (t.gHtmlSpans.push(e) - 1) + "C"
|
||
}
|
||
return e = (e = (e = (e = (e = t.converter._dispatch("hashHTMLSpans.before", e, r, t)).replace(/<[^>]+?\/>/gi, a)).replace(/<([^>]+?)>[\s\S]*?<\/\1>/g, a)).replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g, a)).replace(/<[^>]+?>/gi, a), e = t.converter._dispatch("hashHTMLSpans.after", e, r, t)
|
||
}), x.subParser("unhashHTMLSpans", function(e, r, t) {
|
||
"use strict";
|
||
e = t.converter._dispatch("unhashHTMLSpans.before", e, r, t);
|
||
for (var a = 0; a < t.gHtmlSpans.length; ++a) {
|
||
for (var n = t.gHtmlSpans[a], s = 0;
|
||
/¨C(\d+)C/.test(n);) {
|
||
var o = RegExp.$1,
|
||
n = n.replace("¨C" + o + "C", t.gHtmlSpans[o]);
|
||
if (10 === s) {
|
||
console.error("maximum nesting of 10 spans reached!!!");
|
||
break
|
||
}++s
|
||
}
|
||
e = e.replace("¨C" + a + "C", n)
|
||
}
|
||
return e = t.converter._dispatch("unhashHTMLSpans.after", e, r, t)
|
||
}), x.subParser("hashPreCodeTags", function(e, n, s) {
|
||
"use strict";
|
||
e = s.converter._dispatch("hashPreCodeTags.before", e, n, s);
|
||
return e = x.helper.replaceRecursiveRegExp(e, function(e, r, t, a) {
|
||
t = t + x.subParser("encodeCode")(r, n, s) + a;
|
||
return "\n\n¨G" + (s.ghCodeBlocks.push({
|
||
text: e,
|
||
codeblock: t
|
||
}) - 1) + "G\n\n"
|
||
}, "^ {0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>", "^ {0,3}</code>\\s*</pre>", "gim"), e = s.converter._dispatch("hashPreCodeTags.after", e, n, s)
|
||
}), x.subParser("headers", function(e, n, s) {
|
||
"use strict";
|
||
e = s.converter._dispatch("headers.before", e, n, s);
|
||
var o = isNaN(parseInt(n.headerLevelStart)) ? 1 : parseInt(n.headerLevelStart),
|
||
r = n.smoothLivePreview ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm,
|
||
t = n.smoothLivePreview ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm,
|
||
r = (e = (e = e.replace(r, function(e, r) {
|
||
var t = x.subParser("spanGamut")(r, n, s),
|
||
r = n.noHeaderId ? "" : ' id="' + i(r) + '"',
|
||
r = "<h" + o + r + ">" + t + "</h" + o + ">";
|
||
return x.subParser("hashBlock")(r, n, s)
|
||
})).replace(t, function(e, r) {
|
||
var t = x.subParser("spanGamut")(r, n, s),
|
||
r = n.noHeaderId ? "" : ' id="' + i(r) + '"',
|
||
a = o + 1,
|
||
r = "<h" + a + r + ">" + t + "</h" + a + ">";
|
||
return x.subParser("hashBlock")(r, n, s)
|
||
}), n.requireSpaceBeforeHeadingText ? /^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm : /^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm);
|
||
|
||
function i(e) {
|
||
var r;
|
||
return !n.customizedHeaderId || (r = e.match(/\{([^{]+?)}\s*$/)) && r[1] && (e = r[1]), r = e, e = x.helper.isString(n.prefixHeaderId) ? n.prefixHeaderId : !0 === n.prefixHeaderId ? "section-" : "", n.rawPrefixHeaderId || (r = e + r), r = (n.ghCompatibleHeaderId ? r.replace(/ /g, "-").replace(/&/g, "").replace(/¨T/g, "").replace(/¨D/g, "").replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g, "") : n.rawHeaderId ? r.replace(/ /g, "-").replace(/&/g, "&").replace(/¨T/g, "¨").replace(/¨D/g, "$").replace(/["']/g, "-") : r.replace(/[^\w]/g, "")).toLowerCase(), n.rawPrefixHeaderId && (r = e + r), s.hashLinkCounts[r] ? r = r + "-" + s.hashLinkCounts[r]++ : s.hashLinkCounts[r] = 1, r
|
||
}
|
||
return e = e.replace(r, function(e, r, t) {
|
||
var a = t,
|
||
a = (n.customizedHeaderId && (a = t.replace(/\s?\{([^{]+?)}\s*$/, "")), x.subParser("spanGamut")(a, n, s)),
|
||
t = n.noHeaderId ? "" : ' id="' + i(t) + '"',
|
||
r = o - 1 + r.length,
|
||
t = "<h" + r + t + ">" + a + "</h" + r + ">";
|
||
return x.subParser("hashBlock")(t, n, s)
|
||
}), e = s.converter._dispatch("headers.after", e, n, s)
|
||
}), x.subParser("horizontalRule", function(e, r, t) {
|
||
"use strict";
|
||
e = t.converter._dispatch("horizontalRule.before", e, r, t);
|
||
var a = x.subParser("hashBlock")("<hr />", r, t);
|
||
return e = (e = (e = e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm, a)).replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm, a)).replace(/^ {0,2}( ?_){3,}[ \t]*$/gm, a), e = t.converter._dispatch("horizontalRule.after", e, r, t)
|
||
}), x.subParser("images", function(e, r, d) {
|
||
"use strict";
|
||
|
||
function l(e, r, t, a, n, s, u, o) {
|
||
var i = d.gUrls,
|
||
l = d.gTitles,
|
||
c = d.gDimensions;
|
||
if (t = t.toLowerCase(), o = o || "", -1 < e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)) a = "";
|
||
else if ("" === a || null === a) {
|
||
if (a = "#" + (t = "" !== t && null !== t ? t : r.toLowerCase().replace(/ ?\n/g, " ")), x.helper.isUndefined(i[t])) return e;
|
||
a = i[t], x.helper.isUndefined(l[t]) || (o = l[t]), x.helper.isUndefined(c[t]) || (n = c[t].width, s = c[t].height)
|
||
}
|
||
r = r.replace(/"/g, """).replace(x.helper.regexes.asteriskDashAndColon, x.helper.escapeCharactersCallback);
|
||
e = '<img src="' + (a = a.replace(x.helper.regexes.asteriskDashAndColon, x.helper.escapeCharactersCallback)) + '" alt="' + r + '"';
|
||
return o && x.helper.isString(o) && (e += ' title="' + (o = o.replace(/"/g, """).replace(x.helper.regexes.asteriskDashAndColon, x.helper.escapeCharactersCallback)) + '"'), n && s && (e = e + (' width="' + (n = "*" === n ? "auto" : n)) + '" height="' + (s = "*" === s ? "auto" : s) + '"'), e += " />"
|
||
}
|
||
return e = (e = (e = (e = (e = (e = d.converter._dispatch("images.before", e, r, d)).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g, l)).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g, function(e, r, t, a, n, s, o, i) {
|
||
return l(e, r, t, a = a.replace(/\s/g, ""), n, s, 0, i)
|
||
})).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g, l)).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g, l)).replace(/!\[([^\[\]]+)]()()()()()/g, l), e = d.converter._dispatch("images.after", e, r, d)
|
||
}), x.subParser("italicsAndBold", function(e, r, t) {
|
||
"use strict";
|
||
return e = t.converter._dispatch("italicsAndBold.before", e, r, t), e = r.literalMidWordUnderscores ? (e = (e = e.replace(/\b___(\S[\s\S]*?)___\b/g, function(e, r) {
|
||
return "<strong><em>" + r + "</em></strong>"
|
||
})).replace(/\b__(\S[\s\S]*?)__\b/g, function(e, r) {
|
||
return "<strong>" + r + "</strong>"
|
||
})).replace(/\b_(\S[\s\S]*?)_\b/g, function(e, r) {
|
||
return "<em>" + r + "</em>"
|
||
}) : (e = (e = e.replace(/___(\S[\s\S]*?)___/g, function(e, r) {
|
||
return /\S$/.test(r) ? "<strong><em>" + r + "</em></strong>" : e
|
||
})).replace(/__(\S[\s\S]*?)__/g, function(e, r) {
|
||
return /\S$/.test(r) ? "<strong>" + r + "</strong>" : e
|
||
})).replace(/_([^\s_][\s\S]*?)_/g, function(e, r) {
|
||
return /\S$/.test(r) ? "<em>" + r + "</em>" : e
|
||
}), e = r.literalMidWordAsterisks ? (e = (e = e.replace(/([^*]|^)\B\*\*\*(\S[\s\S]*?)\*\*\*\B(?!\*)/g, function(e, r, t) {
|
||
return r + "<strong><em>" + t + "</em></strong>"
|
||
})).replace(/([^*]|^)\B\*\*(\S[\s\S]*?)\*\*\B(?!\*)/g, function(e, r, t) {
|
||
return r + "<strong>" + t + "</strong>"
|
||
})).replace(/([^*]|^)\B\*(\S[\s\S]*?)\*\B(?!\*)/g, function(e, r, t) {
|
||
return r + "<em>" + t + "</em>"
|
||
}) : (e = (e = e.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function(e, r) {
|
||
return /\S$/.test(r) ? "<strong><em>" + r + "</em></strong>" : e
|
||
})).replace(/\*\*(\S[\s\S]*?)\*\*/g, function(e, r) {
|
||
return /\S$/.test(r) ? "<strong>" + r + "</strong>" : e
|
||
})).replace(/\*([^\s*][\s\S]*?)\*/g, function(e, r) {
|
||
return /\S$/.test(r) ? "<em>" + r + "</em>" : e
|
||
}), e = t.converter._dispatch("italicsAndBold.after", e, r, t)
|
||
}), x.subParser("lists", function(e, d, c) {
|
||
"use strict";
|
||
|
||
function p(e, r) {
|
||
c.gListLevel++, e = e.replace(/\n{2,}$/, "\n");
|
||
var t = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,
|
||
l = /\n[ \t]*\n(?!¨0)/.test(e += "¨0");
|
||
return d.disableForced4SpacesIndentedSublists && (t = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm), e = (e = e.replace(t, function(e, r, t, a, n, s, o) {
|
||
o = o && "" !== o.trim();
|
||
var n = x.subParser("outdent")(n, d, c),
|
||
i = "";
|
||
return s && d.tasklists && (i = ' class="task-list-item" style="list-style-type: none;"', n = n.replace(/^[ \t]*\[(x|X| )?]/m, function() {
|
||
var e = '<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"';
|
||
return o && (e += " checked"), e += ">"
|
||
})), n = n.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g, function(e) {
|
||
return "¨A" + e
|
||
}), n = "<li" + i + ">" + (n = (n = r || -1 < n.search(/\n{2,}/) ? (n = x.subParser("githubCodeBlocks")(n, d, c), x.subParser("blockGamut")(n, d, c)) : (n = (n = x.subParser("lists")(n, d, c)).replace(/\n$/, ""), n = (n = x.subParser("hashHTMLBlocks")(n, d, c)).replace(/\n\n+/g, "\n\n"), (l ? x.subParser("paragraphs") : x.subParser("spanGamut"))(n, d, c))).replace("¨A", "")) + "</li>\n"
|
||
})).replace(/¨0/g, ""), c.gListLevel--, e = r ? e.replace(/\s+$/, "") : e
|
||
}
|
||
|
||
function h(e, r) {
|
||
if ("ol" === r) {
|
||
r = e.match(/^ *(\d+)\./);
|
||
if (r && "1" !== r[1]) return ' start="' + r[1] + '"'
|
||
}
|
||
return ""
|
||
}
|
||
|
||
function n(n, s, o) {
|
||
var e, i = d.disableForced4SpacesIndentedSublists ? /^ ?\d+\.[ \t]/gm : /^ {0,3}\d+\.[ \t]/gm,
|
||
l = d.disableForced4SpacesIndentedSublists ? /^ ?[*+-][ \t]/gm : /^ {0,3}[*+-][ \t]/gm,
|
||
c = "ul" === s ? i : l,
|
||
u = "";
|
||
return -1 !== n.search(c) ? function e(r) {
|
||
var t = r.search(c),
|
||
a = h(n, s); - 1 !== t ? (u += "\n\n<" + s + a + ">\n" + p(r.slice(0, t), !!o) + "</" + s + ">\n", c = "ul" === (s = "ul" === s ? "ol" : "ul") ? i : l, e(r.slice(t))) : u += "\n\n<" + s + a + ">\n" + p(r, !!o) + "</" + s + ">\n"
|
||
}(n) : (e = h(n, s), u = "\n\n<" + s + e + ">\n" + p(n, !!o) + "</" + s + ">\n"), u
|
||
}
|
||
return e = c.converter._dispatch("lists.before", e, d, c), e += "¨0", e = (e = c.gListLevel ? e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm, function(e, r, t) {
|
||
return n(r, -1 < t.search(/[*+-]/g) ? "ul" : "ol", !0)
|
||
}) : e.replace(/(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm, function(e, r, t, a) {
|
||
return n(t, -1 < a.search(/[*+-]/g) ? "ul" : "ol", !1)
|
||
})).replace(/¨0/, ""), e = c.converter._dispatch("lists.after", e, d, c)
|
||
}), x.subParser("metadata", function(e, r, a) {
|
||
"use strict";
|
||
return r.metadata ? (e = (e = (e = (e = a.converter._dispatch("metadata.before", e, r, a)).replace(/^\s*«««+(\S*?)\n([\s\S]+?)\n»»»+\n/, function(e, r, t) {
|
||
return n(t), "¨M"
|
||
})).replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/, function(e, r, t) {
|
||
return r && (a.metadata.format = r), n(t), "¨M"
|
||
})).replace(/¨M/g, ""), a.converter._dispatch("metadata.after", e, r, a)) : e;
|
||
|
||
function n(e) {
|
||
(e = (e = (a.metadata.raw = e).replace(/&/g, "&").replace(/"/g, """)).replace(/\n {4}/g, " ")).replace(/^([\S ]+): +([\s\S]+?)$/gm, function(e, r, t) {
|
||
return a.metadata.parsed[r] = t, ""
|
||
})
|
||
}
|
||
}), x.subParser("outdent", function(e, r, t) {
|
||
"use strict";
|
||
return e = (e = (e = t.converter._dispatch("outdent.before", e, r, t)).replace(/^(\t|[ ]{1,4})/gm, "¨0")).replace(/¨0/g, ""), e = t.converter._dispatch("outdent.after", e, r, t)
|
||
}), x.subParser("paragraphs", function(e, r, t) {
|
||
"use strict";
|
||
for (var u = (e = (e = (e = t.converter._dispatch("paragraphs.before", e, r, t)).replace(/^\n+/g, "")).replace(/\n+$/g, "")).split(/\n{2,}/g), a = [], n = u.length, s = 0; s < n; s++) {
|
||
var o = u[s];
|
||
0 <= o.search(/¨(K|G)(\d+)\1/g) ? a.push(o) : 0 <= o.search(/\S/) && (o = (o = x.subParser("spanGamut")(o, r, t)).replace(/^([ \t]*)/g, "<p>"), o += "</p>", a.push(o))
|
||
}
|
||
for (n = a.length, s = 0; s < n; s++) {
|
||
for (var i = "", l = a[s], d = !1;
|
||
/¨(K|G)(\d+)\1/.test(l);) {
|
||
var p = RegExp.$1,
|
||
c = RegExp.$2;
|
||
i = (i = "K" === p ? t.gHtmlBlocks[c] : d ? x.subParser("encodeCode")(t.ghCodeBlocks[c].text, r, t) : t.ghCodeBlocks[c].codeblock).replace(/\$/g, "$$$$"), l = l.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/, i), /^<pre\b[^>]*>\s*<code\b[^>]*>/.test(l) && (d = !0)
|
||
}
|
||
a[s] = l
|
||
}
|
||
return e = (e = (e = a.join("\n")).replace(/^\n+/g, "")).replace(/\n+$/g, ""), t.converter._dispatch("paragraphs.after", e, r, t)
|
||
}), x.subParser("runExtension", function(e, r, t, a) {
|
||
"use strict";
|
||
return e.filter ? r = e.filter(r, a.converter, t) : e.regex && ((a = e.regex) instanceof RegExp || (a = new RegExp(a, "g")), r = r.replace(a, e.replace)), r
|
||
}), x.subParser("spanGamut", function(e, r, t) {
|
||
"use strict";
|
||
return e = t.converter._dispatch("spanGamut.before", e, r, t), e = x.subParser("codeSpans")(e, r, t), e = x.subParser("escapeSpecialCharsWithinTagAttributes")(e, r, t), e = x.subParser("encodeBackslashEscapes")(e, r, t), e = x.subParser("images")(e, r, t), e = x.subParser("anchors")(e, r, t), e = x.subParser("autoLinks")(e, r, t), e = x.subParser("simplifiedAutoLinks")(e, r, t), e = x.subParser("emoji")(e, r, t), e = x.subParser("underline")(e, r, t), e = x.subParser("italicsAndBold")(e, r, t), e = x.subParser("strikethrough")(e, r, t), e = x.subParser("ellipsis")(e, r, t), e = x.subParser("hashHTMLSpans")(e, r, t), e = x.subParser("encodeAmpsAndAngles")(e, r, t), r.simpleLineBreaks ? /\n\n¨K/.test(e) || (e = e.replace(/\n+/g, "<br />\n")) : e = e.replace(/ +\n/g, "<br />\n"), e = t.converter._dispatch("spanGamut.after", e, r, t)
|
||
}), x.subParser("strikethrough", function(e, t, a) {
|
||
"use strict";
|
||
return t.strikethrough && (e = (e = a.converter._dispatch("strikethrough.before", e, t, a)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g, function(e, r) {
|
||
return r = r, "<del>" + (r = t.simplifiedAutoLink ? x.subParser("simplifiedAutoLinks")(r, t, a) : r) + "</del>"
|
||
}), e = a.converter._dispatch("strikethrough.after", e, t, a)), e
|
||
}), x.subParser("stripLinkDefinitions", function(i, l, c) {
|
||
"use strict";
|
||
|
||
function e(e, r, t, a, n, s, o) {
|
||
return r = r.toLowerCase(), i.toLowerCase().split(r).length - 1 < 2 ? e : (t.match(/^data:.+?\/.+?;base64,/) ? c.gUrls[r] = t.replace(/\s/g, "") : c.gUrls[r] = x.subParser("encodeAmpsAndAngles")(t, l, c), s ? s + o : (o && (c.gTitles[r] = o.replace(/"|'/g, """)), l.parseImgDimensions && a && n && (c.gDimensions[r] = {
|
||
width: a,
|
||
height: n
|
||
}), ""))
|
||
}
|
||
return i = (i = (i = (i += "¨0").replace(/^ {0,3}\[([^\]]+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm, e)).replace(/^ {0,3}\[([^\]]+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm, e)).replace(/¨0/, "")
|
||
}), x.subParser("tables", function(e, y, P) {
|
||
"use strict";
|
||
if (!y.tables) return e;
|
||
|
||
function r(u) {
|
||
for (var e = u.split("\n"), r = 0; r < e.length; ++r) /^ {0,3}\|/.test(e[r]) && (e[r] = e[r].replace(/^ {0,3}\|/, "")), /\|[ \t]*$/.test(e[r]) && (e[r] = e[r].replace(/\|[ \t]*$/, "")), e[r] = x.subParser("codeSpans")(e[r], y, P);
|
||
var t, a, d, n, p, h = e[0].split("|").map(function(e) {
|
||
return e.trim()
|
||
}),
|
||
_ = e[1].split("|").map(function(e) {
|
||
return e.trim()
|
||
}),
|
||
s = [],
|
||
g = [],
|
||
o = [],
|
||
m = [];
|
||
for (e.shift(), e.shift(), r = 0; r < e.length; ++r) "" !== e[r].trim() && s.push(e[r].split("|").map(function(e) {
|
||
return e.trim()
|
||
}));
|
||
if (h.length < _.length) return u;
|
||
for (r = 0; r < _.length; ++r) o.push((t = _[r], /^:[ \t]*--*$/.test(t) ? ' style="text-align:left;"' : /^--*[ \t]*:[ \t]*$/.test(t) ? ' style="text-align:right;"' : /^:[ \t]*--*[ \t]*:$/.test(t) ? ' style="text-align:center;"' : ""));
|
||
for (r = 0; r < h.length; ++r) x.helper.isUndefined(o[r]) && (o[r] = ""), g.push((a = h[r], d = o[r], void 0, n = "", a = a.trim(), "<th" + (n = y.tablesHeaderId || y.tableHeaderId ? ' id="' + a.replace(/ /g, "_").toLowerCase() + '"' : n) + d + ">" + (a = x.subParser("spanGamut")(a, y, P)) + "</th>\n"));
|
||
for (r = 0; r < s.length; ++r) {
|
||
for (var f = [], i = 0; i < g.length; ++i) x.helper.isUndefined(s[r][i]), f.push((p = s[r][i], "<td" + o[i] + ">" + x.subParser("spanGamut")(p, y, P) + "</td>\n"));
|
||
m.push(f)
|
||
}
|
||
for (var b = g, w = m, l = "<table>\n<thead>\n<tr>\n", k = b.length, c = 0; c < k; ++c) l += b[c];
|
||
for (l += "</tr>\n</thead>\n<tbody>\n", c = 0; c < w.length; ++c) {
|
||
l += "<tr>\n";
|
||
for (var v = 0; v < k; ++v) l += w[c][v];
|
||
l += "</tr>\n"
|
||
}
|
||
return l += "</tbody>\n</table>\n"
|
||
}
|
||
return e = (e = (e = (e = P.converter._dispatch("tables.before", e, y, P)).replace(/\\(\|)/g, x.helper.escapeCharactersCallback)).replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm, r)).replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm, r), e = P.converter._dispatch("tables.after", e, y, P)
|
||
}), x.subParser("underline", function(e, r, t) {
|
||
"use strict";
|
||
return r.underline ? (e = t.converter._dispatch("underline.before", e, r, t), e = (e = r.literalMidWordUnderscores ? (e = e.replace(/\b___(\S[\s\S]*?)___\b/g, function(e, r) {
|
||
return "<u>" + r + "</u>"
|
||
})).replace(/\b__(\S[\s\S]*?)__\b/g, function(e, r) {
|
||
return "<u>" + r + "</u>"
|
||
}) : (e = e.replace(/___(\S[\s\S]*?)___/g, function(e, r) {
|
||
return /\S$/.test(r) ? "<u>" + r + "</u>" : e
|
||
})).replace(/__(\S[\s\S]*?)__/g, function(e, r) {
|
||
return /\S$/.test(r) ? "<u>" + r + "</u>" : e
|
||
})).replace(/(_)/g, x.helper.escapeCharactersCallback), t.converter._dispatch("underline.after", e, r, t)) : e
|
||
}), x.subParser("unescapeSpecialChars", function(e, r, t) {
|
||
"use strict";
|
||
return e = (e = t.converter._dispatch("unescapeSpecialChars.before", e, r, t)).replace(/¨E(\d+)E/g, function(e, r) {
|
||
r = parseInt(r);
|
||
return String.fromCharCode(r)
|
||
}), e = t.converter._dispatch("unescapeSpecialChars.after", e, r, t)
|
||
}), x.subParser("makeMarkdown.blockquote", function(e, r) {
|
||
"use strict";
|
||
var t = "";
|
||
if (e.hasChildNodes())
|
||
for (var a = e.childNodes, n = a.length, s = 0; s < n; ++s) {
|
||
var o = x.subParser("makeMarkdown.node")(a[s], r);
|
||
"" !== o && (t += o)
|
||
}
|
||
return t = "> " + (t = t.trim()).split("\n").join("\n> ")
|
||
}), x.subParser("makeMarkdown.codeBlock", function(e, r) {
|
||
"use strict";
|
||
var t = e.getAttribute("language"),
|
||
e = e.getAttribute("precodenum");
|
||
return "```" + t + "\n" + r.preList[e] + "\n```"
|
||
}), x.subParser("makeMarkdown.codeSpan", function(e) {
|
||
"use strict";
|
||
return "`" + e.innerHTML + "`"
|
||
}), x.subParser("makeMarkdown.emphasis", function(e, r) {
|
||
"use strict";
|
||
var t = "";
|
||
if (e.hasChildNodes()) {
|
||
t += "*";
|
||
for (var a = e.childNodes, n = a.length, s = 0; s < n; ++s) t += x.subParser("makeMarkdown.node")(a[s], r);
|
||
t += "*"
|
||
}
|
||
return t
|
||
}), x.subParser("makeMarkdown.header", function(e, r, t) {
|
||
"use strict";
|
||
var t = new Array(t + 1).join("#"),
|
||
a = "";
|
||
if (e.hasChildNodes())
|
||
for (var a = t + " ", n = e.childNodes, s = n.length, o = 0; o < s; ++o) a += x.subParser("makeMarkdown.node")(n[o], r);
|
||
return a
|
||
}), x.subParser("makeMarkdown.hr", function() {
|
||
"use strict";
|
||
return "---"
|
||
}), x.subParser("makeMarkdown.image", function(e) {
|
||
"use strict";
|
||
var r = "";
|
||
return e.hasAttribute("src") && (r = (r += "![" + e.getAttribute("alt") + "](") + "<" + e.getAttribute("src") + ">", e.hasAttribute("width") && e.hasAttribute("height") && (r += " =" + e.getAttribute("width") + "x" + e.getAttribute("height")), e.hasAttribute("title") && (r += ' "' + e.getAttribute("title") + '"'), r += ")"), r
|
||
}), x.subParser("makeMarkdown.links", function(e, r) {
|
||
"use strict";
|
||
var t = "";
|
||
if (e.hasChildNodes() && e.hasAttribute("href")) {
|
||
for (var a = e.childNodes, n = a.length, t = "[", s = 0; s < n; ++s) t += x.subParser("makeMarkdown.node")(a[s], r);
|
||
t = (t += "](") + ("<" + e.getAttribute("href") + ">"), e.hasAttribute("title") && (t += ' "' + e.getAttribute("title") + '"'), t += ")"
|
||
}
|
||
return t
|
||
}), x.subParser("makeMarkdown.list", function(e, r, t) {
|
||
"use strict";
|
||
var a = "";
|
||
if (!e.hasChildNodes()) return "";
|
||
for (var n = e.childNodes, s = n.length, o = e.getAttribute("start") || 1, i = 0; i < s; ++i) void 0 !== n[i].tagName && "li" === n[i].tagName.toLowerCase() && (a += ("ol" === t ? o.toString() + ". " : "- ") + x.subParser("makeMarkdown.listItem")(n[i], r), ++o);
|
||
return (a += "\n\x3c!-- --\x3e\n").trim()
|
||
}), x.subParser("makeMarkdown.listItem", function(e, r) {
|
||
"use strict";
|
||
for (var t = "", a = e.childNodes, n = a.length, s = 0; s < n; ++s) t += x.subParser("makeMarkdown.node")(a[s], r);
|
||
return /\n$/.test(t) ? t = t.split("\n").join("\n ").replace(/^ {4}$/gm, "").replace(/\n\n+/g, "\n\n") : t += "\n", t
|
||
}), x.subParser("makeMarkdown.node", function(e, r, t) {
|
||
"use strict";
|
||
t = t || !1;
|
||
var a = "";
|
||
if (3 === e.nodeType) return x.subParser("makeMarkdown.txt")(e, r);
|
||
if (8 === e.nodeType) return "\x3c!--" + e.data + "--\x3e\n\n";
|
||
if (1 !== e.nodeType) return "";
|
||
switch (e.tagName.toLowerCase()) {
|
||
case "h1":
|
||
t || (a = x.subParser("makeMarkdown.header")(e, r, 1) + "\n\n");
|
||
break;
|
||
case "h2":
|
||
t || (a = x.subParser("makeMarkdown.header")(e, r, 2) + "\n\n");
|
||
break;
|
||
case "h3":
|
||
t || (a = x.subParser("makeMarkdown.header")(e, r, 3) + "\n\n");
|
||
break;
|
||
case "h4":
|
||
t || (a = x.subParser("makeMarkdown.header")(e, r, 4) + "\n\n");
|
||
break;
|
||
case "h5":
|
||
t || (a = x.subParser("makeMarkdown.header")(e, r, 5) + "\n\n");
|
||
break;
|
||
case "h6":
|
||
t || (a = x.subParser("makeMarkdown.header")(e, r, 6) + "\n\n");
|
||
break;
|
||
case "p":
|
||
t || (a = x.subParser("makeMarkdown.paragraph")(e, r) + "\n\n");
|
||
break;
|
||
case "blockquote":
|
||
t || (a = x.subParser("makeMarkdown.blockquote")(e, r) + "\n\n");
|
||
break;
|
||
case "hr":
|
||
t || (a = x.subParser("makeMarkdown.hr")(e, r) + "\n\n");
|
||
break;
|
||
case "ol":
|
||
t || (a = x.subParser("makeMarkdown.list")(e, r, "ol") + "\n\n");
|
||
break;
|
||
case "ul":
|
||
t || (a = x.subParser("makeMarkdown.list")(e, r, "ul") + "\n\n");
|
||
break;
|
||
case "precode":
|
||
t || (a = x.subParser("makeMarkdown.codeBlock")(e, r) + "\n\n");
|
||
break;
|
||
case "pre":
|
||
t || (a = x.subParser("makeMarkdown.pre")(e, r) + "\n\n");
|
||
break;
|
||
case "table":
|
||
t || (a = x.subParser("makeMarkdown.table")(e, r) + "\n\n");
|
||
break;
|
||
case "code":
|
||
a = x.subParser("makeMarkdown.codeSpan")(e, r);
|
||
break;
|
||
case "em":
|
||
case "i":
|
||
a = x.subParser("makeMarkdown.emphasis")(e, r);
|
||
break;
|
||
case "strong":
|
||
case "b":
|
||
a = x.subParser("makeMarkdown.strong")(e, r);
|
||
break;
|
||
case "del":
|
||
a = x.subParser("makeMarkdown.strikethrough")(e, r);
|
||
break;
|
||
case "a":
|
||
a = x.subParser("makeMarkdown.links")(e, r);
|
||
break;
|
||
case "img":
|
||
a = x.subParser("makeMarkdown.image")(e, r);
|
||
break;
|
||
default:
|
||
a = e.outerHTML + "\n\n"
|
||
}
|
||
return a
|
||
}), x.subParser("makeMarkdown.paragraph", function(e, r) {
|
||
"use strict";
|
||
var t = "";
|
||
if (e.hasChildNodes())
|
||
for (var a = e.childNodes, n = a.length, s = 0; s < n; ++s) t += x.subParser("makeMarkdown.node")(a[s], r);
|
||
return t = t.trim()
|
||
}), x.subParser("makeMarkdown.pre", function(e, r) {
|
||
"use strict";
|
||
e = e.getAttribute("prenum");
|
||
return "<pre>" + r.preList[e] + "</pre>"
|
||
}), x.subParser("makeMarkdown.strikethrough", function(e, r) {
|
||
"use strict";
|
||
var t = "";
|
||
if (e.hasChildNodes()) {
|
||
t += "~~";
|
||
for (var a = e.childNodes, n = a.length, s = 0; s < n; ++s) t += x.subParser("makeMarkdown.node")(a[s], r);
|
||
t += "~~"
|
||
}
|
||
return t
|
||
}), x.subParser("makeMarkdown.strong", function(e, r) {
|
||
"use strict";
|
||
var t = "";
|
||
if (e.hasChildNodes()) {
|
||
t += "**";
|
||
for (var a = e.childNodes, n = a.length, s = 0; s < n; ++s) t += x.subParser("makeMarkdown.node")(a[s], r);
|
||
t += "**"
|
||
}
|
||
return t
|
||
}), x.subParser("makeMarkdown.table", function(e, r) {
|
||
"use strict";
|
||
for (var t = "", a = [
|
||
[],
|
||
[]
|
||
], n = e.querySelectorAll("thead>tr>th"), s = e.querySelectorAll("tbody>tr"), o = 0; o < n.length; ++o) {
|
||
var u = x.subParser("makeMarkdown.tableCell")(n[o], r),
|
||
i = "---";
|
||
if (n[o].hasAttribute("style")) switch (n[o].getAttribute("style").toLowerCase().replace(/\s/g, "")) {
|
||
case "text-align:left;":
|
||
i = ":---";
|
||
break;
|
||
case "text-align:right;":
|
||
i = "---:";
|
||
break;
|
||
case "text-align:center;":
|
||
i = ":---:"
|
||
}
|
||
a[0][o] = u.trim(), a[1][o] = i
|
||
}
|
||
for (o = 0; o < s.length; ++o)
|
||
for (var d = a.push([]) - 1, p = s[o].getElementsByTagName("td"), l = 0; l < n.length; ++l) {
|
||
var h = " ";
|
||
void 0 !== p[l] && (h = x.subParser("makeMarkdown.tableCell")(p[l], r)), a[d].push(h)
|
||
}
|
||
var c = 3;
|
||
for (o = 0; o < a.length; ++o)
|
||
for (l = 0; l < a[o].length; ++l) {
|
||
var _ = a[o][l].length;
|
||
c < _ && (c = _)
|
||
}
|
||
for (o = 0; o < a.length; ++o) {
|
||
for (l = 0; l < a[o].length; ++l) 1 === o ? ":" === a[o][l].slice(-1) ? a[o][l] = x.helper.padEnd(a[o][l].slice(-1), c - 1, "-") + ":" : a[o][l] = x.helper.padEnd(a[o][l], c, "-") : a[o][l] = x.helper.padEnd(a[o][l], c);
|
||
t += "| " + a[o].join(" | ") + " |\n"
|
||
}
|
||
return t.trim()
|
||
}), x.subParser("makeMarkdown.tableCell", function(e, r) {
|
||
"use strict";
|
||
var t = "";
|
||
if (!e.hasChildNodes()) return "";
|
||
for (var a = e.childNodes, n = a.length, s = 0; s < n; ++s) t += x.subParser("makeMarkdown.node")(a[s], r, !0);
|
||
return t.trim()
|
||
}), x.subParser("makeMarkdown.txt", function(e) {
|
||
"use strict";
|
||
e = e.nodeValue;
|
||
return e = (e = e.replace(/ +/g, " ")).replace(/¨NBSP;/g, " "), e = (e = (e = (e = (e = (e = (e = (e = (e = x.helper.unescapeHTMLEntities(e)).replace(/([*_~|`])/g, "\\$1")).replace(/^(\s*)>/g, "\\$1>")).replace(/^#/gm, "\\#")).replace(/^(\s*)([-=]{3,})(\s*)$/, "$1\\$2$3")).replace(/^( {0,3}\d+)\./gm, "$1\\.")).replace(/^( {0,3})([+-])/gm, "$1\\$2")).replace(/]([\s]*)\(/g, "\\]$1\\(")).replace(/^ {0,3}\[([\S \t]*?)]:/gm, "\\[$1]:")
|
||
});
|
||
"function" == typeof define && define.amd ? define(function() {
|
||
"use strict";
|
||
return x
|
||
}) : "undefined" != typeof module && module.exports ? module.exports = x : this.showdown = x
|
||
}.call(this);
|
||
//# sourceMappingURL=showdown.min.js.map
|