- // ==UserScript==
- // @name OpenAI Playground (ChatGPT) - Continue Button
- // @namespace https://greasyfork.org/en/users/10118-drhouse
- // @version 2.2
- // @description press the [Continue] button instead of 'Add message > type continue > Ctrl+Enter', configure panel optionally saves 'Temperature', 'Maximum Length' and 'Instructions'
- // @include https://platform.openai.com/playground*
- // @match https://platform.openai.com/playground*
- // @require https://code.jquery.com/jquery-3.7.0.min.js
- // @require https://greasyfork.org/scripts/439099-monkeyconfig-modern-reloaded/code/MonkeyConfig%20Modern%20Reloaded.js?version=1012538
- // @grant GM_getValue
- // @grant GM_setValue
- // @grant GM_addStyle
- // @grant GM_setClipboard
- // @grant GM_registerMenuCommand
- // @author drhouse
- // @license CC-BY-NC-SA-4.0
- // @icon https://www.google.com/s2/favicons?sz=64&domain=openai.com
- // ==/UserScript==
- /* global jQuery, $ */
- this.$ = this.jQuery = jQuery.noConflict(true);
- (function($){
-
- !function () {
- function t(e) {
- "use strict";
- var a = {
- 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" },
- 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, describe: "Tries to smartly fix indentation in es6 strings", type: "boolean" },
- disableForced4SpacesIndentedSublists: { defaultValue: !1, describe: "Disables the requirement of indenting nested sublists by 4 spaces", type: "boolean" },
- simpleLineBreaks: { defaultValue: !1, describe: "Parses simple line breaks as <br> (GFM Style)", type: "boolean" },
- requireSpaceBeforeHeadingText: { defaultValue: !1, describe: "Makes adding a space between `#` and the header text mandatory (GFM Style)", type: "boolean" },
- ghMentions: { defaultValue: !1, describe: "Enables github @mentions", type: "boolean" },
- ghMentionsLink: { defaultValue: "https://github.com/{u}", describe: "Changes the link generated by @mentions. Only applies if ghMentions option is enabled.", type: "string" },
- encodeEmails: { defaultValue: !0, describe: "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, describe: "Open all links in new windows", type: "boolean" },
- backslashEscapesHTMLTags: { defaultValue: !1, describe: "Support for HTML Tag escaping. ex: <div>foo</div>", type: "boolean" },
- emoji: { defaultValue: !1, describe: "Enable emoji support. Ex: `this is a :smile: emoji`", type: "boolean" },
- underline: {
- defaultValue: !1,
- describe: "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, describe: "Replaces three dots with the ellipsis unicode character", type: "boolean" },
- completeHTMLDocument: { defaultValue: !1, describe: "Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags", type: "boolean" },
- metadata: { defaultValue: !1, describe: "Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).", type: "boolean" },
- splitAdjacentBlockquotes: { defaultValue: !1, describe: "Split adjacent blockquote blocks", type: "boolean" },
- moreStyling: { defaultValue: !1, describe: "Adds some useful styling css classes in the generated html", type: "boolean" },
- relativePathBaseUrl: { defaultValue: !1, describe: "Prepends a base URL to relative paths", type: "string" },
- };
- if (!1 === e) return JSON.parse(JSON.stringify(a));
- var r,
- t = {};
- for (r in a) a.hasOwnProperty(r) && (t[r] = a[r].defaultValue);
- return t;
- }
- var e,
- P = {},
- r = {},
- h = {},
- m = t(!0),
- d = "vanilla",
- g = {
- github: {
- omitExtraWLInCodeBlocks: !0,
- simplifiedAutoLink: !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,
- literalMidWordUnderscores: !0,
- strikethrough: !0,
- tables: !0,
- tablesHeaderId: !0,
- ghCodeBlocks: !0,
- tasklists: !0,
- smoothLivePreview: !0,
- simpleLineBreaks: !0,
- requireSpaceBeforeHeadingText: !0,
- ghMentions: !1,
- encodeEmails: !0,
- },
- vanilla: t(!0),
- allOn: (function () {
- "use strict";
- var e,
- a = t(!0),
- r = {};
- for (e in a) a.hasOwnProperty(e) && (r[e] = !0);
- return r;
- })(),
- };
- function p(e, a) {
- "use strict";
- var r = a ? "Error in " + a + " extension->" : "Error in unnamed extension",
- t = { valid: !0, error: "" };
- P.helper.isArray(e) || (e = [e]);
- for (var n = 0; n < e.length; ++n) {
- var s = r + " sub-extension " + n + ": ",
- i = e[n];
- if ("object" != typeof i) return (t.valid = !1), (t.error = s + "must be an object, but " + typeof i + " given"), t;
- if (!P.helper.isString(i.type)) return (t.valid = !1), (t.error = s + 'property "type" must be a string, but ' + typeof i.type + " given"), t;
- var o = (i.type = i.type.toLowerCase());
- if ("lang" !== (o = "html" === (o = "language" === o ? (i.type = "lang") : o) ? (i.type = "output") : o) && "output" !== o && "listener" !== o)
- return (t.valid = !1), (t.error = s + "type " + o + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"'), t;
- if ("listener" === o) {
- if (P.helper.isUndefined(i.listeners)) return (t.valid = !1), (t.error = s + '. Extensions of type "listener" must have a property called "listeners"'), t;
- } else if (P.helper.isUndefined(i.filter) && P.helper.isUndefined(i.regex)) return (t.valid = !1), (t.error = s + o + ' extensions must define either a "regex" property or a "filter" method'), t;
- if (i.listeners) {
- if ("object" != typeof i.listeners) return (t.valid = !1), (t.error = s + '"listeners" property must be an object but ' + typeof i.listeners + " given"), t;
- for (var l in i.listeners)
- if (i.listeners.hasOwnProperty(l) && "function" != typeof i.listeners[l])
- return (t.valid = !1), (t.error = s + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + l + " must be a function but " + typeof i.listeners[l] + " given"), t;
- }
- if (i.filter) {
- if ("function" != typeof i.filter) return (t.valid = !1), (t.error = s + '"filter" must be a function, but ' + typeof i.filter + " given"), t;
- } else if (i.regex) {
- if ((P.helper.isString(i.regex) && (i.regex = new RegExp(i.regex, "g")), !(i.regex instanceof RegExp)))
- return (t.valid = !1), (t.error = s + '"regex" property must either be a string or a RegExp object, but ' + typeof i.regex + " given"), t;
- if (P.helper.isUndefined(i.replace)) return (t.valid = !1), (t.error = s + '"regex" extensions must implement a replace string or function'), t;
- }
- }
- return t;
- }
- function n(e, a) {
- "use strict";
- return "¨E" + a.charCodeAt(0) + "E";
- }
- (P.helper = {}),
- (P.extensions = {}),
- (P.setOption = function (e, a) {
- "use strict";
- return (m[e] = a), this;
- }),
- (P.getOption = function (e) {
- "use strict";
- return m[e];
- }),
- (P.getOptions = function () {
- "use strict";
- return m;
- }),
- (P.resetOptions = function () {
- "use strict";
- m = t(!0);
- }),
- (P.setFlavor = function (e) {
- "use strict";
- if (!g.hasOwnProperty(e)) throw Error(e + " flavor was not found");
- P.resetOptions();
- var a,
- r = g[e];
- for (a in ((d = e), r)) r.hasOwnProperty(a) && (m[a] = r[a]);
- }),
- (P.getFlavor = function () {
- "use strict";
- return d;
- }),
- (P.getFlavorOptions = function (e) {
- "use strict";
- if (g.hasOwnProperty(e)) return g[e];
- }),
- (P.getDefaultOptions = t),
- (P.subParser = function (e, a) {
- "use strict";
- if (!P.helper.isString(e)) throw Error("showdown.subParser function first argument must be a string (the name of the subparser)");
- if (void 0 === a) {
- if (r.hasOwnProperty(e)) return r[e];
- throw Error("SubParser named " + e + " not registered!");
- }
- r[e] = a;
- }),
- (P.extension = function (e, a) {
- "use strict";
- if (!P.helper.isString(e)) throw Error("Extension 'name' must be a string");
- if (((e = P.helper.stdExtName(e)), P.helper.isUndefined(a))) {
- if (h.hasOwnProperty(e)) return h[e];
- throw Error("Extension named " + e + " is not registered!");
- }
- "function" == typeof a && (a = a());
- var r = p((a = P.helper.isArray(a) ? a : [a]), e);
- if (!r.valid) throw Error(r.error);
- h[e] = a;
- }),
- (P.getAllExtensions = function () {
- "use strict";
- return h;
- }),
- (P.removeExtension = function (e) {
- "use strict";
- delete h[e];
- }),
- (P.resetExtensions = function () {
- "use strict";
- h = {};
- }),
- (P.validateExtension = function (e) {
- "use strict";
- e = p(e, null);
- return !!e.valid || (console.warn(e.error), !1);
- }),
- P.hasOwnProperty("helper") || (P.helper = {}),
- void 0 === this && "undefined" != typeof window
- ? (P.helper.document = window.document)
- : (void 0 === this.document && void 0 === this.window && ((e = require("jsdom")), (this.window = new e.JSDOM("", {}).window)), (P.helper.document = this.window.document)),
- (P.helper.isString = function (e) {
- "use strict";
- return "string" == typeof e || e instanceof String;
- }),
- (P.helper.isFunction = function (e) {
- "use strict";
- return e && "[object Function]" === {}.toString.call(e);
- }),
- (P.helper.isArray = function (e) {
- "use strict";
- return Array.isArray(e);
- }),
- (P.helper.isUndefined = function (e) {
- "use strict";
- return void 0 === e;
- }),
- (P.helper.forEach = function (e, a) {
- "use strict";
- if (P.helper.isUndefined(e)) throw new Error("obj param is required");
- if (P.helper.isUndefined(a)) throw new Error("callback param is required");
- if (!P.helper.isFunction(a)) throw new Error("callback param must be a function/closure");
- if ("function" == typeof e.forEach) e.forEach(a);
- else if (P.helper.isArray(e)) for (var r = 0; r < e.length; r++) a(e[r], r, e);
- else {
- if ("object" != typeof e) throw new Error("obj does not seem to be an array or an iterable object");
- for (var t in e) e.hasOwnProperty(t) && a(e[t], t, e);
- }
- }),
- (P.helper.stdExtName = function (e) {
- "use strict";
- return e
- .replace(/[_?*+\/\\.^-]/g, "")
- .replace(/\s/g, "")
- .toLowerCase();
- }),
- (P.helper.escapeCharactersCallback = n),
- (P.helper.escapeCharacters = function (e, a, r) {
- "use strict";
- (a = "([" + a.replace(/([\[\]\\])/g, "\\$1") + "])"), r && (a = "\\\\" + a), (r = new RegExp(a, "g"));
- return (e = e.replace(r, n));
- });
- function u(e, a, r, t) {
- "use strict";
- var n,
- s,
- i,
- o = -1 < (t = t || "").indexOf("g"),
- l = new RegExp(a + "|" + r, "g" + t.replace(/g/g, "")),
- c = new RegExp(a, t.replace(/g/g, "")),
- u = [];
- do {
- for (n = 0; (m = l.exec(e)); )
- if (c.test(m[0])) n++ || (i = (s = l.lastIndex) - m[0].length);
- else if (n && !--n) {
- var h = m.index + m[0].length,
- m = { left: { start: i, end: s }, match: { start: s, end: m.index }, right: { start: m.index, end: h }, wholeMatch: { start: i, end: h } };
- if ((u.push(m), !o)) return u;
- }
- } while (n && (l.lastIndex = s));
- return u;
- }
- var s;
- function i(o, l, c, u, h) {
- return (
- (h = !!h),
- function (e, a, r, t, n, s, i) {
- return /\n\n/.test(e) ? e : b(_(o, l + ".captureStart", e, a, r, t, i, c, u), c, u, h);
- }
- );
- }
- function l(o, l, c, u, h) {
- return function (e, a, r, t, n, s, i) {
- return (t = P.helper.applyBaseUrl(c.relativePathBaseUrl, t)), b(_(o, l + ".captureStart", e, a, r, t, i, c, u), c, u, h);
- };
- }
- function _(e, a, r, t, n, s, i, o, l) {
- return l.converter._dispatch(a, r, o, l, { regexp: e, matches: { wholeMatch: r, text: t, id: n, url: s, title: i } });
- }
- function b(e, a, r, t) {
- var n = e.getMatches().wholeMatch,
- s = e.getMatches().text,
- i = e.getMatches().id,
- o = e.getMatches().url,
- l = "",
- e = (e = e.getMatches().title) || "",
- i = i ? i.toLowerCase() : "";
- if (t) o = "";
- else if (!o) {
- if (((o = "#" + (i = i || s.toLowerCase().replace(/ ?\n/g, " "))), P.helper.isUndefined(r.gUrls[i]))) return n;
- (o = r.gUrls[i]), P.helper.isUndefined(r.gTitles[i]) || (e = r.gTitles[i]);
- }
- (o = o.replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback)),
- "" !== e && null !== e && (e = ' title="' + (e = (e = e.replace(/"/g, """)).replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback)) + '"'),
- a.openLinksInNewWindow && !/^#/.test(o) && (l = ' rel="noopener noreferrer" target="¨E95Eblank"'),
- (s = P.subParser("makehtml.codeSpans")(s, a, r)),
- (s = P.subParser("makehtml.emoji")(s, a, r)),
- (s = P.subParser("makehtml.underline")(s, a, r)),
- (s = P.subParser("makehtml.italicsAndBold")(s, a, r)),
- (s = P.subParser("makehtml.strikethrough")(s, a, r)),
- (s = P.subParser("makehtml.ellipsis")(s, a, r));
- t = '<a href="' + o + '"' + e + l + ">" + (s = P.subParser("makehtml.hashHTMLSpans")(s, a, r)) + "</a>";
- return P.subParser("makehtml.hashHTMLSpans")(t, a, r);
- }
- (P.helper.matchRecursiveRegExp = function (e, a, r, t) {
- "use strict";
- for (var n = u(e, a, r, t), s = [], i = 0; i < n.length; ++i)
- s.push([e.slice(n[i].wholeMatch.start, n[i].wholeMatch.end), e.slice(n[i].match.start, n[i].match.end), e.slice(n[i].left.start, n[i].left.end), e.slice(n[i].right.start, n[i].right.end)]);
- return s;
- }),
- (P.helper.replaceRecursiveRegExp = function (e, a, r, t, n) {
- "use strict";
- P.helper.isFunction(a) ||
- ((s = a),
- (a = function () {
- return s;
- }));
- var s,
- i = u(e, r, t, n),
- r = e,
- o = i.length;
- if (0 < o) {
- var l = [];
- 0 !== i[0].wholeMatch.start && l.push(e.slice(0, i[0].wholeMatch.start));
- for (var c = 0; c < o; ++c)
- l.push(a(e.slice(i[c].wholeMatch.start, i[c].wholeMatch.end), e.slice(i[c].match.start, i[c].match.end), e.slice(i[c].left.start, i[c].left.end), e.slice(i[c].right.start, i[c].right.end))),
- c < o - 1 && l.push(e.slice(i[c].wholeMatch.end, i[c + 1].wholeMatch.start));
- i[o - 1].wholeMatch.end < e.length && l.push(e.slice(i[o - 1].wholeMatch.end)), (r = l.join(""));
- }
- return r;
- }),
- (P.helper.regexIndexOf = function (e, a, r) {
- "use strict";
- if (!P.helper.isString(e)) throw "InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";
- if (!(a instanceof RegExp)) throw "InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp";
- e = e.substring(r || 0).search(a);
- return 0 <= e ? e + (r || 0) : e;
- }),
- (P.helper.splitAtIndex = function (e, a) {
- "use strict";
- if (P.helper.isString(e)) return [e.substring(0, a), e.substring(a)];
- throw "InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";
- }),
- (P.helper.encodeEmailAddress = function (e) {
- "use strict";
- var r = [
- 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 a;
- return (e = "@" === e ? r[Math.floor(2 * Math.random())](e) : 0.9 < (a = Math.random()) ? r[2](e) : 0.45 < a ? r[1](e) : r[0](e));
- }));
- }),
- (P.helper.repeat = function (e, a) {
- "use strict";
- if (!P.helper.isUndefined(String.prototype.repeat)) return e.repeat(a);
- if (((e = "" + e), a < 0)) throw new RangeError("repeat count must be non-negative");
- if (a === 1 / 0) throw new RangeError("repeat count must be less than infinity");
- if (((a = Math.floor(a)), 0 === e.length || 0 === a)) return "";
- if (e.length * a >= 1 << 28) throw new RangeError("repeat count must not overflow maximum string size");
- var r = e.length * a;
- for (a = Math.floor(Math.log(a) / Math.log(2)); a; ) (e += e), a--;
- return (e += e.substring(0, r - e.length));
- }),
- (P.helper.padEnd = function (e, a, r) {
- "use strict";
- return (a >>= 0), (r = String(r || " ")), e.length > a ? String(e) : ((a -= e.length) > r.length && (r += P.helper.repeat(r, a / r.length)), String(e) + r.slice(0, a));
- }),
- (P.helper.unescapeHTMLEntities = function (e) {
- "use strict";
- return e
- .replace(/"/g, '"')
- .replace(/</g, "<")
- .replace(/>/g, ">")
- .replace(/&/g, "&");
- }),
- (P.helper._hashHTMLSpan = function (e, a) {
- return "¨C" + (a.gHtmlSpans.push(e) - 1) + "C";
- }),
- (P.helper.applyBaseUrl = function (e, a) {
- return (a = e && !this.isAbsolutePath(a) ? (0, require("url").resolve)(e, a) : a);
- }),
- (P.helper.isAbsolutePath = function (e) {
- return /(^([a-z]+:)?\/\/)|(^#)/i.test(e);
- }),
- (P.helper.Event = function (e, a, r) {
- "use strict";
- var t = r.regexp || null,
- n = r.matches || {},
- s = r.options || {},
- i = r.converter || null,
- o = r.globals || {};
- (this.getName = function () {
- return e;
- }),
- (this.getEventName = function () {
- return e;
- }),
- (this._stopExecution = !1),
- (this.parsedText = r.parsedText || null),
- (this.getRegexp = function () {
- return t;
- }),
- (this.getOptions = function () {
- return s;
- }),
- (this.getConverter = function () {
- return i;
- }),
- (this.getGlobals = function () {
- return o;
- }),
- (this.getCapturedText = function () {
- return a;
- }),
- (this.getText = function () {
- return a;
- }),
- (this.setText = function (e) {
- a = e;
- }),
- (this.getMatches = function () {
- return n;
- }),
- (this.setMatches = function (e) {
- n = e;
- }),
- (this.preventDefault = function (e) {
- this._stopExecution = !e;
- });
- }),
- "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;
- },
- }),
- (P.helper.regexes = { asteriskDashTildeAndColon: /([*_:~])/g, asteriskDashAndTilde: /([*_~])/g }),
- (P.helper.emojis = {
- 100: "💯",
- 1234: "🔢",
- "+1": "👍",
- "-1": "👎",
- "1st_place_medal": "🥇",
- "2nd_place_medal": "🥈",
- "3rd_place_medal": "🥉",
- "8ball": "🎱",
- a: "🅰️",
- ab: "🆎",
- abacus: "🧮",
- abc: "🔤",
- abcd: "🔡",
- accept: "🉑",
- adhesive_bandage: "🩹",
- adult: "🧑",
- aerial_tramway: "🚡",
- afghanistan: "🇦🇫",
- airplane: "✈️",
- aland_islands: "🇦🇽",
- alarm_clock: "⏰",
- albania: "🇦🇱",
- alembic: "⚗️",
- algeria: "🇩🇿",
- alien: "👽",
- ambulance: "🚑",
- american_samoa: "🇦🇸",
- amphora: "🏺",
- anchor: "⚓",
- andorra: "🇦🇩",
- angel: "👼",
- anger: "💢",
- angola: "🇦🇴",
- angry: "😠",
- anguilla: "🇦🇮",
- anguished: "😧",
- ant: "🐜",
- antarctica: "🇦🇶",
- antigua_barbuda: "🇦🇬",
- apple: "🍎",
- aquarius: "♒",
- argentina: "🇦🇷",
- aries: "♈",
- armenia: "🇦🇲",
- 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: "🛰️",
- artist: "🧑🎨",
- aruba: "🇦🇼",
- ascension_island: "🇦🇨",
- asterisk: "*️⃣",
- astonished: "😲",
- astronaut: "🧑🚀",
- athletic_shoe: "👟",
- atm: "🏧",
- atom_symbol: "⚛️",
- australia: "🇦🇺",
- austria: "🇦🇹",
- auto_rickshaw: "🛺",
- avocado: "🥑",
- axe: "🪓",
- azerbaijan: "🇦🇿",
- b: "🅱️",
- baby: "👶",
- baby_bottle: "🍼",
- baby_chick: "🐤",
- baby_symbol: "🚼",
- back: "🔙",
- bacon: "🥓",
- badger: "🦡",
- badminton: "🏸",
- bagel: "🥯",
- baggage_claim: "🛄",
- baguette_bread: "🥖",
- bahamas: "🇧🇸",
- bahrain: "🇧🇭",
- balance_scale: "⚖️",
- bald_man: "👨🦲",
- bald_woman: "👩🦲",
- ballet_shoes: "🩰",
- balloon: "🎈",
- ballot_box: "🗳️",
- ballot_box_with_check: "☑️",
- bamboo: "🎍",
- banana: "🍌",
- bangbang: "‼️",
- bangladesh: "🇧🇩",
- banjo: "🪕",
- bank: "🏦",
- bar_chart: "📊",
- barbados: "🇧🇧",
- barber: "💈",
- baseball: "⚾",
- basket: "🧺",
- basketball: "🏀",
- basketball_man: "⛹️♂️",
- basketball_woman: "⛹️♀️",
- bat: "🦇",
- bath: "🛀",
- bathtub: "🛁",
- battery: "🔋",
- beach_umbrella: "🏖️",
- bear: "🐻",
- bearded_person: "🧔",
- bed: "🛏️",
- bee: "🐝",
- beer: "🍺",
- beers: "🍻",
- beetle: "🐞",
- beginner: "🔰",
- belarus: "🇧🇾",
- belgium: "🇧🇪",
- belize: "🇧🇿",
- bell: "🔔",
- bellhop_bell: "🛎️",
- benin: "🇧🇯",
- bento: "🍱",
- bermuda: "🇧🇲",
- beverage_box: "🧃",
- bhutan: "🇧🇹",
- bicyclist: "🚴",
- bike: "🚲",
- biking_man: "🚴♂️",
- biking_woman: "🚴♀️",
- bikini: "👙",
- billed_cap: "🧢",
- 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: "🔲",
- blond_haired_man: "👱♂️",
- blond_haired_person: "👱",
- blond_haired_woman: "👱♀️",
- blonde_woman: "👱♀️",
- blossom: "🌼",
- blowfish: "🐡",
- blue_book: "📘",
- blue_car: "🚙",
- blue_heart: "💙",
- blue_square: "🟦",
- blush: "😊",
- boar: "🐗",
- boat: "⛵",
- bolivia: "🇧🇴",
- bomb: "💣",
- bone: "🦴",
- book: "📖",
- bookmark: "🔖",
- bookmark_tabs: "📑",
- books: "📚",
- boom: "💥",
- boot: "👢",
- bosnia_herzegovina: "🇧🇦",
- botswana: "🇧🇼",
- bouncing_ball_man: "⛹️♂️",
- bouncing_ball_person: "⛹️",
- bouncing_ball_woman: "⛹️♀️",
- bouquet: "💐",
- bouvet_island: "🇧🇻",
- bow: "🙇",
- bow_and_arrow: "🏹",
- bowing_man: "🙇♂️",
- bowing_woman: "🙇♀️",
- bowl_with_spoon: "🥣",
- bowling: "🎳",
- boxing_glove: "🥊",
- boy: "👦",
- brain: "🧠",
- brazil: "🇧🇷",
- bread: "🍞",
- breast_feeding: "🤱",
- bricks: "🧱",
- bride_with_veil: "👰",
- bridge_at_night: "🌉",
- briefcase: "💼",
- british_indian_ocean_territory: "🇮🇴",
- british_virgin_islands: "🇻🇬",
- broccoli: "🥦",
- broken_heart: "💔",
- broom: "🧹",
- brown_circle: "🟤",
- brown_heart: "🤎",
- brown_square: "🟫",
- brunei: "🇧🇳",
- bug: "🐛",
- building_construction: "🏗️",
- bulb: "💡",
- bulgaria: "🇧🇬",
- bullettrain_front: "🚅",
- bullettrain_side: "🚄",
- burkina_faso: "🇧🇫",
- burrito: "🌯",
- burundi: "🇧🇮",
- bus: "🚌",
- business_suit_levitating: "🕴️",
- busstop: "🚏",
- bust_in_silhouette: "👤",
- busts_in_silhouette: "👥",
- butter: "🧈",
- butterfly: "🦋",
- cactus: "🌵",
- cake: "🍰",
- calendar: "📆",
- call_me_hand: "🤙",
- calling: "📲",
- cambodia: "🇰🇭",
- camel: "🐫",
- camera: "📷",
- camera_flash: "📸",
- cameroon: "🇨🇲",
- camping: "🏕️",
- canada: "🇨🇦",
- canary_islands: "🇮🇨",
- cancer: "♋",
- candle: "🕯️",
- candy: "🍬",
- canned_food: "🥫",
- canoe: "🛶",
- cape_verde: "🇨🇻",
- capital_abcd: "🔠",
- capricorn: "♑",
- car: "🚗",
- card_file_box: "🗃️",
- card_index: "📇",
- card_index_dividers: "🗂️",
- caribbean_netherlands: "🇧🇶",
- carousel_horse: "🎠",
- carrot: "🥕",
- cartwheeling: "🤸",
- cat: "🐱",
- cat2: "🐈",
- cayman_islands: "🇰🇾",
- cd: "💿",
- central_african_republic: "🇨🇫",
- ceuta_melilla: "🇪🇦",
- chad: "🇹🇩",
- chains: "⛓️",
- chair: "🪑",
- champagne: "🍾",
- chart: "💹",
- chart_with_downwards_trend: "📉",
- chart_with_upwards_trend: "📈",
- checkered_flag: "🏁",
- cheese: "🧀",
- cherries: "🍒",
- cherry_blossom: "🌸",
- chess_pawn: "♟️",
- chestnut: "🌰",
- chicken: "🐔",
- child: "🧒",
- children_crossing: "🚸",
- chile: "🇨🇱",
- chipmunk: "🐿️",
- chocolate_bar: "🍫",
- chopsticks: "🥢",
- christmas_island: "🇨🇽",
- christmas_tree: "🎄",
- church: "⛪",
- cinema: "🎦",
- circus_tent: "🎪",
- city_sunrise: "🌇",
- city_sunset: "🌆",
- cityscape: "🏙️",
- cl: "🆑",
- clamp: "🗜️",
- clap: "👏",
- clapper: "🎬",
- classical_building: "🏛️",
- climbing: "🧗",
- climbing_man: "🧗♂️",
- climbing_woman: "🧗♀️",
- clinking_glasses: "🥂",
- clipboard: "📋",
- clipperton_island: "🇨🇵",
- 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: "♣️",
- cn: "🇨🇳",
- coat: "🧥",
- cocktail: "🍸",
- coconut: "🥥",
- cocos_islands: "🇨🇨",
- coffee: "☕",
- coffin: "⚰️",
- cold_face: "🥶",
- cold_sweat: "😰",
- collision: "💥",
- colombia: "🇨🇴",
- comet: "☄️",
- comoros: "🇰🇲",
- compass: "🧭",
- computer: "💻",
- computer_mouse: "🖱️",
- confetti_ball: "🎊",
- confounded: "😖",
- confused: "😕",
- congo_brazzaville: "🇨🇬",
- congo_kinshasa: "🇨🇩",
- congratulations: "㊗️",
- construction: "🚧",
- construction_worker: "👷",
- construction_worker_man: "👷♂️",
- construction_worker_woman: "👷♀️",
- control_knobs: "🎛️",
- convenience_store: "🏪",
- cook: "🧑🍳",
- cook_islands: "🇨🇰",
- cookie: "🍪",
- cool: "🆒",
- cop: "👮",
- copyright: "©️",
- corn: "🌽",
- costa_rica: "🇨🇷",
- cote_divoire: "🇨🇮",
- couch_and_lamp: "🛋️",
- couple: "👫",
- couple_with_heart: "💑",
- couple_with_heart_man_man: "👨❤️👨",
- couple_with_heart_woman_man: "👩❤️👨",
- couple_with_heart_woman_woman: "👩❤️👩",
- couplekiss: "💏",
- couplekiss_man_man: "👨❤️💋👨",
- couplekiss_man_woman: "👩❤️💋👨",
- couplekiss_woman_woman: "👩❤️💋👩",
- cow: "🐮",
- cow2: "🐄",
- cowboy_hat_face: "🤠",
- crab: "🦀",
- crayon: "🖍️",
- credit_card: "💳",
- crescent_moon: "🌙",
- cricket: "🦗",
- cricket_game: "🏏",
- croatia: "🇭🇷",
- crocodile: "🐊",
- croissant: "🥐",
- crossed_fingers: "🤞",
- crossed_flags: "🎌",
- crossed_swords: "⚔️",
- crown: "👑",
- cry: "😢",
- crying_cat_face: "😿",
- crystal_ball: "🔮",
- cuba: "🇨🇺",
- cucumber: "🥒",
- cup_with_straw: "🥤",
- cupcake: "🧁",
- cupid: "💘",
- curacao: "🇨🇼",
- curling_stone: "🥌",
- curly_haired_man: "👨🦱",
- curly_haired_woman: "👩🦱",
- curly_loop: "➰",
- currency_exchange: "💱",
- curry: "🍛",
- cursing_face: "🤬",
- custard: "🍮",
- customs: "🛃",
- cut_of_meat: "🥩",
- cyclone: "🌀",
- cyprus: "🇨🇾",
- czech_republic: "🇨🇿",
- dagger: "🗡️",
- dancer: "💃",
- dancers: "👯",
- dancing_men: "👯♂️",
- dancing_women: "👯♀️",
- dango: "🍡",
- dark_sunglasses: "🕶️",
- dart: "🎯",
- dash: "💨",
- date: "📅",
- de: "🇩🇪",
- deaf_man: "🧏♂️",
- deaf_person: "🧏",
- deaf_woman: "🧏♀️",
- deciduous_tree: "🌳",
- deer: "🦌",
- denmark: "🇩🇰",
- department_store: "🏬",
- derelict_house: "🏚️",
- desert: "🏜️",
- desert_island: "🏝️",
- desktop_computer: "🖥️",
- detective: "🕵️",
- diamond_shape_with_a_dot_inside: "💠",
- diamonds: "♦️",
- diego_garcia: "🇩🇬",
- disappointed: "😞",
- disappointed_relieved: "😥",
- diving_mask: "🤿",
- diya_lamp: "🪔",
- dizzy: "💫",
- dizzy_face: "😵",
- djibouti: "🇩🇯",
- dna: "🧬",
- do_not_litter: "🚯",
- dog: "🐶",
- dog2: "🐕",
- dollar: "💵",
- dolls: "🎎",
- dolphin: "🐬",
- dominica: "🇩🇲",
- dominican_republic: "🇩🇴",
- door: "🚪",
- doughnut: "🍩",
- dove: "🕊️",
- dragon: "🐉",
- dragon_face: "🐲",
- dress: "👗",
- dromedary_camel: "🐪",
- drooling_face: "🤤",
- drop_of_blood: "🩸",
- droplet: "💧",
- drum: "🥁",
- duck: "🦆",
- dumpling: "🥟",
- dvd: "📀",
- "e-mail": "📧",
- eagle: "🦅",
- ear: "👂",
- ear_of_rice: "🌾",
- ear_with_hearing_aid: "🦻",
- earth_africa: "🌍",
- earth_americas: "🌎",
- earth_asia: "🌏",
- ecuador: "🇪🇨",
- egg: "🥚",
- eggplant: "🍆",
- egypt: "🇪🇬",
- eight: "8️⃣",
- eight_pointed_black_star: "✴️",
- eight_spoked_asterisk: "✳️",
- eject_button: "⏏️",
- el_salvador: "🇸🇻",
- electric_plug: "🔌",
- elephant: "🐘",
- elf: "🧝",
- elf_man: "🧝♂️",
- elf_woman: "🧝♀️",
- email: "✉️",
- end: "🔚",
- england: "🏴",
- envelope: "✉️",
- envelope_with_arrow: "📩",
- equatorial_guinea: "🇬🇶",
- eritrea: "🇪🇷",
- es: "🇪🇸",
- estonia: "🇪🇪",
- ethiopia: "🇪🇹",
- eu: "🇪🇺",
- euro: "💶",
- european_castle: "🏰",
- european_post_office: "🏤",
- european_union: "🇪🇺",
- evergreen_tree: "🌲",
- exclamation: "❗",
- exploding_head: "🤯",
- expressionless: "😑",
- eye: "👁️",
- eye_speech_bubble: "👁️🗨️",
- eyeglasses: "👓",
- eyes: "👀",
- face_with_head_bandage: "🤕",
- face_with_thermometer: "🤒",
- facepalm: "🤦",
- facepunch: "👊",
- factory: "🏭",
- factory_worker: "🧑🏭",
- fairy: "🧚",
- fairy_man: "🧚♂️",
- fairy_woman: "🧚♀️",
- falafel: "🧆",
- falkland_islands: "🇫🇰",
- fallen_leaf: "🍂",
- family: "👪",
- 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: "👨👩👦",
- 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: "👩👩👧👧",
- farmer: "🧑🌾",
- faroe_islands: "🇫🇴",
- fast_forward: "⏩",
- fax: "📠",
- fearful: "😨",
- feet: "🐾",
- female_detective: "🕵️♀️",
- female_sign: "♀️",
- ferris_wheel: "🎡",
- ferry: "⛴️",
- field_hockey: "🏑",
- fiji: "🇫🇯",
- file_cabinet: "🗄️",
- file_folder: "📁",
- film_projector: "📽️",
- film_strip: "🎞️",
- finland: "🇫🇮",
- fire: "🔥",
- fire_engine: "🚒",
- fire_extinguisher: "🧯",
- firecracker: "🧨",
- firefighter: "🧑🚒",
- fireworks: "🎆",
- first_quarter_moon: "🌓",
- first_quarter_moon_with_face: "🌛",
- fish: "🐟",
- fish_cake: "🍥",
- fishing_pole_and_fish: "🎣",
- fist: "✊",
- fist_left: "🤛",
- fist_oncoming: "👊",
- fist_raised: "✊",
- fist_right: "🤜",
- five: "5️⃣",
- flags: "🎏",
- flamingo: "🦩",
- flashlight: "🔦",
- flat_shoe: "🥿",
- fleur_de_lis: "⚜️",
- flight_arrival: "🛬",
- flight_departure: "🛫",
- flipper: "🐬",
- floppy_disk: "💾",
- flower_playing_cards: "🎴",
- flushed: "😳",
- flying_disc: "🥏",
- flying_saucer: "🛸",
- fog: "🌫️",
- foggy: "🌁",
- foot: "🦶",
- football: "🏈",
- footprints: "👣",
- fork_and_knife: "🍴",
- fortune_cookie: "🥠",
- fountain: "⛲",
- fountain_pen: "🖋️",
- four: "4️⃣",
- four_leaf_clover: "🍀",
- fox_face: "🦊",
- fr: "🇫🇷",
- framed_picture: "🖼️",
- free: "🆓",
- french_guiana: "🇬🇫",
- french_polynesia: "🇵🇫",
- french_southern_territories: "🇹🇫",
- fried_egg: "🍳",
- fried_shrimp: "🍤",
- fries: "🍟",
- frog: "🐸",
- frowning: "😦",
- frowning_face: "☹️",
- frowning_man: "🙍♂️",
- frowning_person: "🙍",
- frowning_woman: "🙍♀️",
- fu: "🖕",
- fuelpump: "⛽",
- full_moon: "🌕",
- full_moon_with_face: "🌝",
- funeral_urn: "⚱️",
- gabon: "🇬🇦",
- gambia: "🇬🇲",
- game_die: "🎲",
- garlic: "🧄",
- gb: "🇬🇧",
- gear: "⚙️",
- gem: "💎",
- gemini: "♊",
- genie: "🧞",
- genie_man: "🧞♂️",
- genie_woman: "🧞♀️",
- georgia: "🇬🇪",
- ghana: "🇬🇭",
- ghost: "👻",
- gibraltar: "🇬🇮",
- gift: "🎁",
- gift_heart: "💝",
- giraffe: "🦒",
- girl: "👧",
- globe_with_meridians: "🌐",
- gloves: "🧤",
- goal_net: "🥅",
- goat: "🐐",
- goggles: "🥽",
- golf: "⛳",
- golfing: "🏌️",
- golfing_man: "🏌️♂️",
- golfing_woman: "🏌️♀️",
- gorilla: "🦍",
- grapes: "🍇",
- greece: "🇬🇷",
- green_apple: "🍏",
- green_book: "📗",
- green_circle: "🟢",
- green_heart: "💚",
- green_salad: "🥗",
- green_square: "🟩",
- greenland: "🇬🇱",
- grenada: "🇬🇩",
- grey_exclamation: "❕",
- grey_question: "❔",
- grimacing: "😬",
- grin: "😁",
- grinning: "😀",
- guadeloupe: "🇬🇵",
- guam: "🇬🇺",
- guard: "💂",
- guardsman: "💂♂️",
- guardswoman: "💂♀️",
- guatemala: "🇬🇹",
- guernsey: "🇬🇬",
- guide_dog: "🦮",
- guinea: "🇬🇳",
- guinea_bissau: "🇬🇼",
- guitar: "🎸",
- gun: "🔫",
- guyana: "🇬🇾",
- haircut: "💇",
- haircut_man: "💇♂️",
- haircut_woman: "💇♀️",
- haiti: "🇭🇹",
- hamburger: "🍔",
- hammer: "🔨",
- hammer_and_pick: "⚒️",
- hammer_and_wrench: "🛠️",
- hamster: "🐹",
- hand: "✋",
- hand_over_mouth: "🤭",
- handbag: "👜",
- handball_person: "🤾",
- handshake: "🤝",
- hankey: "💩",
- hash: "#️⃣",
- hatched_chick: "🐥",
- hatching_chick: "🐣",
- headphones: "🎧",
- health_worker: "🧑⚕️",
- hear_no_evil: "🙉",
- heard_mcdonald_islands: "🇭🇲",
- heart: "❤️",
- heart_decoration: "💟",
- heart_eyes: "😍",
- heart_eyes_cat: "😻",
- heartbeat: "💓",
- heartpulse: "💗",
- hearts: "♥️",
- heavy_check_mark: "✔️",
- heavy_division_sign: "➗",
- heavy_dollar_sign: "💲",
- heavy_exclamation_mark: "❗",
- heavy_heart_exclamation: "❣️",
- heavy_minus_sign: "➖",
- heavy_multiplication_x: "✖️",
- heavy_plus_sign: "➕",
- hedgehog: "🦔",
- helicopter: "🚁",
- herb: "🌿",
- hibiscus: "🌺",
- high_brightness: "🔆",
- high_heel: "👠",
- hiking_boot: "🥾",
- hindu_temple: "🛕",
- hippopotamus: "🦛",
- hocho: "🔪",
- hole: "🕳️",
- honduras: "🇭🇳",
- honey_pot: "🍯",
- honeybee: "🐝",
- hong_kong: "🇭🇰",
- horse: "🐴",
- horse_racing: "🏇",
- hospital: "🏥",
- hot_face: "🥵",
- hot_pepper: "🌶️",
- hotdog: "🌭",
- hotel: "🏨",
- hotsprings: "♨️",
- hourglass: "⌛",
- hourglass_flowing_sand: "⏳",
- house: "🏠",
- house_with_garden: "🏡",
- houses: "🏘️",
- hugs: "🤗",
- hungary: "🇭🇺",
- hushed: "😯",
- ice_cream: "🍨",
- ice_cube: "🧊",
- ice_hockey: "🏒",
- ice_skate: "⛸️",
- icecream: "🍦",
- iceland: "🇮🇸",
- id: "🆔",
- ideograph_advantage: "🉐",
- imp: "👿",
- inbox_tray: "📥",
- incoming_envelope: "📨",
- india: "🇮🇳",
- indonesia: "🇮🇩",
- infinity: "♾️",
- information_desk_person: "💁",
- information_source: "ℹ️",
- innocent: "😇",
- interrobang: "⁉️",
- iphone: "📱",
- iran: "🇮🇷",
- iraq: "🇮🇶",
- ireland: "🇮🇪",
- isle_of_man: "🇮🇲",
- israel: "🇮🇱",
- it: "🇮🇹",
- izakaya_lantern: "🏮",
- jack_o_lantern: "🎃",
- jamaica: "🇯🇲",
- japan: "🗾",
- japanese_castle: "🏯",
- japanese_goblin: "👺",
- japanese_ogre: "👹",
- jeans: "👖",
- jersey: "🇯🇪",
- jigsaw: "🧩",
- jordan: "🇯🇴",
- joy: "😂",
- joy_cat: "😹",
- joystick: "🕹️",
- jp: "🇯🇵",
- judge: "🧑⚖️",
- juggling_person: "🤹",
- kaaba: "🕋",
- kangaroo: "🦘",
- kazakhstan: "🇰🇿",
- kenya: "🇰🇪",
- key: "🔑",
- keyboard: "⌨️",
- keycap_ten: "🔟",
- kick_scooter: "🛴",
- kimono: "👘",
- kiribati: "🇰🇮",
- kiss: "💋",
- kissing: "😗",
- kissing_cat: "😽",
- kissing_closed_eyes: "😚",
- kissing_heart: "😘",
- kissing_smiling_eyes: "😙",
- kite: "🪁",
- kiwi_fruit: "🥝",
- kneeling_man: "🧎♂️",
- kneeling_person: "🧎",
- kneeling_woman: "🧎♀️",
- knife: "🔪",
- koala: "🐨",
- koko: "🈁",
- kosovo: "🇽🇰",
- kr: "🇰🇷",
- kuwait: "🇰🇼",
- kyrgyzstan: "🇰🇬",
- lab_coat: "🥼",
- label: "🏷️",
- lacrosse: "🥍",
- lantern: "🏮",
- laos: "🇱🇦",
- large_blue_circle: "🔵",
- large_blue_diamond: "🔷",
- large_orange_diamond: "🔶",
- last_quarter_moon: "🌗",
- last_quarter_moon_with_face: "🌜",
- latin_cross: "✝️",
- latvia: "🇱🇻",
- laughing: "😆",
- leafy_green: "🥬",
- leaves: "🍃",
- lebanon: "🇱🇧",
- ledger: "📒",
- left_luggage: "🛅",
- left_right_arrow: "↔️",
- left_speech_bubble: "🗨️",
- leftwards_arrow_with_hook: "↩️",
- leg: "🦵",
- lemon: "🍋",
- leo: "♌",
- leopard: "🐆",
- lesotho: "🇱🇸",
- level_slider: "🎚️",
- liberia: "🇱🇷",
- libra: "♎",
- libya: "🇱🇾",
- liechtenstein: "🇱🇮",
- light_rail: "🚈",
- link: "🔗",
- lion: "🦁",
- lips: "👄",
- lipstick: "💄",
- lithuania: "🇱🇹",
- lizard: "🦎",
- llama: "🦙",
- lobster: "🦞",
- lock: "🔒",
- lock_with_ink_pen: "🔏",
- lollipop: "🍭",
- loop: "➿",
- lotion_bottle: "🧴",
- lotus_position: "🧘",
- lotus_position_man: "🧘♂️",
- lotus_position_woman: "🧘♀️",
- loud_sound: "🔊",
- loudspeaker: "📢",
- love_hotel: "🏩",
- love_letter: "💌",
- love_you_gesture: "🤟",
- low_brightness: "🔅",
- luggage: "🧳",
- luxembourg: "🇱🇺",
- lying_face: "🤥",
- m: "Ⓜ️",
- macau: "🇲🇴",
- macedonia: "🇲🇰",
- madagascar: "🇲🇬",
- mag: "🔍",
- mag_right: "🔎",
- mage: "🧙",
- mage_man: "🧙♂️",
- mage_woman: "🧙♀️",
- magnet: "🧲",
- mahjong: "🀄",
- mailbox: "📫",
- mailbox_closed: "📪",
- mailbox_with_mail: "📬",
- mailbox_with_no_mail: "📭",
- malawi: "🇲🇼",
- malaysia: "🇲🇾",
- maldives: "🇲🇻",
- male_detective: "🕵️♂️",
- male_sign: "♂️",
- mali: "🇲🇱",
- malta: "🇲🇹",
- 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_manual_wheelchair: "👨🦽",
- man_in_motorized_wheelchair: "👨🦼",
- 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_probing_cane: "👨🦯",
- man_with_turban: "👳♂️",
- mandarin: "🍊",
- mango: "🥭",
- mans_shoe: "👞",
- mantelpiece_clock: "🕰️",
- manual_wheelchair: "🦽",
- maple_leaf: "🍁",
- marshall_islands: "🇲🇭",
- martial_arts_uniform: "🥋",
- martinique: "🇲🇶",
- mask: "😷",
- massage: "💆",
- massage_man: "💆♂️",
- massage_woman: "💆♀️",
- mate: "🧉",
- mauritania: "🇲🇷",
- mauritius: "🇲🇺",
- mayotte: "🇾🇹",
- meat_on_bone: "🍖",
- mechanic: "🧑🔧",
- mechanical_arm: "🦾",
- mechanical_leg: "🦿",
- medal_military: "🎖️",
- medal_sports: "🏅",
- medical_symbol: "⚕️",
- mega: "📣",
- melon: "🍈",
- memo: "📝",
- men_wrestling: "🤼♂️",
- menorah: "🕎",
- mens: "🚹",
- mermaid: "🧜♀️",
- merman: "🧜♂️",
- merperson: "🧜",
- metal: "🤘",
- metro: "🚇",
- mexico: "🇲🇽",
- microbe: "🦠",
- micronesia: "🇫🇲",
- microphone: "🎤",
- microscope: "🔬",
- middle_finger: "🖕",
- milk_glass: "🥛",
- milky_way: "🌌",
- minibus: "🚐",
- minidisc: "💽",
- mobile_phone_off: "📴",
- moldova: "🇲🇩",
- monaco: "🇲🇨",
- money_mouth_face: "🤑",
- money_with_wings: "💸",
- moneybag: "💰",
- mongolia: "🇲🇳",
- monkey: "🐒",
- monkey_face: "🐵",
- monocle_face: "🧐",
- monorail: "🚝",
- montenegro: "🇲🇪",
- montserrat: "🇲🇸",
- moon: "🌔",
- moon_cake: "🥮",
- morocco: "🇲🇦",
- mortar_board: "🎓",
- mosque: "🕌",
- mosquito: "🦟",
- motor_boat: "🛥️",
- motor_scooter: "🛵",
- motorcycle: "🏍️",
- motorized_wheelchair: "🦼",
- motorway: "🛣️",
- mount_fuji: "🗻",
- mountain: "⛰️",
- mountain_bicyclist: "🚵",
- mountain_biking_man: "🚵♂️",
- mountain_biking_woman: "🚵♀️",
- mountain_cableway: "🚠",
- mountain_railway: "🚞",
- mountain_snow: "🏔️",
- mouse: "🐭",
- mouse2: "🐁",
- movie_camera: "🎥",
- moyai: "🗿",
- mozambique: "🇲🇿",
- mrs_claus: "🤶",
- muscle: "💪",
- mushroom: "🍄",
- musical_keyboard: "🎹",
- musical_note: "🎵",
- musical_score: "🎼",
- mute: "🔇",
- myanmar: "🇲🇲",
- nail_care: "💅",
- name_badge: "📛",
- namibia: "🇳🇦",
- national_park: "🏞️",
- nauru: "🇳🇷",
- nauseated_face: "🤢",
- nazar_amulet: "🧿",
- necktie: "👔",
- negative_squared_cross_mark: "❎",
- nepal: "🇳🇵",
- nerd_face: "🤓",
- netherlands: "🇳🇱",
- neutral_face: "😐",
- new: "🆕",
- new_caledonia: "🇳🇨",
- new_moon: "🌑",
- new_moon_with_face: "🌚",
- new_zealand: "🇳🇿",
- newspaper: "📰",
- newspaper_roll: "🗞️",
- next_track_button: "⏭️",
- ng: "🆖",
- ng_man: "🙅♂️",
- ng_woman: "🙅♀️",
- nicaragua: "🇳🇮",
- niger: "🇳🇪",
- nigeria: "🇳🇬",
- night_with_stars: "🌃",
- nine: "9️⃣",
- niue: "🇳🇺",
- no_bell: "🔕",
- no_bicycles: "🚳",
- no_entry: "⛔",
- no_entry_sign: "🚫",
- no_good: "🙅",
- no_good_man: "🙅♂️",
- no_good_woman: "🙅♀️",
- no_mobile_phones: "📵",
- no_mouth: "😶",
- no_pedestrians: "🚷",
- no_smoking: "🚭",
- "non-potable_water": "🚱",
- norfolk_island: "🇳🇫",
- north_korea: "🇰🇵",
- northern_mariana_islands: "🇲🇵",
- norway: "🇳🇴",
- nose: "👃",
- notebook: "📓",
- notebook_with_decorative_cover: "📔",
- notes: "🎶",
- nut_and_bolt: "🔩",
- o: "⭕",
- o2: "🅾️",
- ocean: "🌊",
- octopus: "🐙",
- oden: "🍢",
- office: "🏢",
- office_worker: "🧑💼",
- oil_drum: "🛢️",
- ok: "🆗",
- ok_hand: "👌",
- ok_man: "🙆♂️",
- ok_person: "🙆",
- ok_woman: "🙆♀️",
- old_key: "🗝️",
- older_adult: "🧓",
- older_man: "👴",
- older_woman: "👵",
- om: "🕉️",
- oman: "🇴🇲",
- on: "🔛",
- oncoming_automobile: "🚘",
- oncoming_bus: "🚍",
- oncoming_police_car: "🚔",
- oncoming_taxi: "🚖",
- one: "1️⃣",
- one_piece_swimsuit: "🩱",
- onion: "🧅",
- open_book: "📖",
- open_file_folder: "📂",
- open_hands: "👐",
- open_mouth: "😮",
- open_umbrella: "☂️",
- ophiuchus: "⛎",
- orange: "🍊",
- orange_book: "📙",
- orange_circle: "🟠",
- orange_heart: "🧡",
- orange_square: "🟧",
- orangutan: "🦧",
- orthodox_cross: "☦️",
- otter: "🦦",
- outbox_tray: "📤",
- owl: "🦉",
- ox: "🐂",
- oyster: "🦪",
- package: "📦",
- page_facing_up: "📄",
- page_with_curl: "📃",
- pager: "📟",
- paintbrush: "🖌️",
- pakistan: "🇵🇰",
- palau: "🇵🇼",
- palestinian_territories: "🇵🇸",
- palm_tree: "🌴",
- palms_up_together: "🤲",
- panama: "🇵🇦",
- pancakes: "🥞",
- panda_face: "🐼",
- paperclip: "📎",
- paperclips: "🖇️",
- papua_new_guinea: "🇵🇬",
- parachute: "🪂",
- paraguay: "🇵🇾",
- parasol_on_ground: "⛱️",
- parking: "🅿️",
- parrot: "🦜",
- part_alternation_mark: "〽️",
- partly_sunny: "⛅",
- partying_face: "🥳",
- passenger_ship: "🛳️",
- passport_control: "🛂",
- pause_button: "⏸️",
- paw_prints: "🐾",
- peace_symbol: "☮️",
- peach: "🍑",
- peacock: "🦚",
- peanuts: "🥜",
- pear: "🍐",
- pen: "🖊️",
- pencil: "📝",
- pencil2: "✏️",
- penguin: "🐧",
- pensive: "😔",
- people_holding_hands: "🧑🤝🧑",
- performing_arts: "🎭",
- persevere: "😣",
- person_bald: "🧑🦲",
- person_curly_hair: "🧑🦱",
- person_fencing: "🤺",
- person_in_manual_wheelchair: "🧑🦽",
- person_in_motorized_wheelchair: "🧑🦼",
- person_red_hair: "🧑🦰",
- person_white_hair: "🧑🦳",
- person_with_probing_cane: "🧑🦯",
- person_with_turban: "👳",
- peru: "🇵🇪",
- petri_dish: "🧫",
- philippines: "🇵🇭",
- phone: "☎️",
- pick: "⛏️",
- pie: "🥧",
- pig: "🐷",
- pig2: "🐖",
- pig_nose: "🐽",
- pill: "💊",
- pilot: "🧑✈️",
- pinching_hand: "🤏",
- pineapple: "🍍",
- ping_pong: "🏓",
- pirate_flag: "🏴☠️",
- pisces: "♓",
- pitcairn_islands: "🇵🇳",
- pizza: "🍕",
- place_of_worship: "🛐",
- plate_with_cutlery: "🍽️",
- play_or_pause_button: "⏯️",
- pleading_face: "🥺",
- point_down: "👇",
- point_left: "👈",
- point_right: "👉",
- point_up: "☝️",
- point_up_2: "👆",
- poland: "🇵🇱",
- police_car: "🚓",
- police_officer: "👮",
- policeman: "👮♂️",
- policewoman: "👮♀️",
- poodle: "🐩",
- poop: "💩",
- popcorn: "🍿",
- portugal: "🇵🇹",
- post_office: "🏣",
- postal_horn: "📯",
- postbox: "📮",
- potable_water: "🚰",
- potato: "🥔",
- pouch: "👝",
- poultry_leg: "🍗",
- pound: "💷",
- pout: "😡",
- pouting_cat: "😾",
- pouting_face: "🙎",
- pouting_man: "🙎♂️",
- pouting_woman: "🙎♀️",
- pray: "🙏",
- prayer_beads: "📿",
- pregnant_woman: "🤰",
- pretzel: "🥨",
- previous_track_button: "⏮️",
- prince: "🤴",
- princess: "👸",
- printer: "🖨️",
- probing_cane: "🦯",
- puerto_rico: "🇵🇷",
- punch: "👊",
- purple_circle: "🟣",
- purple_heart: "💜",
- purple_square: "🟪",
- purse: "👛",
- pushpin: "📌",
- put_litter_in_its_place: "🚮",
- qatar: "🇶🇦",
- question: "❓",
- rabbit: "🐰",
- rabbit2: "🐇",
- raccoon: "🦝",
- racehorse: "🐎",
- racing_car: "🏎️",
- radio: "📻",
- radio_button: "🔘",
- radioactive: "☢️",
- rage: "😡",
- railway_car: "🚃",
- railway_track: "🛤️",
- rainbow: "🌈",
- rainbow_flag: "🏳️🌈",
- raised_back_of_hand: "🤚",
- raised_eyebrow: "🤨",
- raised_hand: "✋",
- raised_hand_with_fingers_splayed: "🖐️",
- raised_hands: "🙌",
- raising_hand: "🙋",
- raising_hand_man: "🙋♂️",
- raising_hand_woman: "🙋♀️",
- ram: "🐏",
- ramen: "🍜",
- rat: "🐀",
- razor: "🪒",
- receipt: "🧾",
- record_button: "⏺️",
- recycle: "♻️",
- red_car: "🚗",
- red_circle: "🔴",
- red_envelope: "🧧",
- red_haired_man: "👨🦰",
- red_haired_woman: "👩🦰",
- red_square: "🟥",
- registered: "®️",
- relaxed: "☺️",
- relieved: "😌",
- reminder_ribbon: "🎗️",
- repeat: "🔁",
- repeat_one: "🔂",
- rescue_worker_helmet: "⛑️",
- restroom: "🚻",
- reunion: "🇷🇪",
- revolving_hearts: "💞",
- rewind: "⏪",
- rhinoceros: "🦏",
- ribbon: "🎀",
- rice: "🍚",
- rice_ball: "🍙",
- rice_cracker: "🍘",
- rice_scene: "🎑",
- right_anger_bubble: "🗯️",
- ring: "💍",
- ringed_planet: "🪐",
- robot: "🤖",
- rocket: "🚀",
- rofl: "🤣",
- roll_eyes: "🙄",
- roll_of_paper: "🧻",
- roller_coaster: "🎢",
- romania: "🇷🇴",
- rooster: "🐓",
- rose: "🌹",
- rosette: "🏵️",
- rotating_light: "🚨",
- round_pushpin: "📍",
- rowboat: "🚣",
- rowing_man: "🚣♂️",
- rowing_woman: "🚣♀️",
- ru: "🇷🇺",
- rugby_football: "🏉",
- runner: "🏃",
- running: "🏃",
- running_man: "🏃♂️",
- running_shirt_with_sash: "🎽",
- running_woman: "🏃♀️",
- rwanda: "🇷🇼",
- sa: "🈂️",
- safety_pin: "🧷",
- safety_vest: "🦺",
- sagittarius: "♐",
- sailboat: "⛵",
- sake: "🍶",
- salt: "🧂",
- samoa: "🇼🇸",
- san_marino: "🇸🇲",
- sandal: "👡",
- sandwich: "🥪",
- santa: "🎅",
- sao_tome_principe: "🇸🇹",
- sari: "🥻",
- sassy_man: "💁♂️",
- sassy_woman: "💁♀️",
- satellite: "📡",
- satisfied: "😆",
- saudi_arabia: "🇸🇦",
- sauna_man: "🧖♂️",
- sauna_person: "🧖",
- sauna_woman: "🧖♀️",
- sauropod: "🦕",
- saxophone: "🎷",
- scarf: "🧣",
- school: "🏫",
- school_satchel: "🎒",
- scientist: "🧑🔬",
- scissors: "✂️",
- scorpion: "🦂",
- scorpius: "♏",
- scotland: "🏴",
- scream: "😱",
- scream_cat: "🙀",
- scroll: "📜",
- seat: "💺",
- secret: "㊙️",
- see_no_evil: "🙈",
- seedling: "🌱",
- selfie: "🤳",
- senegal: "🇸🇳",
- serbia: "🇷🇸",
- service_dog: "🐕🦺",
- seven: "7️⃣",
- seychelles: "🇸🇨",
- shallow_pan_of_food: "🥘",
- shamrock: "☘️",
- shark: "🦈",
- shaved_ice: "🍧",
- sheep: "🐑",
- shell: "🐚",
- shield: "🛡️",
- shinto_shrine: "⛩️",
- ship: "🚢",
- shirt: "👕",
- shit: "💩",
- shoe: "👞",
- shopping: "🛍️",
- shopping_cart: "🛒",
- shorts: "🩳",
- shower: "🚿",
- shrimp: "🦐",
- shrug: "🤷",
- shushing_face: "🤫",
- sierra_leone: "🇸🇱",
- signal_strength: "📶",
- singapore: "🇸🇬",
- singer: "🧑🎤",
- sint_maarten: "🇸🇽",
- six: "6️⃣",
- six_pointed_star: "🔯",
- skateboard: "🛹",
- ski: "🎿",
- skier: "⛷️",
- skull: "💀",
- skull_and_crossbones: "☠️",
- skunk: "🦨",
- sled: "🛷",
- sleeping: "😴",
- sleeping_bed: "🛌",
- sleepy: "😪",
- slightly_frowning_face: "🙁",
- slightly_smiling_face: "🙂",
- slot_machine: "🎰",
- sloth: "🦥",
- slovakia: "🇸🇰",
- slovenia: "🇸🇮",
- small_airplane: "🛩️",
- small_blue_diamond: "🔹",
- small_orange_diamond: "🔸",
- small_red_triangle: "🔺",
- small_red_triangle_down: "🔻",
- smile: "😄",
- smile_cat: "😸",
- smiley: "😃",
- smiley_cat: "😺",
- smiling_face_with_three_hearts: "🥰",
- smiling_imp: "😈",
- smirk: "😏",
- smirk_cat: "😼",
- smoking: "🚬",
- snail: "🐌",
- snake: "🐍",
- sneezing_face: "🤧",
- snowboarder: "🏂",
- snowflake: "❄️",
- snowman: "⛄",
- snowman_with_snow: "☃️",
- soap: "🧼",
- sob: "😭",
- soccer: "⚽",
- socks: "🧦",
- softball: "🥎",
- solomon_islands: "🇸🇧",
- somalia: "🇸🇴",
- soon: "🔜",
- sos: "🆘",
- sound: "🔉",
- south_africa: "🇿🇦",
- south_georgia_south_sandwich_islands: "🇬🇸",
- south_sudan: "🇸🇸",
- 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: "🗒️",
- sponge: "🧽",
- spoon: "🥄",
- squid: "🦑",
- sri_lanka: "🇱🇰",
- st_barthelemy: "🇧🇱",
- st_helena: "🇸🇭",
- st_kitts_nevis: "🇰🇳",
- st_lucia: "🇱🇨",
- st_martin: "🇲🇫",
- st_pierre_miquelon: "🇵🇲",
- st_vincent_grenadines: "🇻🇨",
- stadium: "🏟️",
- standing_man: "🧍♂️",
- standing_person: "🧍",
- standing_woman: "🧍♀️",
- star: "⭐",
- star2: "🌟",
- star_and_crescent: "☪️",
- star_of_david: "✡️",
- star_struck: "🤩",
- stars: "🌠",
- station: "🚉",
- statue_of_liberty: "🗽",
- steam_locomotive: "🚂",
- stethoscope: "🩺",
- stew: "🍲",
- stop_button: "⏹️",
- stop_sign: "🛑",
- stopwatch: "⏱️",
- straight_ruler: "📏",
- strawberry: "🍓",
- stuck_out_tongue: "😛",
- stuck_out_tongue_closed_eyes: "😝",
- stuck_out_tongue_winking_eye: "😜",
- student: "🧑🎓",
- studio_microphone: "🎙️",
- stuffed_flatbread: "🥙",
- sudan: "🇸🇩",
- sun_behind_large_cloud: "🌥️",
- sun_behind_rain_cloud: "🌦️",
- sun_behind_small_cloud: "🌤️",
- sun_with_face: "🌞",
- sunflower: "🌻",
- sunglasses: "😎",
- sunny: "☀️",
- sunrise: "🌅",
- sunrise_over_mountains: "🌄",
- superhero: "🦸",
- superhero_man: "🦸♂️",
- superhero_woman: "🦸♀️",
- supervillain: "🦹",
- supervillain_man: "🦹♂️",
- supervillain_woman: "🦹♀️",
- surfer: "🏄",
- surfing_man: "🏄♂️",
- surfing_woman: "🏄♀️",
- suriname: "🇸🇷",
- sushi: "🍣",
- suspension_railway: "🚟",
- svalbard_jan_mayen: "🇸🇯",
- swan: "🦢",
- swaziland: "🇸🇿",
- sweat: "😓",
- sweat_drops: "💦",
- sweat_smile: "😅",
- sweden: "🇸🇪",
- sweet_potato: "🍠",
- swim_brief: "🩲",
- swimmer: "🏊",
- swimming_man: "🏊♂️",
- swimming_woman: "🏊♀️",
- switzerland: "🇨🇭",
- symbols: "🔣",
- synagogue: "🕍",
- syria: "🇸🇾",
- syringe: "💉",
- "t-rex": "🦖",
- taco: "🌮",
- tada: "🎉",
- taiwan: "🇹🇼",
- tajikistan: "🇹🇯",
- takeout_box: "🥡",
- tanabata_tree: "🎋",
- tangerine: "🍊",
- tanzania: "🇹🇿",
- taurus: "♉",
- taxi: "🚕",
- tea: "🍵",
- teacher: "🧑🏫",
- technologist: "🧑💻",
- teddy_bear: "🧸",
- telephone: "☎️",
- telephone_receiver: "📞",
- telescope: "🔭",
- tennis: "🎾",
- tent: "⛺",
- test_tube: "🧪",
- thailand: "🇹🇭",
- thermometer: "🌡️",
- thinking: "🤔",
- thought_balloon: "💭",
- thread: "🧵",
- three: "3️⃣",
- thumbsdown: "👎",
- thumbsup: "👍",
- ticket: "🎫",
- tickets: "🎟️",
- tiger: "🐯",
- tiger2: "🐅",
- timer_clock: "⏲️",
- timor_leste: "🇹🇱",
- tipping_hand_man: "💁♂️",
- tipping_hand_person: "💁",
- tipping_hand_woman: "💁♀️",
- tired_face: "😫",
- tm: "™️",
- togo: "🇹🇬",
- toilet: "🚽",
- tokelau: "🇹🇰",
- tokyo_tower: "🗼",
- tomato: "🍅",
- tonga: "🇹🇴",
- tongue: "👅",
- toolbox: "🧰",
- tooth: "🦷",
- top: "🔝",
- tophat: "🎩",
- tornado: "🌪️",
- tr: "🇹🇷",
- trackball: "🖲️",
- tractor: "🚜",
- traffic_light: "🚥",
- train: "🚋",
- train2: "🚆",
- tram: "🚊",
- triangular_flag_on_post: "🚩",
- triangular_ruler: "📐",
- trident: "🔱",
- trinidad_tobago: "🇹🇹",
- tristan_da_cunha: "🇹🇦",
- triumph: "😤",
- trolleybus: "🚎",
- trophy: "🏆",
- tropical_drink: "🍹",
- tropical_fish: "🐠",
- truck: "🚚",
- trumpet: "🎺",
- tshirt: "👕",
- tulip: "🌷",
- tumbler_glass: "🥃",
- tunisia: "🇹🇳",
- turkey: "🦃",
- turkmenistan: "🇹🇲",
- turks_caicos_islands: "🇹🇨",
- turtle: "🐢",
- tuvalu: "🇹🇻",
- tv: "📺",
- twisted_rightwards_arrows: "🔀",
- two: "2️⃣",
- two_hearts: "💕",
- two_men_holding_hands: "👬",
- two_women_holding_hands: "👭",
- u5272: "🈹",
- u5408: "🈴",
- u55b6: "🈺",
- u6307: "🈯",
- u6708: "🈷️",
- u6709: "🈶",
- u6e80: "🈵",
- u7121: "🈚",
- u7533: "🈸",
- u7981: "🈲",
- u7a7a: "🈳",
- uganda: "🇺🇬",
- uk: "🇬🇧",
- ukraine: "🇺🇦",
- umbrella: "☔",
- unamused: "😒",
- underage: "🔞",
- unicorn: "🦄",
- united_arab_emirates: "🇦🇪",
- united_nations: "🇺🇳",
- unlock: "🔓",
- up: "🆙",
- upside_down_face: "🙃",
- uruguay: "🇺🇾",
- us: "🇺🇸",
- us_outlying_islands: "🇺🇲",
- us_virgin_islands: "🇻🇮",
- uzbekistan: "🇺🇿",
- v: "✌️",
- vampire: "🧛",
- vampire_man: "🧛♂️",
- vampire_woman: "🧛♀️",
- vanuatu: "🇻🇺",
- vatican_city: "🇻🇦",
- venezuela: "🇻🇪",
- vertical_traffic_light: "🚦",
- vhs: "📼",
- vibration_mode: "📳",
- video_camera: "📹",
- video_game: "🎮",
- vietnam: "🇻🇳",
- violin: "🎻",
- virgo: "♍",
- volcano: "🌋",
- volleyball: "🏐",
- vomiting_face: "🤮",
- vs: "🆚",
- vulcan_salute: "🖖",
- waffle: "🧇",
- wales: "🏴",
- walking: "🚶",
- walking_man: "🚶♂️",
- walking_woman: "🚶♀️",
- wallis_futuna: "🇼🇫",
- waning_crescent_moon: "🌘",
- waning_gibbous_moon: "🌖",
- warning: "⚠️",
- wastebasket: "🗑️",
- watch: "⌚",
- water_buffalo: "🐃",
- water_polo: "🤽",
- watermelon: "🍉",
- wave: "👋",
- wavy_dash: "〰️",
- waxing_crescent_moon: "🌒",
- waxing_gibbous_moon: "🌔",
- wc: "🚾",
- weary: "😩",
- wedding: "💒",
- weight_lifting: "🏋️",
- weight_lifting_man: "🏋️♂️",
- weight_lifting_woman: "🏋️♀️",
- western_sahara: "🇪🇭",
- whale: "🐳",
- whale2: "🐋",
- wheel_of_dharma: "☸️",
- wheelchair: "♿",
- white_check_mark: "✅",
- white_circle: "⚪",
- white_flag: "🏳️",
- white_flower: "💮",
- white_haired_man: "👨🦳",
- white_haired_woman: "👩🦳",
- white_heart: "🤍",
- 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_dancing: "💃",
- woman_facepalming: "🤦♀️",
- woman_factory_worker: "👩🏭",
- woman_farmer: "👩🌾",
- woman_firefighter: "👩🚒",
- woman_health_worker: "👩⚕️",
- woman_in_manual_wheelchair: "👩🦽",
- woman_in_motorized_wheelchair: "👩🦼",
- 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_headscarf: "🧕",
- woman_with_probing_cane: "👩🦯",
- woman_with_turban: "👳♀️",
- womans_clothes: "👚",
- womans_hat: "👒",
- women_wrestling: "🤼♀️",
- womens: "🚺",
- woozy_face: "🥴",
- world_map: "🗺️",
- worried: "😟",
- wrench: "🔧",
- wrestling: "🤼",
- writing_hand: "✍️",
- x: "❌",
- yarn: "🧶",
- yawning_face: "🥱",
- yellow_circle: "🟡",
- yellow_heart: "💛",
- yellow_square: "🟨",
- yemen: "🇾🇪",
- yen: "💴",
- yin_yang: "☯️",
- yo_yo: "🪀",
- yum: "😋",
- zambia: "🇿🇲",
- zany_face: "🤪",
- zap: "⚡",
- zebra: "🦓",
- zero: "0️⃣",
- zimbabwe: "🇿🇼",
- zipper_mouth_face: "🤐",
- zombie: "🧟",
- zombie_man: "🧟♂️",
- zombie_woman: "🧟♀️",
- zzz: "💤",
- atom: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/atom.png?v8">',
- basecamp: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/basecamp.png?v8">',
- basecampy: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/basecampy.png?v8">',
- bowtie: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/bowtie.png?v8">',
- electron: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/electron.png?v8">',
- feelsgood: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/feelsgood.png?v8">',
- finnadie: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/finnadie.png?v8">',
- goberserk: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/goberserk.png?v8">',
- godmode: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/godmode.png?v8">',
- hurtrealbad: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/hurtrealbad.png?v8">',
- neckbeard: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/neckbeard.png?v8">',
- octocat: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/octocat.png?v8">',
- rage1: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/rage1.png?v8">',
- rage2: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/rage2.png?v8">',
- rage3: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/rage3.png?v8">',
- rage4: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/rage4.png?v8">',
- shipit: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/shipit.png?v8">',
- suspect: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/suspect.png?v8">',
- trollface: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/trollface.png?v8">',
- showdown:
- '<img width="20" height="20" align="absmiddle" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAS1BMVEX///8jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS3b1q3b1q3b1q3b1q3b1q3b1q3b1q3b1q0565CIAAAAGXRSTlMAQHCAYCCw/+DQwPCQUBAwoHCAEP+wwFBgS2fvBgAAAUZJREFUeAHs1cGy7BAUheFFsEDw/k97VTq3T6ge2EmdM+pvrP6Iwd74XV9Kb52xuMU4/uc1YNgZLFOeV8FGdhGrNk5SEgUyPxAEdj4LlMRDyhVAMVEa2M7TBSeVZAFPdqHgzSZJwPKgcLFLAooHDJo4EDCw4gAtBoJA5UFj4Ng5LOGLwVXZuoIlji/jeQHFk7+baHxrCjeUwB9+s88KndvlhcyBN5BSkYNQIVVb4pV+Npm7hhuKDs/uMP5KxT3WzSNNLIuuoDpMmuAVMruMSeDyQBi24DTr43LAY7ILA1QYaWkgfHzFthYYzg67SQsCbB8GhJUEGCtO9n0rSaCLxgJQjS/JSgMTg2eBDEHAJ+H350AsjYNYscrErgI2e/l+mdR967TCX/v6N0EhPECYCP0i+IAoYQOE8BogNhQMEMdrgAQWHaMAAGi5I5euoY9NAAAAAElFTkSuQmCC">',
- }),
- P.subParser("makehtml.blockGamut", function (e, a, r) {
- "use strict";
- return (
- (e = r.converter._dispatch("makehtml.blockGamut.before", e, a, r).getText()),
- (e = P.subParser("makehtml.blockQuotes")(e, a, r)),
- (e = P.subParser("makehtml.headers")(e, a, r)),
- (e = P.subParser("makehtml.horizontalRule")(e, a, r)),
- (e = P.subParser("makehtml.lists")(e, a, r)),
- (e = P.subParser("makehtml.codeBlocks")(e, a, r)),
- (e = P.subParser("makehtml.tables")(e, a, r)),
- (e = P.subParser("makehtml.hashHTMLBlocks")(e, a, r)),
- (e = P.subParser("makehtml.paragraphs")(e, a, r)),
- (e = r.converter._dispatch("makehtml.blockGamut.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.blockQuotes", function (e, a, r) {
- "use strict";
- e = r.converter._dispatch("makehtml.blockQuotes.before", e, a, r).getText();
- var t = /(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;
- return (
- a.splitAdjacentBlockquotes && (t = /^ {0,3}>[\s\S]*?(?:\n\n)/gm),
- (e = (e += "\n\n").replace(t, function (e) {
- return (
- (e = (e = (e = e.replace(/^[ \t]*>[ \t]?/gm, "")).replace(/¨0/g, "")).replace(/^[ \t]+$/gm, "")),
- (e = P.subParser("makehtml.githubCodeBlocks")(e, a, r)),
- (e = (e = (e = P.subParser("makehtml.blockGamut")(e, a, r)).replace(/(^|\n)/g, "$1 ")).replace(/(\s*<pre>[^\r]+?<\/pre>)/gm, function (e, a) {
- return a.replace(/^ /gm, "¨0").replace(/¨0/g, "");
- })),
- P.subParser("makehtml.hashBlock")("<blockquote>\n" + e + "\n</blockquote>", a, r)
- );
- })),
- (e = r.converter._dispatch("makehtml.blockQuotes.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.codeBlocks", function (e, n, s) {
- "use strict";
- e = s.converter._dispatch("makehtml.codeBlocks.before", e, n, s).getText();
- return (
- (e = (e = (e += "¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g, function (e, a, r) {
- var t = "\n",
- a = P.subParser("makehtml.outdent")(a, n, s);
- return (
- (a = P.subParser("makehtml.encodeCode")(a, n, s)),
- (a = "<pre><code>" + (a = (a = (a = P.subParser("makehtml.detab")(a, n, s)).replace(/^\n+/g, "")).replace(/\n+$/g, "")) + (t = n.omitExtraWLInCodeBlocks ? "" : t) + "</code></pre>"),
- P.subParser("makehtml.hashBlock")(a, n, s) + r
- );
- })).replace(/¨0/, "")),
- (e = s.converter._dispatch("makehtml.codeBlocks.after", e, n, s).getText())
- );
- }),
- P.subParser("makehtml.codeSpans", function (e, n, s) {
- "use strict";
- return (
- (e = (e = void 0 === (e = s.converter._dispatch("makehtml.codeSpans.before", e, n, s).getText()) ? "" : e).replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, function (e, a, r, t) {
- return (t = (t = t.replace(/^([ \t]*)/g, "")).replace(/[ \t]*$/g, "")), (t = a + "<code>" + (t = P.subParser("makehtml.encodeCode")(t, n, s)) + "</code>"), (t = P.subParser("makehtml.hashHTMLSpans")(t, n, s));
- })),
- (e = s.converter._dispatch("makehtml.codeSpans.after", e, n, s).getText())
- );
- }),
- P.subParser("makehtml.completeHTMLDocument", function (e, a, r) {
- "use strict";
- if (!a.completeHTMLDocument) return e;
- e = r.converter._dispatch("makehtml.completeHTMLDocument.before", e, a, r).getText();
- var t,
- n = "html",
- s = "<!DOCTYPE HTML>\n",
- i = "",
- o = '<meta charset="utf-8">\n',
- l = "",
- c = "";
- for (t in (void 0 !== r.metadata.parsed.doctype &&
- ((s = "<!DOCTYPE " + r.metadata.parsed.doctype + ">\n"), ("html" !== (n = r.metadata.parsed.doctype.toString().toLowerCase()) && "html5" !== n) || (o = '<meta charset="utf-8">')),
- r.metadata.parsed))
- if (r.metadata.parsed.hasOwnProperty(t))
- switch (t.toLowerCase()) {
- case "doctype":
- break;
- case "title":
- i = "<title>" + r.metadata.parsed.title + "</title>\n";
- break;
- case "charset":
- o = "html" === n || "html5" === n ? '<meta charset="' + r.metadata.parsed.charset + '">\n' : '<meta name="charset" content="' + r.metadata.parsed.charset + '">\n';
- break;
- case "language":
- case "lang":
- (l = ' lang="' + r.metadata.parsed[t] + '"'), (c += '<meta name="' + t + '" content="' + r.metadata.parsed[t] + '">\n');
- break;
- default:
- c += '<meta name="' + t + '" content="' + r.metadata.parsed[t] + '">\n';
- }
- return (e = s + "<html" + l + ">\n<head>\n" + i + o + c + "</head>\n<body>\n" + e.trim() + "\n</body>\n</html>"), (e = r.converter._dispatch("makehtml.completeHTMLDocument.after", e, a, r).getText());
- }),
- P.subParser("makehtml.detab", function (e, a, r) {
- "use strict";
- return (
- (e = (e = (e = (e = (e = (e = r.converter._dispatch("makehtml.detab.before", e, a, r).getText()).replace(/\t(?=\t)/g, " ")).replace(/\t/g, "¨A¨B")).replace(/¨B(.+?)¨A/g, function (e, a) {
- for (var r = a, t = 4 - (r.length % 4), n = 0; n < t; n++) r += " ";
- return r;
- })).replace(/¨A/g, " ")).replace(/¨B/g, "")),
- (e = r.converter._dispatch("makehtml.detab.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.ellipsis", function (e, a, r) {
- "use strict";
- return a.ellipsis ? ((e = (e = r.converter._dispatch("makehtml.ellipsis.before", e, a, r).getText()).replace(/\.\.\./g, "…")), r.converter._dispatch("makehtml.ellipsis.after", e, a, r).getText()) : e;
- }),
- P.subParser("makehtml.emoji", function (e, a, r) {
- "use strict";
- if (!a.emoji) return e;
- return (
- (e = (e = r.converter._dispatch("makehtml.emoji.before", e, a, r).getText()).replace(/:([\S]+?):/g, function (e, a) {
- return P.helper.emojis.hasOwnProperty(a) ? P.helper.emojis[a] : e;
- })),
- (e = r.converter._dispatch("makehtml.emoji.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.encodeAmpsAndAngles", function (e, a, r) {
- "use strict";
- return (
- (e = (e = (e = (e = (e = r.converter._dispatch("makehtml.encodeAmpsAndAngles.before", e, a, r).getText()).replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, "&")).replace(/<(?![a-z\/?$!])/gi, "<")).replace(
- /</g,
- "<"
- )).replace(/>/g, ">")),
- (e = r.converter._dispatch("makehtml.encodeAmpsAndAngles.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.encodeBackslashEscapes", function (e, a, r) {
- "use strict";
- return (
- (e = (e = (e = r.converter._dispatch("makehtml.encodeBackslashEscapes.before", e, a, r).getText()).replace(/\\(\\)/g, P.helper.escapeCharactersCallback)).replace(
- /\\([`*_{}\[\]()>#+.!~=|:-])/g,
- P.helper.escapeCharactersCallback
- )),
- (e = r.converter._dispatch("makehtml.encodeBackslashEscapes.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.encodeCode", function (e, a, r) {
- "use strict";
- return (
- (e = (e = r.converter._dispatch("makehtml.encodeCode.before", e, a, r).getText())
- .replace(/&/g, "&")
- .replace(/</g, "<")
- .replace(/>/g, ">")
- .replace(/([*_{}\[\]\\=~-])/g, P.helper.escapeCharactersCallback)),
- (e = r.converter._dispatch("makehtml.encodeCode.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.escapeSpecialCharsWithinTagAttributes", function (e, a, r) {
- "use strict";
- return (
- (e = (e = (e = r.converter._dispatch("makehtml.escapeSpecialCharsWithinTagAttributes.before", e, a, r).getText()).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi, function (e) {
- return e.replace(/(.)<\/?code>(?=.)/g, "$1`").replace(/([\\`*_~=|])/g, P.helper.escapeCharactersCallback);
- })).replace(/<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi, function (e) {
- return e.replace(/([\\`*_~=|])/g, P.helper.escapeCharactersCallback);
- })),
- (e = r.converter._dispatch("makehtml.escapeSpecialCharsWithinTagAttributes.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.githubCodeBlocks", function (e, s, i) {
- "use strict";
- return s.ghCodeBlocks
- ? ((e = i.converter._dispatch("makehtml.githubCodeBlocks.before", e, s, i).getText()),
- (e = (e = (e += "¨0").replace(/(?:^|\n) {0,3}(```+|~~~+) *([^\n\t`~]*)\n([\s\S]*?)\n {0,3}\1/g, function (e, a, r, t) {
- var n = s.omitExtraWLInCodeBlocks ? "" : "\n";
- return (
- (r = r.trim().split(" ")[0]),
- (t = P.subParser("makehtml.encodeCode")(t, s, i)),
- (t = "<pre><code" + (r ? ' class="' + r + " language-" + r + '"' : "") + ">" + (t = (t = (t = P.subParser("makehtml.detab")(t, s, i)).replace(/^\n+/g, "")).replace(/\n+$/g, "")) + n + "</code></pre>"),
- (t = P.subParser("makehtml.hashBlock")(t, s, i)),
- "\n\n¨G" + (i.ghCodeBlocks.push({ text: e, codeblock: t }) - 1) + "G\n\n"
- );
- })).replace(/¨0/, "")),
- i.converter._dispatch("makehtml.githubCodeBlocks.after", e, s, i).getText())
- : e;
- }),
- P.subParser("makehtml.hashBlock", function (e, a, r) {
- "use strict";
- return (
- (e = (e = r.converter._dispatch("makehtml.hashBlock.before", e, a, r).getText()).replace(/(^\n+|\n+$)/g, "")),
- (e = "\n\n¨K" + (r.gHtmlBlocks.push(e) - 1) + "K\n\n"),
- (e = r.converter._dispatch("makehtml.hashBlock.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.hashCodeTags", function (e, n, s) {
- "use strict";
- e = s.converter._dispatch("makehtml.hashCodeTags.before", e, n, s).getText();
- return (
- (e = P.helper.replaceRecursiveRegExp(
- e,
- function (e, a, r, t) {
- r = r + P.subParser("makehtml.encodeCode")(a, n, s) + t;
- return "¨C" + (s.gHtmlSpans.push(r) - 1) + "C";
- },
- "<code\\b[^>]*>",
- "</code>",
- "gim"
- )),
- (e = s.converter._dispatch("makehtml.hashCodeTags.after", e, n, s).getText())
- );
- }),
- P.subParser("makehtml.hashElement", function (e, a, r) {
- "use strict";
- return function (e, a) {
- return (a = (a = (a = a.replace(/\n\n/g, "\n")).replace(/^\n/, "")).replace(/\n+$/g, "")), (a = "\n\n¨K" + (r.gHtmlBlocks.push(a) - 1) + "K\n\n");
- };
- }),
- P.subParser("makehtml.hashHTMLBlocks", function (e, a, n) {
- "use strict";
- e = n.converter._dispatch("makehtml.hashHTMLBlocks.before", e, a, n).getText();
- function r(e, a, r, t) {
- return -1 !== r.search(/\bmarkdown\b/) && (e = r + n.converter.makeHtml(a) + t), "\n\n¨K" + (n.gHtmlBlocks.push(e) - 1) + "K\n\n";
- }
- var t = [
- "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",
- "details",
- "p",
- ];
- a.backslashEscapesHTMLTags &&
- (e = e.replace(/\\<(\/?[^>]+?)>/g, function (e, a) {
- return "<" + a + ">";
- }));
- for (var s = 0; s < t.length; ++s)
- for (var i = new RegExp("^ {0,3}(<" + t[s] + "\\b[^>]*>)", "im"), o = "<" + t[s] + "\\b[^>]*>", l = "</" + t[s] + ">"; -1 !== (c = P.helper.regexIndexOf(e, i)); ) {
- var c = P.helper.splitAtIndex(e, c),
- u = P.helper.replaceRecursiveRegExp(c[1], r, o, l, "im");
- if (u === c[1]) break;
- e = c[0].concat(u);
- }
- return (
- (e = e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, P.subParser("makehtml.hashElement")(e, a, n))),
- (e = (e = P.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, P.subParser("makehtml.hashElement")(e, a, n))),
- (e = n.converter._dispatch("makehtml.hashHTMLBlocks.after", e, a, n).getText())
- );
- }),
- P.subParser("makehtml.hashHTMLSpans", function (e, a, r) {
- "use strict";
- return (
- (e = (e = (e = (e = (e = r.converter._dispatch("makehtml.hashHTMLSpans.before", e, a, r).getText()).replace(/<[^>]+?\/>/gi, function (e) {
- return P.helper._hashHTMLSpan(e, r);
- })).replace(/<([^>]+?)>[\s\S]*?<\/\1>/g, function (e) {
- return P.helper._hashHTMLSpan(e, r);
- })).replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g, function (e) {
- return P.helper._hashHTMLSpan(e, r);
- })).replace(/<[^>]+?>/gi, function (e) {
- return P.helper._hashHTMLSpan(e, r);
- })),
- (e = r.converter._dispatch("makehtml.hashHTMLSpans.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.unhashHTMLSpans", function (e, a, r) {
- "use strict";
- e = r.converter._dispatch("makehtml.unhashHTMLSpans.before", e, a, r).getText();
- for (var t = 0; t < r.gHtmlSpans.length; ++t) {
- for (var n = r.gHtmlSpans[t], s = 0; /¨C(\d+)C/.test(n); ) {
- var i = RegExp.$1,
- n = n.replace("¨C" + i + "C", r.gHtmlSpans[i]);
- if (10 === s) {
- console.error("maximum nesting of 10 spans reached!!!");
- break;
- }
- ++s;
- }
- e = e.replace("¨C" + t + "C", n);
- }
- return (e = r.converter._dispatch("makehtml.unhashHTMLSpans.after", e, a, r).getText());
- }),
- P.subParser("makehtml.hashPreCodeTags", function (e, n, s) {
- "use strict";
- e = s.converter._dispatch("makehtml.hashPreCodeTags.before", e, n, s).getText();
- return (
- (e = P.helper.replaceRecursiveRegExp(
- e,
- function (e, a, r, t) {
- r = r + P.subParser("makehtml.encodeCode")(a, n, s) + t;
- return "\n\n¨G" + (s.ghCodeBlocks.push({ text: e, codeblock: r }) - 1) + "G\n\n";
- },
- "^ {0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>",
- "^ {0,3}</code>\\s*</pre>",
- "gim"
- )),
- (e = s.converter._dispatch("makehtml.hashPreCodeTags.after", e, n, s).getText())
- );
- }),
- P.subParser("makehtml.headers", function (e, n, s) {
- "use strict";
- e = s.converter._dispatch("makehtml.headers.before", e, n, s).getText();
- var i = isNaN(parseInt(n.headerLevelStart)) ? 1 : parseInt(n.headerLevelStart),
- a = n.smoothLivePreview ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm,
- r = n.smoothLivePreview ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm,
- a =
- ((e = (e = e.replace(a, function (e, a) {
- var r = P.subParser("makehtml.spanGamut")(a, n, s),
- a = n.noHeaderId ? "" : ' id="' + o(a) + '"',
- a = "<h" + i + a + ">" + r + "</h" + i + ">";
- return P.subParser("makehtml.hashBlock")(a, n, s);
- })).replace(r, function (e, a) {
- var r = P.subParser("makehtml.spanGamut")(a, n, s),
- a = n.noHeaderId ? "" : ' id="' + o(a) + '"',
- t = i + 1,
- a = "<h" + t + a + ">" + r + "</h" + t + ">";
- return P.subParser("makehtml.hashBlock")(a, n, s);
- })),
- n.requireSpaceBeforeHeadingText ? /^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm : /^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm);
- function o(e) {
- var a = (e = n.customizedHeaderId && (a = e.match(/{([^{]+?)}\s*$/)) && a[1] ? a[1] : e),
- e = P.helper.isString(n.prefixHeaderId) ? n.prefixHeaderId : !0 === n.prefixHeaderId ? "section-" : "";
- return (
- n.rawPrefixHeaderId || (a = e + a),
- (a = (n.ghCompatibleHeaderId
- ? a
- .replace(/ /g, "-")
- .replace(/&/g, "")
- .replace(/¨T/g, "")
- .replace(/¨D/g, "")
- .replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g, "")
- : n.rawHeaderId
- ? a.replace(/ /g, "-").replace(/&/g, "&").replace(/¨T/g, "¨").replace(/¨D/g, "$").replace(/["']/g, "-")
- : a.replace(/[^\w]/g, "")
- ).toLowerCase()),
- n.rawPrefixHeaderId && (a = e + a),
- s.hashLinkCounts[a] ? (a = a + "-" + s.hashLinkCounts[a]++) : (s.hashLinkCounts[a] = 1),
- a
- );
- }
- return (
- (e = e.replace(a, function (e, a, r) {
- var t = r,
- t = (n.customizedHeaderId && (t = r.replace(/\s?{([^{]+?)}\s*$/, "")), P.subParser("makehtml.spanGamut")(t, n, s)),
- r = n.noHeaderId ? "" : ' id="' + o(r) + '"',
- a = i - 1 + a.length,
- r = "<h" + a + r + ">" + t + "</h" + a + ">";
- return P.subParser("makehtml.hashBlock")(r, n, s);
- })),
- (e = s.converter._dispatch("makehtml.headers.after", e, n, s).getText())
- );
- }),
- P.subParser("makehtml.horizontalRule", function (e, a, r) {
- "use strict";
- e = r.converter._dispatch("makehtml.horizontalRule.before", e, a, r).getText();
- var t = P.subParser("makehtml.hashBlock")("<hr />", a, r);
- return (
- (e = (e = (e = e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm, t)).replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm, t)).replace(/^ {0,2}( ?_){3,}[ \t]*$/gm, t)), (e = r.converter._dispatch("makehtml.horizontalRule.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.images", function (e, l, h) {
- "use strict";
- function a(e, a, r, t, n, s, i, o) {
- return c(e, a, r, (t = P.helper.applyBaseUrl(l.relativePathBaseUrl, t)), n, s, 0, o);
- }
- function c(e, a, r, t, n, s, i, o) {
- var l = h.gUrls,
- c = h.gTitles,
- u = h.gDimensions;
- if (((r = r.toLowerCase()), (o = o || ""), -1 < e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m))) t = "";
- else if ("" === t || null === t) {
- if (((t = "#" + (r = "" !== r && null !== r ? r : a.toLowerCase().replace(/ ?\n/g, " "))), P.helper.isUndefined(l[r]))) return e;
- (t = l[r]), P.helper.isUndefined(c[r]) || (o = c[r]), P.helper.isUndefined(u[r]) || ((n = u[r].width), (s = u[r].height));
- }
- a = a.replace(/"/g, """).replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback);
- e = '<img src="' + (t = t.replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback)) + '" alt="' + a + '"';
- return (
- o && P.helper.isString(o) && (e += ' title="' + (o = o.replace(/"/g, """).replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback)) + '"'),
- n && s && (e = e + (' width="' + (n = "*" === n ? "auto" : n)) + '" height="' + (s = "*" === s ? "auto" : s) + '"'),
- (e += " />")
- );
- }
- return (
- (e = (e = (e = (e = (e = (e = h.converter._dispatch("makehtml.images.before", e, l, h).getText()).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g, c)).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, a, r, t, n, s, i, o) {
- return c(e, a, r, (t = t.replace(/\s/g, "")), n, s, 0, o);
- }
- )).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g, a)).replace(
- /!\[([^\]]*?)][ \t]*()\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,
- a
- )).replace(/!\[([^\[\]]+)]()()()()()/g, c)),
- (e = h.converter._dispatch("makehtml.images.after", e, l, h).getText())
- );
- }),
- P.subParser("makehtml.italicsAndBold", function (e, a, r) {
- "use strict";
- return (
- (e = r.converter._dispatch("makehtml.italicsAndBold.before", e, a, r).getText()),
- (e = (e = (e = (e = a.literalMidWordUnderscores
- ? (e = (e = e.replace(/\b___(\S[\s\S]*?)___\b/g, function (e, a) {
- return "<strong><em>" + a + "</em></strong>";
- })).replace(/\b__(\S[\s\S]*?)__\b/g, function (e, a) {
- return "<strong>" + a + "</strong>";
- })).replace(/\b_(\S[\s\S]*?)_\b/g, function (e, a) {
- return "<em>" + a + "</em>";
- })
- : (e = (e = e.replace(/___(\S[\s\S]*?)___/g, function (e, a) {
- return /\S$/.test(a) ? "<strong><em>" + a + "</em></strong>" : e;
- })).replace(/__(\S[\s\S]*?)__/g, function (e, a) {
- return /\S$/.test(a) ? "<strong>" + a + "</strong>" : e;
- })).replace(/_([^\s_][\s\S]*?)_/g, function (e, a) {
- return /\S$/.test(a) ? "<em>" + a + "</em>" : e;
- })).replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (e, a) {
- return /\S$/.test(a) ? "<strong><em>" + a + "</em></strong>" : e;
- })).replace(/\*\*(\S[\s\S]*?)\*\*/g, function (e, a) {
- return /\S$/.test(a) ? "<strong>" + a + "</strong>" : e;
- })).replace(/\*([^\s*][\s\S]*?)\*/g, function (e, a) {
- return /\S$/.test(a) ? "<em>" + a + "</em>" : e;
- })),
- (e = r.converter._dispatch("makehtml.italicsAndBold.after", e, a, r).getText())
- );
- }),
- (s = "makehtml.links"),
- P.subParser("makehtml.links", function (e, a, r) {
- return (
- (e = r.converter._dispatch(s + ".start", e, a, r).getText()),
- (e = P.subParser("makehtml.links.reference")(e, a, r)),
- (e = P.subParser("makehtml.links.inline")(e, a, r)),
- (e = P.subParser("makehtml.links.referenceShortcut")(e, a, r)),
- (e = P.subParser("makehtml.links.angleBrackets")(e, a, r)),
- (e = (e = (e = P.subParser("makehtml.links.ghMentions")(e, a, r)).replace(/<a\s[^>]*>[\s\S]*<\/a>/g, function (e) {
- return P.helper._hashHTMLSpan(e, r);
- })).replace(/<img\s[^>]*\/?>/g, function (e) {
- return P.helper._hashHTMLSpan(e, r);
- })),
- (e = P.subParser("makehtml.links.naked")(e, a, r)),
- (e = r.converter._dispatch(s + ".end", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.links.inline", function (e, a, r) {
- var t = void 0 + ".inline",
- n = /\[(.*?)]()()()()\(<? ?>? ?(?:["'](.*)["'])?\)/g,
- s = /\[((?:\[[^\]]*]|[^\[\]])*)]()\s?\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,
- i = /\[([\S ]*?)]\s?()\( *<?([^\s'"]*?(?:\([\S]*?\)[\S]*?)?)>?\s*(?:()(['"])(.*?)\5)? *\)/g,
- o = /\[([\S ]*?)]\s?()\( *<?([^\s'"]*?(?:\([\S]*?\)[\S]*?)?)>?\s+()()\((.*?)\) *\)/g;
- return (
- (e = (e = (e = (e = (e = r.converter._dispatch(t + ".start", e, a, r).getText()).replace(n, l(n, t, a, r, !0))).replace(s, l(s, t, a, r))).replace(i, l(i, t, a, r))).replace(o, l(o, t, a, r))),
- (e = r.converter._dispatch(t + ".end", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.links.reference", function (e, a, r) {
- var t = void 0 + ".reference",
- n = /\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g;
- return (e = (e = r.converter._dispatch(t + ".start", e, a, r).getText()).replace(n, i(n, t, a, r))), (e = r.converter._dispatch(t + ".end", e, a, r).getText());
- }),
- P.subParser("makehtml.links.referenceShortcut", function (e, a, r) {
- var t = void 0 + ".referenceShortcut",
- n = /\[([^\[\]]+)]()()()()()/g;
- return (e = (e = r.converter._dispatch(t + ".start", e, a, r).getText()).replace(n, i(n, t, a, r))), (e = r.converter._dispatch(t + ".end", e, a, r).getText());
- }),
- P.subParser("makehtml.links.ghMentions", function (e, s, i) {
- var o = void 0 + "ghMentions";
- if (!s.ghMentions) return e;
- e = i.converter._dispatch(o + ".start", e, s, i).getText();
- var l = /(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d._-]+?[a-z\d]+)*))/gi;
- return (
- (e = e.replace(l, function (e, a, r, t, n) {
- if ("\\" === r) return a + t;
- if (!P.helper.isString(s.ghMentionsLink)) throw new Error("ghMentionsLink option must be a string");
- r = s.ghMentionsLink.replace(/{u}/g, n);
- return a + b(_(l, o + ".captureStart", e, t, null, r, null, s, i), s, i);
- })),
- (e = i.converter._dispatch(o + ".end", e, s, i).getText())
- );
- }),
- P.subParser("makehtml.links.angleBrackets", function (e, t, n) {
- var s = "makehtml.links.angleBrackets",
- i = ((e = n.converter._dispatch(s + ".start", e, t, n).getText()), /<(((?:https?|ftp):\/\/|www\.)[^'">\s]+)>/gi),
- o =
- ((e = e.replace(i, function (e, a, r) {
- return b(_(i, s + ".captureStart", e, a, null, (a = "www." === r ? "http://" + a : a), null, t, n), t, n);
- })),
- /<(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi);
- return (
- (e = e.replace(o, function (e, a) {
- var r = "mailto:";
- return (
- (a = P.subParser("makehtml.unescapeSpecialChars")(a, t, n)),
- t.encodeEmails ? ((r = P.helper.encodeEmailAddress(r + a)), (a = P.helper.encodeEmailAddress(a))) : (r += a),
- b(_(o, s + ".captureStart", e, a, null, r, null, t, n), t, n)
- );
- })),
- (e = n.converter._dispatch(s + ".end", e, t, n).getText())
- );
- }),
- P.subParser("makehtml.links.naked", function (e, u, h) {
- if (!u.simplifiedAutoLink) return e;
- var m = "makehtml.links.naked",
- d = ((e = h.converter._dispatch(m + ".start", e, u, h).getText()), /([_*~]*?)(((?:https?|ftp):\/\/|www\.)[^\s<>"'`´.-][^\s<>"'`´]*?\.[a-z\d.]+[^\s<>"']*)\1/gi),
- n =
- ((e = e.replace(d, function (e, a, r, t) {
- for (var n = "", s = r.length - 1; 0 <= s; --s) {
- var i = r.charAt(s);
- if (/[_*~,;:.!?]/.test(i)) (r = r.slice(0, -1)), (n = i + n);
- else if (/\)/.test(i)) {
- var o = r.match(/\(/g) || [],
- l = r.match(/\)/g);
- if (!(o.length < l.length)) break;
- (r = r.slice(0, -1)), (n = i + n);
- } else {
- if (!/]/.test(i)) break;
- (o = r.match(/\[/g) || []), (l = r.match(/\]/g));
- if (!(o.length < l.length)) break;
- (r = r.slice(0, -1)), (n = i + n);
- }
- }
- var c = r;
- return (
- (r = "www." === t ? "http://" + r : r), (c = c.replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback)), a + b(_(d, m + ".captureStart", e, c, null, r, null, u, h), u, h) + n + a
- );
- })),
- /(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim);
- return (
- (e = e.replace(n, function (e, a, r) {
- var t = "mailto:";
- return (
- (r = P.subParser("makehtml.unescapeSpecialChars")(r, u, h)),
- u.encodeEmails ? ((t = P.helper.encodeEmailAddress(t + r)), (r = P.helper.encodeEmailAddress(r))) : (t += r),
- a + b(_(n, m + ".captureStart", e, r, null, t, null, u, h), u, h)
- );
- })),
- (e = h.converter._dispatch(m + ".end", e, u, h).getText())
- );
- }),
- P.subParser("makehtml.lists", function (e, g, p) {
- "use strict";
- function h(e, a) {
- p.gListLevel++, (e = e.replace(/\n{2,}$/, "\n"));
- var r = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[([xX ])])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,
- d = /\n[ \t]*\n(?!¨0)/.test((e += "¨0"));
- return (
- g.disableForced4SpacesIndentedSublists && (r = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[([xX ])])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm),
- (e = (e = e.replace(r, function (e, a, r, t, n, s, i) {
- i = i && "" !== i.trim();
- var n = P.subParser("makehtml.outdent")(n, g, p),
- o = "";
- if (
- (s &&
- g.tasklists &&
- ((o = ' class="task-list-item'),
- g.moreStyling && (o += i ? " task-list-item-complete" : ""),
- (o += '" style="list-style-type: none;"'),
- (n = n.replace(/^[ \t]*\[([xX ])?]/m, function () {
- var e = '<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"';
- return i && (e += " checked"), (e += ">");
- }))),
- (n = n.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g, function (e) {
- return "¨A" + e;
- })),
- /^#+.+\n.+/.test(n) && (n = n.replace(/^(#+.+)$/m, "$1\n")),
- a || -1 < n.search(/\n{2,}/))
- ) {
- (n = P.subParser("makehtml.githubCodeBlocks")(n, g, p)),
- (n = P.subParser("makehtml.blockQuotes")(n, g, p)),
- (n = P.subParser("makehtml.headers")(n, g, p)),
- (n = P.subParser("makehtml.lists")(n, g, p)),
- (n = P.subParser("makehtml.codeBlocks")(n, g, p)),
- (n = P.subParser("makehtml.tables")(n, g, p));
- for (var l = (n = (n = (n = P.subParser("makehtml.hashHTMLBlocks")(n, g, p)).replace(/^\n+/g, "")).replace(/\n+$/g, "")).split(/\n{2,}/g), c = [], u = l.length, h = 0; h < u; h++) {
- var m = l[h];
- 0 <= m.search(/¨([KG])(\d+)\1/g) ? c.push(m) : 0 <= m.search(/\S/) && ((m = (m = P.subParser("makehtml.spanGamut")(m, g, p)).replace(/^([ \t]*)/g, "<p>")), (m += "</p>"), c.push(m));
- }
- n = (n = (n = c.join("\n")).replace(/^\n+/g, "")).replace(/\n+$/g, "");
- } else (n = (n = P.subParser("makehtml.lists")(n, g, p)).replace(/\n$/, "")), (n = (n = P.subParser("makehtml.hashHTMLBlocks")(n, g, p)).replace(/\n\n+/g, "\n\n")), (n = (d ? P.subParser("makehtml.paragraphs") : P.subParser("makehtml.spanGamut"))(n, g, p));
- return (n = "<li" + o + ">" + (n = n.replace("¨A", "")) + "</li>\n");
- })).replace(/¨0/g, "")),
- p.gListLevel--,
- (e = a ? e.replace(/\s+$/, "") : e)
- );
- }
- function m(e, a) {
- if ("ol" === a) {
- a = e.match(/^ *(\d+)\./);
- if (a && "1" !== a[1]) return ' start="' + a[1] + '"';
- }
- return "";
- }
- function n(n, s, i) {
- var e,
- o = g.disableForced4SpacesIndentedSublists ? /^ ?\d+\.[ \t]/gm : /^ {0,3}\d+\.[ \t]/gm,
- l = g.disableForced4SpacesIndentedSublists ? /^ ?[*+-][ \t]/gm : /^ {0,3}[*+-][ \t]/gm,
- c = "ul" === s ? o : l,
- u = "";
- return (
- -1 !== n.search(c)
- ? (function e(a) {
- var r = a.search(c),
- t = m(n, s);
- -1 !== r
- ? ((u += "\n\n<" + s + t + ">\n" + h(a.slice(0, r), !!i) + "</" + s + ">\n"), (c = "ul" === (s = "ul" === s ? "ol" : "ul") ? o : l), e(a.slice(r)))
- : (u += "\n\n<" + s + t + ">\n" + h(a, !!i) + "</" + s + ">\n");
- })(n)
- : ((e = m(n, s)), (u = "\n\n<" + s + e + ">\n" + h(n, !!i) + "</" + s + ">\n")),
- u
- );
- }
- return (
- (e = p.converter._dispatch("lists.before", e, g, p).getText()),
- (e += "¨0"),
- (e = (e = p.gListLevel
- ? e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm, function (e, a, r) {
- return n(a, -1 < r.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, a, r, t) {
- return n(r, -1 < t.search(/[*+-]/g) ? "ul" : "ol", !1);
- })).replace(/¨0/, "")),
- (e = p.converter._dispatch("makehtml.lists.after", e, g, p).getText())
- );
- }),
- P.subParser("makehtml.metadata", function (e, a, t) {
- "use strict";
- return a.metadata
- ? ((e = (e = (e = (e = t.converter._dispatch("makehtml.metadata.before", e, a, t).getText()).replace(/^\s*«««+(\S*?)\n([\s\S]+?)\n»»»+\n/, function (e, a, r) {
- return n(r), "¨M";
- })).replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/, function (e, a, r) {
- return a && (t.metadata.format = a), n(r), "¨M";
- })).replace(/¨M/g, "")),
- t.converter._dispatch("makehtml.metadata.after", e, a, t).getText())
- : e;
- function n(e) {
- (e = (e = (e = (t.metadata.raw = e).replace(/&/g, "&").replace(/"/g, """)).replace(/¨D/g, "$$").replace(/¨T/g, "¨")).replace(/\n {4}/g, " ")).replace(/^([\S ]+): +([\s\S]+?)$/gm, function (e, a, r) {
- return (t.metadata.parsed[a] = r), "";
- });
- }
- }),
- P.subParser("makehtml.outdent", function (e, a, r) {
- "use strict";
- return (e = (e = (e = r.converter._dispatch("makehtml.outdent.before", e, a, r).getText()).replace(/^(\t|[ ]{1,4})/gm, "¨0")).replace(/¨0/g, "")), (e = r.converter._dispatch("makehtml.outdent.after", e, a, r).getText());
- }),
- P.subParser("makehtml.paragraphs", function (e, a, r) {
- "use strict";
- for (var t = (e = (e = (e = r.converter._dispatch("makehtml.paragraphs.before", e, a, r).getText()).replace(/^\n+/g, "")).replace(/\n+$/g, "")).split(/\n{2,}/g), n = [], s = t.length, i = 0; i < s; i++) {
- var o = t[i];
- 0 <= o.search(/¨(K|G)(\d+)\1/g) ? n.push(o) : 0 <= o.search(/\S/) && ((o = (o = P.subParser("makehtml.spanGamut")(o, a, r)).replace(/^([ \t]*)/g, "<p>")), (o += "</p>"), n.push(o));
- }
- for (s = n.length, i = 0; i < s; i++) {
- for (var l = "", c = n[i], u = !1; /¨(K|G)(\d+)\1/.test(c); ) {
- var h = RegExp.$1,
- m = RegExp.$2;
- (l = (l = "K" === h ? r.gHtmlBlocks[m] : u ? P.subParser("makehtml.encodeCode")(r.ghCodeBlocks[m].text, a, r) : r.ghCodeBlocks[m].codeblock).replace(/\$/g, "$$$$")),
- (c = c.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/, l)),
- /^<pre\b[^>]*>\s*<code\b[^>]*>/.test(c) && (u = !0);
- }
- n[i] = c;
- }
- return (e = (e = (e = n.join("\n")).replace(/^\n+/g, "")).replace(/\n+$/g, "")), r.converter._dispatch("makehtml.paragraphs.after", e, a, r).getText();
- }),
- P.subParser("makehtml.runExtension", function (e, a, r, t) {
- "use strict";
- return e.filter ? (a = e.filter(a, t.converter, r)) : e.regex && ((t = e.regex) instanceof RegExp || (t = new RegExp(t, "g")), (a = a.replace(t, e.replace))), a;
- }),
- P.subParser("makehtml.spanGamut", function (e, a, r) {
- "use strict";
- return (
- (e = r.converter._dispatch("makehtml.span.before", e, a, r).getText()),
- (e = P.subParser("makehtml.codeSpans")(e, a, r)),
- (e = P.subParser("makehtml.escapeSpecialCharsWithinTagAttributes")(e, a, r)),
- (e = P.subParser("makehtml.encodeBackslashEscapes")(e, a, r)),
- (e = P.subParser("makehtml.images")(e, a, r)),
- (e = r.converter._dispatch("smakehtml.links.before", e, a, r).getText()),
- (e = P.subParser("makehtml.links")(e, a, r)),
- (e = r.converter._dispatch("smakehtml.links.after", e, a, r).getText()),
- (e = P.subParser("makehtml.emoji")(e, a, r)),
- (e = P.subParser("makehtml.underline")(e, a, r)),
- (e = P.subParser("makehtml.italicsAndBold")(e, a, r)),
- (e = P.subParser("makehtml.strikethrough")(e, a, r)),
- (e = P.subParser("makehtml.ellipsis")(e, a, r)),
- (e = P.subParser("makehtml.hashHTMLSpans")(e, a, r)),
- (e = P.subParser("makehtml.encodeAmpsAndAngles")(e, a, r)),
- a.simpleLineBreaks ? /\n\n¨K/.test(e) || (e = e.replace(/\n+/g, "<br />\n")) : (e = e.replace(/ +\n/g, "<br />\n")),
- (e = r.converter._dispatch("makehtml.spanGamut.after", e, a, r).getText())
- );
- }),
- P.subParser("makehtml.strikethrough", function (e, a, r) {
- "use strict";
- return (
- a.strikethrough &&
- ((e = (e = r.converter._dispatch("makehtml.strikethrough.before", e, a, r).getText()).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g, function (e, a) {
- return "<del>" + a + "</del>";
- })),
- (e = r.converter._dispatch("makehtml.strikethrough.after", e, a, r).getText())),
- e
- );
- }),
- P.subParser("makehtml.stripLinkDefinitions", function (o, l, c) {
- "use strict";
- function e(e, a, r, t, n, s, i) {
- return (
- (a = a.toLowerCase()),
- o.toLowerCase().split(a).length - 1 < 2
- ? e
- : (r.match(/^data:.+?\/.+?;base64,/) ? (c.gUrls[a] = r.replace(/\s/g, "")) : ((r = P.helper.applyBaseUrl(l.relativePathBaseUrl, r)), (c.gUrls[a] = P.subParser("makehtml.encodeAmpsAndAngles")(r, l, c))),
- s ? s + i : (i && (c.gTitles[a] = i.replace(/"|'/g, """)), l.parseImgDimensions && t && n && (c.gDimensions[a] = { width: t, height: n }), ""))
- );
- }
- return (o = (o = (o = (o += "¨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/, ""));
- }),
- P.subParser("makehtml.tables", function (e, y, x) {
- "use strict";
- if (!y.tables) return e;
- function a(e) {
- for (var a = e.split("\n"), r = 0; r < a.length; ++r)
- /^ {0,3}\|/.test(a[r]) && (a[r] = a[r].replace(/^ {0,3}\|/, "")), /\|[ \t]*$/.test(a[r]) && (a[r] = a[r].replace(/\|[ \t]*$/, "")), (a[r] = P.subParser("makehtml.codeSpans")(a[r], y, x));
- var t,
- n,
- s,
- i,
- o,
- l = a[0].split("|").map(function (e) {
- return e.trim();
- }),
- c = a[1].split("|").map(function (e) {
- return e.trim();
- }),
- u = [],
- h = [],
- m = [],
- d = [];
- for (a.shift(), a.shift(), r = 0; r < a.length; ++r)
- "" !== a[r].trim() &&
- u.push(
- a[r].split("|").map(function (e) {
- return e.trim();
- })
- );
- if (l.length < c.length) return e;
- for (r = 0; r < c.length; ++r)
- m.push(((t = c[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 < l.length; ++r)
- P.helper.isUndefined(m[r]) && (m[r] = ""),
- h.push(
- ((n = l[r]),
- (s = m[r]),
- void 0,
- (i = ""),
- (n = n.trim()),
- "<th" + (i = y.tablesHeaderId || y.tableHeaderId ? ' id="' + n.replace(/ /g, "_").toLowerCase() + '"' : i) + s + ">" + (n = P.subParser("makehtml.spanGamut")(n, y, x)) + "</th>\n")
- );
- for (r = 0; r < u.length; ++r) {
- for (var g = [], p = 0; p < h.length; ++p) P.helper.isUndefined(u[r][p]), g.push(((o = u[r][p]), "<td" + m[p] + ">" + P.subParser("makehtml.spanGamut")(o, y, x) + "</td>\n"));
- d.push(g);
- }
- for (var _ = h, b = d, f = "<table>\n<thead>\n<tr>\n", k = _.length, w = 0; w < k; ++w) f += _[w];
- for (f += "</tr>\n</thead>\n<tbody>\n", w = 0; w < b.length; ++w) {
- f += "<tr>\n";
- for (var v = 0; v < k; ++v) f += b[w][v];
- f += "</tr>\n";
- }
- return (f += "</tbody>\n</table>\n");
- }
- return (
- (e = (e = (e = (e = x.converter._dispatch("makehtml.tables.before", e, y, x).getText()).replace(/\\(\|)/g, P.helper.escapeCharactersCallback)).replace(
- /^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*[-=]{2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*[-=]{2,}[\s\S]+?(?:\n\n|¨0)/gm,
- a
- )).replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*[-=]{2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm, a)),
- (e = x.converter._dispatch("makehtml.tables.after", e, y, x).getText())
- );
- }),
- P.subParser("makehtml.underline", function (e, a, r) {
- "use strict";
- return a.underline
- ? ((e = r.converter._dispatch("makehtml.underline.before", e, a, r).getText()),
- (e = (e = a.literalMidWordUnderscores
- ? (e = e.replace(/\b___(\S[\s\S]*?)___\b/g, function (e, a) {
- return "<u>" + a + "</u>";
- })).replace(/\b__(\S[\s\S]*?)__\b/g, function (e, a) {
- return "<u>" + a + "</u>";
- })
- : (e = e.replace(/___(\S[\s\S]*?)___/g, function (e, a) {
- return /\S$/.test(a) ? "<u>" + a + "</u>" : e;
- })).replace(/__(\S[\s\S]*?)__/g, function (e, a) {
- return /\S$/.test(a) ? "<u>" + a + "</u>" : e;
- })).replace(/(_)/g, P.helper.escapeCharactersCallback)),
- r.converter._dispatch("makehtml.underline.after", e, a, r).getText())
- : e;
- }),
- P.subParser("makehtml.unescapeSpecialChars", function (e, a, r) {
- "use strict";
- return (
- (e = (e = r.converter._dispatch("makehtml.unescapeSpecialChars.before", e, a, r).getText()).replace(/¨E(\d+)E/g, function (e, a) {
- a = parseInt(a);
- return String.fromCharCode(a);
- })),
- (e = r.converter._dispatch("makehtml.unescapeSpecialChars.after", e, a, r).getText())
- );
- }),
- P.subParser("makeMarkdown.blockquote", function (e, a) {
- "use strict";
- var r = "";
- if (e.hasChildNodes())
- for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) {
- var i = P.subParser("makeMarkdown.node")(t[s], a);
- "" !== i && (r += i);
- }
- return (r = "> " + (r = r.trim()).split("\n").join("\n> "));
- }),
- P.subParser("makeMarkdown.break", function () {
- "use strict";
- return " \n";
- }),
- P.subParser("makeMarkdown.codeBlock", function (e, a) {
- "use strict";
- var r = e.getAttribute("language"),
- e = e.getAttribute("precodenum");
- return "```" + r + "\n" + a.preList[e] + "\n```";
- }),
- P.subParser("makeMarkdown.codeSpan", function (e) {
- "use strict";
- return "`" + e.innerHTML + "`";
- }),
- P.subParser("makeMarkdown.emphasis", function (e, a) {
- "use strict";
- var r = "";
- if (e.hasChildNodes()) {
- r += "*";
- for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a);
- r += "*";
- }
- return r;
- }),
- P.subParser("makeMarkdown.header", function (e, a, r) {
- "use strict";
- var r = new Array(r + 1).join("#"),
- t = "";
- if (e.hasChildNodes()) for (var t = r + " ", n = e.childNodes, s = n.length, i = 0; i < s; ++i) t += P.subParser("makeMarkdown.node")(n[i], a);
- return t;
- }),
- P.subParser("makeMarkdown.hr", function () {
- "use strict";
- return "---";
- }),
- P.subParser("makeMarkdown.image", function (e) {
- "use strict";
- var a = "";
- return (
- e.hasAttribute("src") &&
- ((a = (a += " + "<" + e.getAttribute("src") + ">"),
- e.hasAttribute("width") && e.hasAttribute("height") && (a += " =" + e.getAttribute("width") + "x" + e.getAttribute("height")),
- e.hasAttribute("title") && (a += ' "' + e.getAttribute("title") + '"'),
- (a += ")")),
- a
- );
- }),
- P.subParser("makeMarkdown.input", function (e, a) {
- "use strict";
- for (var r = "", t = (null !== e.getAttribute("checked") ? (r += "[x]") : (r += "[ ]"), e.childNodes), n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a);
- return r;
- }),
- P.subParser("makeMarkdown.links", function (e, a) {
- "use strict";
- var r = "";
- if (e.hasChildNodes() && e.hasAttribute("href")) {
- for (var t = e.childNodes, n = t.length, r = "[", s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a);
- (r = (r += "](") + ("<" + e.getAttribute("href") + ">")), e.hasAttribute("title") && (r += ' "' + e.getAttribute("title") + '"'), (r += ")");
- }
- return r;
- }),
- P.subParser("makeMarkdown.list", function (e, a, r) {
- "use strict";
- var t = "";
- if (!e.hasChildNodes()) return "";
- for (var n = e.childNodes, s = n.length, i = e.getAttribute("start") || 1, o = 0; o < s; ++o)
- void 0 !== n[o].tagName && "li" === n[o].tagName.toLowerCase() && ((t += ("ol" === r ? i.toString() + ". " : "- ") + P.subParser("makeMarkdown.listItem")(n[o], a)), ++i);
- return t.trim();
- }),
- P.subParser("makeMarkdown.listItem", function (e, a) {
- "use strict";
- for (var r = "", t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a);
- return (
- /\n$/.test(r)
- ? (r = r
- .split("\n")
- .join("\n ")
- .replace(/^ {4}$/gm, "")
- .replace(/\n\n+/g, "\n\n"))
- : (r += "\n"),
- r
- );
- }),
- P.subParser("makeMarkdown.node", function (e, a, r) {
- "use strict";
- r = r || !1;
- var t = "";
- if (3 === e.nodeType) return P.subParser("makeMarkdown.txt")(e, a);
- if (8 === e.nodeType) return "\x3c!--" + e.data + "--\x3e\n\n";
- if (1 !== e.nodeType) return "";
- switch (e.tagName.toLowerCase()) {
- case "h1":
- r || (t = P.subParser("makeMarkdown.header")(e, a, 1) + "\n\n");
- break;
- case "h2":
- r || (t = P.subParser("makeMarkdown.header")(e, a, 2) + "\n\n");
- break;
- case "h3":
- r || (t = P.subParser("makeMarkdown.header")(e, a, 3) + "\n\n");
- break;
- case "h4":
- r || (t = P.subParser("makeMarkdown.header")(e, a, 4) + "\n\n");
- break;
- case "h5":
- r || (t = P.subParser("makeMarkdown.header")(e, a, 5) + "\n\n");
- break;
- case "h6":
- r || (t = P.subParser("makeMarkdown.header")(e, a, 6) + "\n\n");
- break;
- case "p":
- r || (t = P.subParser("makeMarkdown.paragraph")(e, a) + "\n\n");
- break;
- case "blockquote":
- r || (t = P.subParser("makeMarkdown.blockquote")(e, a) + "\n\n");
- break;
- case "hr":
- r || (t = P.subParser("makeMarkdown.hr")(e, a) + "\n\n");
- break;
- case "ol":
- r || (t = P.subParser("makeMarkdown.list")(e, a, "ol") + "\n\n");
- break;
- case "ul":
- r || (t = P.subParser("makeMarkdown.list")(e, a, "ul") + "\n\n");
- break;
- case "precode":
- r || (t = P.subParser("makeMarkdown.codeBlock")(e, a) + "\n\n");
- break;
- case "pre":
- r || (t = P.subParser("makeMarkdown.pre")(e, a) + "\n\n");
- break;
- case "table":
- r || (t = P.subParser("makeMarkdown.table")(e, a) + "\n\n");
- break;
- case "code":
- t = P.subParser("makeMarkdown.codeSpan")(e, a);
- break;
- case "em":
- case "i":
- t = P.subParser("makeMarkdown.emphasis")(e, a);
- break;
- case "strong":
- case "b":
- t = P.subParser("makeMarkdown.strong")(e, a);
- break;
- case "del":
- t = P.subParser("makeMarkdown.strikethrough")(e, a);
- break;
- case "a":
- t = P.subParser("makeMarkdown.links")(e, a);
- break;
- case "img":
- t = P.subParser("makeMarkdown.image")(e, a);
- break;
- case "br":
- t = P.subParser("makeMarkdown.break")(e, a);
- break;
- case "input":
- t = P.subParser("makeMarkdown.input")(e, a);
- break;
- default:
- t = e.outerHTML + "\n\n";
- }
- return t;
- }),
- P.subParser("makeMarkdown.paragraph", function (e, a) {
- "use strict";
- var r = "";
- if (e.hasChildNodes()) for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a);
- return (r = r.trim());
- }),
- P.subParser("makeMarkdown.pre", function (e, a) {
- "use strict";
- e = e.getAttribute("prenum");
- return "<pre>" + a.preList[e] + "</pre>";
- }),
- P.subParser("makeMarkdown.strikethrough", function (e, a) {
- "use strict";
- var r = "";
- if (e.hasChildNodes()) {
- r += "~~";
- for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a);
- r += "~~";
- }
- return r;
- }),
- P.subParser("makeMarkdown.strong", function (e, a) {
- "use strict";
- var r = "";
- if (e.hasChildNodes()) {
- r += "**";
- for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a);
- r += "**";
- }
- return r;
- }),
- P.subParser("makeMarkdown.table", function (e, a) {
- "use strict";
- for (var r = "", t = [[], []], n = e.querySelectorAll("thead>tr>th"), s = e.querySelectorAll("tbody>tr"), i = 0; i < n.length; ++i) {
- var o = P.subParser("makeMarkdown.tableCell")(n[i], a),
- l = "---";
- if (n[i].hasAttribute("style"))
- switch (n[i].getAttribute("style").toLowerCase().replace(/\s/g, "")) {
- case "text-align:left;":
- l = ":---";
- break;
- case "text-align:right;":
- l = "---:";
- break;
- case "text-align:center;":
- l = ":---:";
- }
- (t[0][i] = o.trim()), (t[1][i] = l);
- }
- for (i = 0; i < s.length; ++i)
- for (var c = t.push([]) - 1, u = s[i].getElementsByTagName("td"), h = 0; h < n.length; ++h) {
- var m = " ";
- void 0 !== u[h] && (m = P.subParser("makeMarkdown.tableCell")(u[h], a)), t[c].push(m);
- }
- var d = 3;
- for (i = 0; i < t.length; ++i)
- for (h = 0; h < t[i].length; ++h) {
- var g = t[i][h].length;
- d < g && (d = g);
- }
- for (i = 0; i < t.length; ++i) {
- for (h = 0; h < t[i].length; ++h)
- 1 === i ? (":" === t[i][h].slice(-1) ? (t[i][h] = P.helper.padEnd(t[i][h].slice(0, -1), d - 1, "-") + ":") : (t[i][h] = P.helper.padEnd(t[i][h], d, "-"))) : (t[i][h] = P.helper.padEnd(t[i][h], d));
- r += "| " + t[i].join(" | ") + " |\n";
- }
- return r.trim();
- }),
- P.subParser("makeMarkdown.tableCell", function (e, a) {
- "use strict";
- var r = "";
- if (!e.hasChildNodes()) return "";
- for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a, !0);
- return r.trim();
- }),
- P.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 = P.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]:"))
- );
- }),
- (P.Converter = function (e) {
- "use strict";
- var a,
- r,
- n = {},
- o = [],
- l = [],
- c = {},
- t = d,
- s = { parsed: {}, raw: "", format: "" };
- for (a in ((e = e || {}), m)) m.hasOwnProperty(a) && (n[a] = m[a]);
- if ("object" != typeof e) throw Error("Converter expects the passed parameter to be an object, but " + typeof e + " was passed instead.");
- for (r in e) e.hasOwnProperty(r) && (n[r] = e[r]);
- function i(e, a) {
- if (((a = a || null), P.helper.isString(e))) {
- if (((a = e = P.helper.stdExtName(e)), P.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 r = P.extensions[e],
- t = e;
- if (("function" == typeof r && (r = r(new P.Converter())), P.helper.isArray(r) || (r = [r]), !(t = p(r, t)).valid)) throw Error(t.error);
- for (var n = 0; n < r.length; ++n)
- switch (r[n].type) {
- case "lang":
- o.push(r[n]);
- break;
- case "output":
- l.push(r[n]);
- break;
- default:
- throw Error("Extension loader error: Type unrecognized!!!");
- }
- return;
- }
- if (P.helper.isUndefined(h[e])) throw Error('Extension "' + e + '" could not be loaded. It was either not found or is not a valid extension.');
- e = h[e];
- }
- "function" == typeof e && (e = e());
- t = p((e = P.helper.isArray(e) ? e : [e]), a);
- if (!t.valid) throw Error(t.error);
- for (var s = 0; s < e.length; ++s) {
- switch (e[s].type) {
- case "lang":
- o.push(e[s]);
- break;
- case "output":
- l.push(e[s]);
- }
- if (e[s].hasOwnProperty("listeners")) for (var i in e[s].listeners) e[s].listeners.hasOwnProperty(i) && u(i, e[s].listeners[i]);
- }
- }
- function u(e, a) {
- if (!P.helper.isString(e)) throw Error("Invalid argument in converter.listen() method: name must be a string, but " + typeof e + " given");
- if ("function" != typeof a) throw Error("Invalid argument in converter.listen() method: callback must be a function, but " + typeof a + " given");
- (e = e.toLowerCase()), c.hasOwnProperty(e) || (c[e] = []), c[e].push(a);
- }
- n.extensions && P.helper.forEach(n.extensions, i),
- (this._dispatch = function (e, a, r, t, n) {
- e = e.toLowerCase();
- var n = n || {},
- s = ((n.converter = this), (n.text = a), (n.options = r), (n.globals = t), new P.helper.Event(e, a, n));
- if (c.hasOwnProperty(e))
- for (var i = 0; i < c[e].length; ++i) {
- var o = c[e][i](s);
- o && void 0 !== o && s.setText(o);
- }
- return s;
- }),
- (this.listen = function (e, a) {
- return u(e, a), this;
- }),
- (this.makeHtml = function (a) {
- if (!a) return a;
- var e,
- r,
- t = {
- gHtmlBlocks: [],
- gHtmlMdBlocks: [],
- gHtmlSpans: [],
- gUrls: {},
- gTitles: {},
- gDimensions: {},
- gListLevel: 0,
- hashLinkCounts: {},
- langExtensions: o,
- outputModifiers: l,
- converter: this,
- ghCodeBlocks: [],
- metadata: { parsed: {}, raw: "", format: "" },
- };
- return (
- (a = (a = (a = (a = (a = a.replace(/¨/g, "¨T")).replace(/\$/g, "¨D")).replace(/\r\n/g, "\n")).replace(/\r/g, "\n")).replace(/\u00A0/g, " ")),
- n.smartIndentationFix && ((r = (e = a).match(/^\s*/)[0].length), (r = new RegExp("^\\s{0," + r + "}", "gm")), (a = e.replace(r, ""))),
- (a = "\n\n" + a + "\n\n"),
- (a = (a = P.subParser("makehtml.detab")(a, n, t)).replace(/^[ \t]+$/gm, "")),
- P.helper.forEach(o, function (e) {
- a = P.subParser("makehtml.runExtension")(e, a, n, t);
- }),
- (a = P.subParser("makehtml.metadata")(a, n, t)),
- (a = P.subParser("makehtml.hashPreCodeTags")(a, n, t)),
- (a = P.subParser("makehtml.githubCodeBlocks")(a, n, t)),
- (a = P.subParser("makehtml.hashHTMLBlocks")(a, n, t)),
- (a = P.subParser("makehtml.hashCodeTags")(a, n, t)),
- (a = P.subParser("makehtml.stripLinkDefinitions")(a, n, t)),
- (a = P.subParser("makehtml.blockGamut")(a, n, t)),
- (a = P.subParser("makehtml.unhashHTMLSpans")(a, n, t)),
- (a = (a = (a = P.subParser("makehtml.unescapeSpecialChars")(a, n, t)).replace(/¨D/g, "$$")).replace(/¨T/g, "¨")),
- (a = P.subParser("makehtml.completeHTMLDocument")(a, n, t)),
- P.helper.forEach(l, function (e) {
- a = P.subParser("makehtml.runExtension")(e, a, n, t);
- }),
- (s = t.metadata),
- a
- );
- }),
- (this.makeMarkdown = function (e) {
- e = (e = (e = e.replace(/\r\n/g, "\n")).replace(/\r/g, "\n")).replace(/>[ \t]+</, ">¨NBSP;<");
- for (
- var a = P.helper.document.createElement("div"),
- r =
- ((a.innerHTML = e),
- {
- preList: (function (e) {
- for (var a = e.querySelectorAll("pre"), r = [], t = 0; t < a.length; ++t)
- if (1 === a[t].childElementCount && "code" === a[t].firstChild.tagName.toLowerCase()) {
- var n = a[t].firstChild.innerHTML.trim(),
- s = a[t].firstChild.getAttribute("data-language") || "";
- if ("" === s)
- for (var i = a[t].firstChild.className.split(" "), o = 0; o < i.length; ++o) {
- var l = i[o].match(/^language-(.+)$/);
- if (null !== l) {
- s = l[1];
- break;
- }
- }
- (n = P.helper.unescapeHTMLEntities(n)), r.push(n), (a[t].outerHTML = '<precode language="' + s + '" precodenum="' + t.toString() + '"></precode>');
- } else r.push(a[t].innerHTML), (a[t].innerHTML = ""), a[t].setAttribute("prenum", t.toString());
- return r;
- })(a),
- }),
- t =
- (!(function e(a) {
- for (var r = 0; r < a.childNodes.length; ++r) {
- var t = a.childNodes[r];
- 3 === t.nodeType
- ? /\S/.test(t.nodeValue) || /^[ ]+$/.test(t.nodeValue)
- ? ((t.nodeValue = t.nodeValue.split("\n").join(" ")), (t.nodeValue = t.nodeValue.replace(/(\s)+/g, "$1")))
- : (a.removeChild(t), --r)
- : 1 === t.nodeType && e(t);
- }
- })(a),
- a.childNodes),
- n = "",
- s = 0;
- s < t.length;
- s++
- )
- n += P.subParser("makeMarkdown.node")(t[s], r);
- return n;
- }),
- (this.setOption = function (e, a) {
- n[e] = a;
- }),
- (this.getOption = function (e) {
- return n[e];
- }),
- (this.getOptions = function () {
- return n;
- }),
- (this.addExtension = function (e, a) {
- i(e, (a = a || null));
- }),
- (this.useExtension = function (e) {
- i(e);
- }),
- (this.setFlavor = function (e) {
- if (!g.hasOwnProperty(e)) throw Error(e + " flavor was not found");
- var a,
- r = g[e];
- for (a in ((t = e), r)) r.hasOwnProperty(a) && (n[a] = r[a]);
- }),
- (this.getFlavor = function () {
- return t;
- }),
- (this.removeExtension = function (e) {
- P.helper.isArray(e) || (e = [e]);
- for (var a = 0; a < e.length; ++a) {
- for (var r = e[a], t = 0; t < o.length; ++t) o[t] === r && o.splice(t, 1);
- for (var n = 0; n < l.length; ++n) l[n] === r && l.splice(n, 1);
- }
- }),
- (this.getAllExtensions = function () {
- return { language: o, output: l };
- }),
- (this.getMetadata = function (e) {
- return e ? s.raw : s.parsed;
- }),
- (this.getMetadataFormat = function () {
- return s.format;
- }),
- (this._setMetadataPair = function (e, a) {
- s.parsed[e] = a;
- }),
- (this._setMetadataFormat = function (e) {
- s.format = e;
- }),
- (this._setMetadataRaw = function (e) {
- s.raw = e;
- });
- });
- "function" == typeof define && define.amd
- ? define(function () {
- "use strict";
- return P;
- })
- : "undefined" != typeof module && module.exports
- ? (module.exports = P)
- : (this.showdown = P);
- }.call(this);
-
-
-
- setTimeout(function(){
- var cfg = new MonkeyConfig({
- title: 'Configure',
- menuCommand: true,
- params: {
- 'Automatic Temperature': {
- type: 'checkbox',
- default: true
- },
- 'Temperature': {
- type: 'number',
- default: '1'
- },
- 'Automatic Maximum Length': {
- type: 'checkbox',
- default: true
- },
- 'Maximum Length': {
- type: 'number',
- default: '2048'
- },
- 'Automatic Instructions': {
- type: 'checkbox',
- default: true
- },
- chatGPT_instructions: {
- type: 'text',
- default: ''
- },
-
- },
- // onSave: setOptions
- })
-
- GM_setValue('fullcontent','')
- var rootpath = "#root > div.route-container > div > div.pg-root.page-body.full-width.flush > div > div.pg-body";
- var path = rootpath + " > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-footer > span > button.btn.btn-sm.btn-minimal.btn-neutral"
- $('<button id="continue" tabindex="0" class="btn btn-sm btn-filled btn-primary" type="button" data-testid="pg-submit-btn" aria-haspopup="true" aria-expanded="false"><span class="btn-label-wrap"><span class="btn-label-inner">Continue‍</span></span></button>').insertAfter(path)
-
- var e = jQuery.Event("keypress");
- e.which = 9;
- e.keyCode = 9;
-
- if (cfg.get('Automatic Temperature')) {
- $(rootpath + " > div.pg-right > div.pg-right-content > div > div > div:nth-child(3) > div > div.css-1povu0j > input").val(Number(cfg.get('Temperature')))
- $(rootpath + " > div.pg-right > div.pg-right-content > div > div > div:nth-child(3) > div > div.css-1povu0j > input").focus().trigger(e);
- }
-
- if (cfg.get('Automatic Maximum Length')) {
- $("body > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div:nth-child(1) > div:nth-child(4) > div:nth-child(1) > div:nth-child(1) > input:nth-child(2)").val(Number(cfg.get('Maximum Length')))
- $("body > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div:nth-child(1) > div:nth-child(4) > div:nth-child(1) > div:nth-child(1) > input:nth-child(2)").focus().trigger(e);
- }
-
- // chat-pg-instructions
- $(rootpath + ' > div.pg-editor > div > div > div:nth-child(1) > div > div.text-input-header-wrapper.overflow-wrapper.text-input > textarea').focus()
-
- if (cfg.get('Automatic Instructions')) {
- $(rootpath + ' > div.pg-editor > div > div > div:nth-child(1) > div > div.text-input-header-wrapper.overflow-wrapper.text-input > textarea').text(cfg.get('chatGPT_instructions'))
- }
-
- $("button[id='continue']").click(function(){
- $(rootpath + " > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-panel-wrapper > div > div > div.chat-pg-message.add-message")[0].click()
- setTimeout(function(){
- $(rootpath + " > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-panel-wrapper > div > div > div:nth-child(3) > div.text-input-with-focus > textarea").text('continue')
- }, 500);
- setTimeout(function(){
- $(rootpath + " > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-footer > span > button:nth-child(1)")[0].click()
- }, 1000);
- });
-
- /*--------------------*/
-
- function export_text(){
-
- console.clear()
- var pattern = $("#root > div.route-container > div > div.pg-root.page-body.full-width.flush > div > div.pg-body > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-panel-wrapper > div > div > div")
-
- $.each(pattern , function (index, value){
- content = GM_getValue('fullcontent') + content
- var role = $(this).find('.chat-message-role-text').text()
- var content = $(this).find('.text-input-with-focus').text()
-
- if (role==='assistant'){
- //console.log('role='+role)
- //console.log('index='+index)
- console.log(content)
- GM_setValue('fullcontent',content)
- }
- }
- )}
-
- function appendValue(crap) {
- let currentValue = GM_getValue('fullcontent', '');
- let newValue = currentValue + crap
- GM_setValue('fullcontent', newValue);
- }
-
- $('<button id="export" tabindex="0" class="btn btn-sm btn-filled btn-primary" type="button" data-testid="pg-submit-btn" aria-haspopup="true" aria-expanded="false"><span class="btn-label-wrap"><span class="btn-label-inner">Export‍</span></span></button>').insertAfter(path)
-
- $("button[id='export']").click(function(){
- var pattern = $("#root > div.route-container > div > div.pg-root.page-body.full-width.flush > div > div.pg-body > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-panel-wrapper > div > div > div")
-
- /*
- GM_setClipboard(GM_getValue('fullcontent'), "text");
- */
-
- for (let i = 0; i < localStorage.length; i++) {
- const key = localStorage.key(i);
-
- if (key.startsWith('oai/user')) {
- var crap = localStorage.getItem(localStorage.key(i))
- appendValue(crap)
- }
- }
-
- var markdown = GM_getValue('fullcontent')
-
- var converter = new showdown.Converter()
- var zhtml = converter.makeHtml(markdown)
-
- GM_setClipboard(GM_getValue('fullcontent'), zhtml);
- alert('Copied to clipboard')
- })
-
- }, 1000);
- })(jQuery);