2017-04-11 22:14:25 +08:00
|
|
|
|
(function e (t, n, r) { function s (o, u) { if (!n[o]) { if (!t[o]) { var a = typeof require === 'function' && require; if (!u && a) return a(o, !0); if (i) return i(o, !0); throw new Error("Cannot find module '" + o + "'") } var f = n[o] = {exports: {}}; t[o][0].call(f.exports, function (e) { var n = t[o][1][e]; return s(n || e) }, f, f.exports, e, t, n, r) } return n[o].exports } var i = typeof require === 'function' && require; for (var o = 0; o < r.length; o++)s(r[o]); return s })({1: [function (require, module, exports) {
|
|
|
|
|
(function (global) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
/*! http://mths.be/he v0.5.0 by @mathias | MIT license */
|
2017-04-11 22:14:25 +08:00
|
|
|
|
;(function (root) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Detect free variables `exports`.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var freeExports = typeof exports === 'object' && exports
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
|
|
|
|
// Detect free variable `module`.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var freeModule = typeof module === 'object' && module &&
|
|
|
|
|
module.exports == freeExports && module
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
|
|
|
|
// Detect free variable `global`, from Node.js or Browserified code,
|
|
|
|
|
// and use it as `root`.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var freeGlobal = typeof global === 'object' && global
|
|
|
|
|
if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
|
|
|
|
|
root = freeGlobal
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
2017-04-11 22:14:25 +08:00
|
|
|
|
/* -------------------------------------------------------------------------- */
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
|
|
|
|
// All astral symbols.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// All ASCII symbols (not just printable ASCII) except those listed in the
|
|
|
|
|
// first column of the overrides table.
|
|
|
|
|
// http://whatwg.org/html/tokenization.html#table-charref-overrides
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var regexAsciiWhitelist = /[\x01-\x7F]/g
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or
|
|
|
|
|
// code points listed in the first column of the overrides table on
|
|
|
|
|
// http://whatwg.org/html/tokenization.html#table-charref-overrides.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g
|
|
|
|
|
var encodeMap = {'\xC1': 'Aacute', '\xE1': 'aacute', '\u0102': 'Abreve', '\u0103': 'abreve', '\u223E': 'ac', '\u223F': 'acd', '\u223E\u0333': 'acE', '\xC2': 'Acirc', '\xE2': 'acirc', '\xB4': 'acute', '\u0410': 'Acy', '\u0430': 'acy', '\xC6': 'AElig', '\xE6': 'aelig', '\u2061': 'af', '\uD835\uDD04': 'Afr', '\uD835\uDD1E': 'afr', '\xC0': 'Agrave', '\xE0': 'agrave', '\u2135': 'aleph', '\u0391': 'Alpha', '\u03B1': 'alpha', '\u0100': 'Amacr', '\u0101': 'amacr', '\u2A3F': 'amalg', '&': 'amp', '\u2A55': 'andand', '\u2A53': 'And', '\u2227': 'and', '\u2A5C': 'andd', '\u2A58': 'andslope', '\u2A5A': 'andv', '\u2220': 'ang', '\u29A4': 'ange', '\u29A8': 'angmsdaa', '\u29A9': 'angmsdab', '\u29AA': 'angmsdac', '\u29AB': 'angmsdad', '\u29AC': 'angmsdae', '\u29AD': 'angmsdaf', '\u29AE': 'angmsdag', '\u29AF': 'angmsdah', '\u2221': 'angmsd', '\u221F': 'angrt', '\u22BE': 'angrtvb', '\u299D': 'angrtvbd', '\u2222': 'angsph', '\xC5': 'angst', '\u237C': 'angzarr', '\u0104': 'Aogon', '\u0105': 'aogon', '\uD835\uDD38': 'Aopf', '\uD835\uDD52': 'aopf', '\u2A6F': 'apacir', '\u2248': 'ap', '\u2A70': 'apE', '\u224A': 'ape', '\u224B': 'apid', '\'': 'apos', '\xE5': 'aring', '\uD835\uDC9C': 'Ascr', '\uD835\uDCB6': 'ascr', '\u2254': 'colone', '*': 'ast', '\u224D': 'CupCap', '\xC3': 'Atilde', '\xE3': 'atilde', '\xC4': 'Auml', '\xE4': 'auml', '\u2233': 'awconint', '\u2A11': 'awint', '\u224C': 'bcong', '\u03F6': 'bepsi', '\u2035': 'bprime', '\u223D': 'bsim', '\u22CD': 'bsime', '\u2216': 'setmn', '\u2AE7': 'Barv', '\u22BD': 'barvee', '\u2305': 'barwed', '\u2306': 'Barwed', '\u23B5': 'bbrk', '\u23B6': 'bbrktbrk', '\u0411': 'Bcy', '\u0431': 'bcy', '\u201E': 'bdquo', '\u2235': 'becaus', '\u29B0': 'bemptyv', '\u212C': 'Bscr', '\u0392': 'Beta', '\u03B2': 'beta', '\u2136': 'beth', '\u226C': 'twixt', '\uD835\uDD05': 'Bfr', '\uD835\uDD1F': 'bfr', '\u22C2': 'xcap', '\u25EF': 'xcirc', '\u22C3': 'xcup', '\u2A00': 'xodot', '\u2A01': 'xoplus', '\u2A02': 'xotime', '\u2A06': 'xsqcup', '\u2605': 'starf', '\u25BD': 'xdtri', '\u25B3': 'xutri', '\u2A04': 'xuplus', '\u22C1': 'Vee', '\u22C0': 'Wedge', '\u290D': 'rbarr', '\u29EB': 'lozf', '\u25AA': 'squf', '\u25B4': 'utrif', '\u25BE': 'dtrif', '\u25C2': 'ltrif', '\u25B8': 'rtrif', '\u2423': 'blank', '\u2592': 'blk12', '\u2591': 'blk14', '\u2593': 'blk34', '\u2588': 'block', '=\u20E5': 'bne', '\u2261\u20E5': 'bnequiv', '\u2AED': 'bNot', '\u2310': 'bnot', '\uD835\uDD39': 'Bopf', '\uD835\uDD53': 'bopf', '\u22A5': 'bot', '\u22C8': 'bowtie', '\u29C9': 'boxbox', '\u2510': 'boxdl', '\u2555': 'boxdL', '\u2556': 'boxDl', '\u2557': 'boxDL', '\u250C': 'boxdr', '\u2552': 'boxdR', '\u2553': 'boxDr', '\u2554': 'boxDR', '\u2500': 'boxh', '\u2550': 'boxH', '\u252C': 'boxhd', '\u2564': 'boxHd', '\u2565': 'boxhD', '\u2566': 'boxHD', '\u2534': 'boxhu', '\u2567': 'boxHu', '\u2568': 'boxhU', '\u2569': 'boxHU', '\u229F': 'minusb', '\u229E': 'plusb', '\u22A0': 'timesb', '\u2518': 'boxul', '\u255B': 'boxuL', '\u255C': 'boxUl', '\u255D': 'boxUL', '\u2514': 'boxur', '\u2558': 'boxuR', '\u2559': 'boxUr', '\u255A': 'boxUR', '\u2502': 'boxv', '\u2551': 'boxV', '\u253C': 'boxvh', '\u256A': 'boxvH', '\u256B': 'boxVh', '\u256C': 'boxVH', '\u2524': 'boxvl', '\u2561': 'boxvL', '\u2562': 'boxVl', '\u2563': 'boxVL', '\u251C': 'boxvr', '\u255E': 'boxvR', '\u255F': 'boxVr', '\u2560': 'boxVR', '\u02D8': 'breve', '\xA6': 'brvbar', '\uD835\uDCB7': 'bscr', '\u204F': 'bsemi', '\u29C5': 'bsolb', '\\': 'bsol', '\u27C8': 'bsolhsub', '\u2022': 'bull', '\u224E': 'bump', '\u2AAE': 'bumpE', '\u224F': 'bumpe', '\u0106': 'Cacute', '\u0107': 'cacute', '\u2A44': 'capand', '\u2A49': 'capbrcup', '\u2A4B': 'capcap', '\u2229': 'cap', '\u22D2': 'Cap', '\u2A47': 'capcup', '\u2A40': 'capdot', '\u2145': 'DD', '\u2229\uFE00': 'caps', '\u2041': 'caret', '\u02C7': 'caron', '\u212D': 'Cfr', '\u2A4D': 'ccaps', '\u010C': 'Ccaron', '\u010D': 'ccaron', '\xC7': 'Ccedil', '\xE7': 'ccedil', '\u0108': 'Ccirc', '\u0109': 'ccirc', '\u2230': 'Cconint', '\u2A4C': 'ccups', '\u2A50': 'ccupssm', '\u010A': 'Cdot', '\u010B': 'cdot', '\xB8': 'cedil', '\u29B2': 'cemptyv', '\xA2': 'cent', '\xB7': 'middot', '
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var regexEscape = /["&'<>`]/g
|
|
|
|
|
var escapeMap = {
|
|
|
|
|
'"': '"',
|
|
|
|
|
'&': '&',
|
|
|
|
|
'\'': ''',
|
|
|
|
|
'<': '<',
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
|
|
|
|
|
// following is not strictly necessary unless it’s part of a tag or an
|
|
|
|
|
// unquoted attribute value. We’re only escaping it to support those
|
|
|
|
|
// situations, and for XML support.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
'>': '>',
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// In Internet Explorer ≤ 8, the backtick character can be used
|
|
|
|
|
// to break out of (un)quoted attribute values or HTML comments.
|
|
|
|
|
// See http://html5sec.org/#102, http://html5sec.org/#108, and
|
|
|
|
|
// http://html5sec.org/#133.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
'`': '`'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/
|
|
|
|
|
var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/
|
|
|
|
|
var regexDecode = /&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|iacute|Uacute|plusmn|otilde|Otilde|Agrave|agrave|yacute|Yacute|oslash|Oslash|Atilde|atilde|brvbar|Ccedil|ccedil|ograve|curren|divide|Eacute|eacute|Ograve|oacute|Egrave|egrave|ugrave|frac12|frac14|frac34|Ugrave|Oacute|Iacute|ntilde|Ntilde|uacute|middot|Igrave|igrave|iquest|aacute|laquo|THORN|micro|iexcl|icirc|Icirc|Acirc|ucirc|ecirc|Ocirc|ocirc|Ecirc|Ucirc|aring|Aring|aelig|AElig|acute|pound|raquo|acirc|times|thorn|szlig|cedil|COPY|Auml|ordf|ordm|uuml|macr|Uuml|auml|Ouml|ouml|para|nbsp|Euml|quot|QUOT|euml|yuml|cent|sect|copy|sup1|sup2|sup3|Iuml|iuml|shy|eth|reg|not|yen|amp|AMP|REG|uml|ETH|deg|gt|GT|LT|lt)([=a-zA-Z0-9])?/g
|
|
|
|
|
var decodeMap = {'Aacute': '\xC1', 'aacute': '\xE1', 'Abreve': '\u0102', 'abreve': '\u0103', 'ac': '\u223E', 'acd': '\u223F', 'acE': '\u223E\u0333', 'Acirc': '\xC2', 'acirc': '\xE2', 'acute': '\xB4', 'Acy': '\u0410', 'acy': '\u0430', 'AElig': '\xC6', 'aelig': '\xE6', 'af': '\u2061', 'Afr': '\uD835\uDD04', 'afr': '\uD835\uDD1E', 'Agrave': '\xC0', 'agrave': '\xE0', 'alefsym': '\u2135', 'aleph': '\u2135', 'Alpha': '\u0391', 'alpha': '\u03B1', 'Amacr': '\u0100', 'amacr': '\u0101', 'amalg': '\u2A3F', 'amp': '&', 'AMP': '&', 'andand': '\u2A55', 'And': '\u2A53', 'and': '\u2227', 'andd': '\u2A5C', 'andslope': '\u2A58', 'andv': '\u2A5A', 'ang': '\u2220', 'ange': '\u29A4', 'angle': '\u2220', 'angmsdaa': '\u29A8', 'angmsdab': '\u29A9', 'angmsdac': '\u29AA', 'angmsdad': '\u29AB', 'angmsdae': '\u29AC', 'angmsdaf': '\u29AD', 'angmsdag': '\u29AE', 'angmsdah': '\u29AF', 'angmsd': '\u2221', 'angrt': '\u221F', 'angrtvb': '\u22BE', 'angrtvbd': '\u299D', 'angsph': '\u2222', 'angst': '\xC5', 'angzarr': '\u237C', 'Aogon': '\u0104', 'aogon': '\u0105', 'Aopf': '\uD835\uDD38', 'aopf': '\uD835\uDD52', 'apacir': '\u2A6F', 'ap': '\u2248', 'apE': '\u2A70', 'ape': '\u224A', 'apid': '\u224B', 'apos': '\'', 'ApplyFunction': '\u2061', 'approx': '\u2248', 'approxeq': '\u224A', 'Aring': '\xC5', 'aring': '\xE5', 'Ascr': '\uD835\uDC9C', 'ascr': '\uD835\uDCB6', 'Assign': '\u2254', 'ast': '*', 'asymp': '\u2248', 'asympeq': '\u224D', 'Atilde': '\xC3', 'atilde': '\xE3', 'Auml': '\xC4', 'auml': '\xE4', 'awconint': '\u2233', 'awint': '\u2A11', 'backcong': '\u224C', 'backepsilon': '\u03F6', 'backprime': '\u2035', 'backsim': '\u223D', 'backsimeq': '\u22CD', 'Backslash': '\u2216', 'Barv': '\u2AE7', 'barvee': '\u22BD', 'barwed': '\u2305', 'Barwed': '\u2306', 'barwedge': '\u2305', 'bbrk': '\u23B5', 'bbrktbrk': '\u23B6', 'bcong': '\u224C', 'Bcy': '\u0411', 'bcy': '\u0431', 'bdquo': '\u201E', 'becaus': '\u2235', 'because': '\u2235', 'Because': '\u2235', 'bemptyv': '\u29B0', 'bepsi': '\u03F6', 'bernou': '\u212C', 'Bernoullis': '\u212C', 'Beta': '\u0392', 'beta': '\u03B2', 'beth': '\u2136', 'between': '\u226C', 'Bfr': '\uD835\uDD05', 'bfr': '\uD835\uDD1F', 'bigcap': '\u22C2', 'bigcirc': '\u25EF', 'bigcup': '\u22C3', 'bigodot': '\u2A00', 'bigoplus': '\u2A01', 'bigotimes': '\u2A02', 'bigsqcup': '\u2A06', 'bigstar': '\u2605', 'bigtriangledown': '\u25BD', 'bigtriangleup': '\u25B3', 'biguplus': '\u2A04', 'bigvee': '\u22C1', 'bigwedge': '\u22C0', 'bkarow': '\u290D', 'blacklozenge': '\u29EB', 'blacksquare': '\u25AA', 'blacktriangle': '\u25B4', 'blacktriangledown': '\u25BE', 'blacktriangleleft': '\u25C2', 'blacktriangleright': '\u25B8', 'blank': '\u2423', 'blk12': '\u2592', 'blk14': '\u2591', 'blk34': '\u2593', 'block': '\u2588', 'bne': '=\u20E5', 'bnequiv': '\u2261\u20E5', 'bNot': '\u2AED', 'bnot': '\u2310', 'Bopf': '\uD835\uDD39', 'bopf': '\uD835\uDD53', 'bot': '\u22A5', 'bottom': '\u22A5', 'bowtie': '\u22C8', 'boxbox': '\u29C9', 'boxdl': '\u2510', 'boxdL': '\u2555', 'boxDl': '\u2556', 'boxDL': '\u2557', 'boxdr': '\u250C', 'boxdR': '\u2552', 'boxDr': '\u2553', 'boxDR': '\u2554', 'boxh': '\u2500', 'boxH': '\u2550', 'boxhd': '\u252C', 'boxHd': '\u2564', 'boxhD': '\u2565', 'boxHD': '\u2566', 'boxhu': '\u2534', 'boxHu': '\u2567', 'boxhU': '\u2568', 'boxHU': '\u2569', 'boxminus': '\u229F', 'boxplus': '\u229E', 'boxtimes': '\u22A0', 'boxul': '\u2518', 'boxuL': '\u255B', 'boxUl': '\u255C', 'boxUL': '\u255D', 'boxur': '\u2514', 'boxuR': '\u2558', 'boxUr': '\u2559', 'boxUR': '\u255A', 'boxv': '\u2502', 'boxV': '\u2551', 'boxvh': '\u253C', 'boxvH': '\u256A', 'boxVh': '\u256B', 'boxVH': '\u256C', 'boxvl': '\u2524', 'boxvL': '\u2561', 'boxVl': '\u2562', 'boxVL': '\u2563', 'boxvr': '\u251C', 'boxvR': '\u255E', 'boxVr': '\u255F', 'boxVR': '\u2560', 'bprime': '\u2035', 'breve': '\u02D8', 'Breve': '\u02D8', 'brvbar': '\xA6', 'bscr': '\uD835\uDCB7', 'Bscr': '\u212C', 'bsemi': '\u204F', 'bsim': '\u223D', 'bsime': '\u22CD', 'bsolb': '\u29C5', 'bsol': '\\', 'bsolhsub': '\u27C8', 'bull': '\u2022', 'bullet': '\u2022', 'bump': '\u224E', 'bumpE': '\u2AAE', 'bumpe': '\u224F', 'Bumpeq': '\u224E',
|
|
|
|
|
var decodeMapLegacy = {'Aacute': '\xC1', 'aacute': '\xE1', 'Acirc': '\xC2', 'acirc': '\xE2', 'acute': '\xB4', 'AElig': '\xC6', 'aelig': '\xE6', 'Agrave': '\xC0', 'agrave': '\xE0', 'amp': '&', 'AMP': '&', 'Aring': '\xC5', 'aring': '\xE5', 'Atilde': '\xC3', 'atilde': '\xE3', 'Auml': '\xC4', 'auml': '\xE4', 'brvbar': '\xA6', 'Ccedil': '\xC7', 'ccedil': '\xE7', 'cedil': '\xB8', 'cent': '\xA2', 'copy': '\xA9', 'COPY': '\xA9', 'curren': '\xA4', 'deg': '\xB0', 'divide': '\xF7', 'Eacute': '\xC9', 'eacute': '\xE9', 'Ecirc': '\xCA', 'ecirc': '\xEA', 'Egrave': '\xC8', 'egrave': '\xE8', 'ETH': '\xD0', 'eth': '\xF0', 'Euml': '\xCB', 'euml': '\xEB', 'frac12': '\xBD', 'frac14': '\xBC', 'frac34': '\xBE', 'gt': '>', 'GT': '>', 'Iacute': '\xCD', 'iacute': '\xED', 'Icirc': '\xCE', 'icirc': '\xEE', 'iexcl': '\xA1', 'Igrave': '\xCC', 'igrave': '\xEC', 'iquest': '\xBF', 'Iuml': '\xCF', 'iuml': '\xEF', 'laquo': '\xAB', 'lt': '<', 'LT': '<', 'macr': '\xAF', 'micro': '\xB5', 'middot': '\xB7', 'nbsp': '\xA0', 'not': '\xAC', 'Ntilde': '\xD1', 'ntilde': '\xF1', 'Oacute': '\xD3', 'oacute': '\xF3', 'Ocirc': '\xD4', 'ocirc': '\xF4', 'Ograve': '\xD2', 'ograve': '\xF2', 'ordf': '\xAA', 'ordm': '\xBA', 'Oslash': '\xD8', 'oslash': '\xF8', 'Otilde': '\xD5', 'otilde': '\xF5', 'Ouml': '\xD6', 'ouml': '\xF6', 'para': '\xB6', 'plusmn': '\xB1', 'pound': '\xA3', 'quot': '"', 'QUOT': '"', 'raquo': '\xBB', 'reg': '\xAE', 'REG': '\xAE', 'sect': '\xA7', 'shy': '\xAD', 'sup1': '\xB9', 'sup2': '\xB2', 'sup3': '\xB3', 'szlig': '\xDF', 'THORN': '\xDE', 'thorn': '\xFE', 'times': '\xD7', 'Uacute': '\xDA', 'uacute': '\xFA', 'Ucirc': '\xDB', 'ucirc': '\xFB', 'Ugrave': '\xD9', 'ugrave': '\xF9', 'uml': '\xA8', 'Uuml': '\xDC', 'uuml': '\xFC', 'Yacute': '\xDD', 'yacute': '\xFD', 'yen': '\xA5', 'yuml': '\xFF'}
|
|
|
|
|
var decodeMapNumeric = {'0': '\uFFFD', '128': '\u20AC', '130': '\u201A', '131': '\u0192', '132': '\u201E', '133': '\u2026', '134': '\u2020', '135': '\u2021', '136': '\u02C6', '137': '\u2030', '138': '\u0160', '139': '\u2039', '140': '\u0152', '142': '\u017D', '145': '\u2018', '146': '\u2019', '147': '\u201C', '148': '\u201D', '149': '\u2022', '150': '\u2013', '151': '\u2014', '152': '\u02DC', '153': '\u2122', '154': '\u0161', '155': '\u203A', '156': '\u0153', '158': '\u017E', '159': '\u0178'}
|
|
|
|
|
var invalidReferenceCodePoints = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65000, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111]
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
|
|
|
|
|
|
var stringFromCharCode = String.fromCharCode
|
|
|
|
|
|
|
|
|
|
var object = {}
|
|
|
|
|
var hasOwnProperty = object.hasOwnProperty
|
|
|
|
|
var has = function (object, propertyName) {
|
|
|
|
|
return hasOwnProperty.call(object, propertyName)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var contains = function (array, value) {
|
|
|
|
|
var index = -1
|
|
|
|
|
var length = array.length
|
|
|
|
|
while (++index < length) {
|
|
|
|
|
if (array[index] == value) {
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var merge = function (options, defaults) {
|
|
|
|
|
if (!options) {
|
|
|
|
|
return defaults
|
|
|
|
|
}
|
|
|
|
|
var result = {}
|
|
|
|
|
var key
|
|
|
|
|
for (key in defaults) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// A `hasOwnProperty` check is not needed here, since only recognized
|
|
|
|
|
// option names are used anyway. Any others are ignored.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
result[key] = has(options, key) ? options[key] : defaults[key]
|
|
|
|
|
}
|
|
|
|
|
return result
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
|
|
|
|
// Modified version of `ucs2encode`; see http://mths.be/punycode.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var codePointToSymbol = function (codePoint, strict) {
|
|
|
|
|
var output = ''
|
|
|
|
|
if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// See issue #4:
|
|
|
|
|
// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is
|
|
|
|
|
// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD
|
|
|
|
|
// REPLACEMENT CHARACTER.”
|
2017-04-11 22:14:25 +08:00
|
|
|
|
if (strict) {
|
|
|
|
|
parseError('character reference outside the permissible Unicode range')
|
|
|
|
|
}
|
|
|
|
|
return '\uFFFD'
|
|
|
|
|
}
|
|
|
|
|
if (has(decodeMapNumeric, codePoint)) {
|
|
|
|
|
if (strict) {
|
|
|
|
|
parseError('disallowed character reference')
|
|
|
|
|
}
|
|
|
|
|
return decodeMapNumeric[codePoint]
|
|
|
|
|
}
|
|
|
|
|
if (strict && contains(invalidReferenceCodePoints, codePoint)) {
|
|
|
|
|
parseError('disallowed character reference')
|
|
|
|
|
}
|
|
|
|
|
if (codePoint > 0xFFFF) {
|
|
|
|
|
codePoint -= 0x10000
|
|
|
|
|
output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800)
|
|
|
|
|
codePoint = 0xDC00 | codePoint & 0x3FF
|
|
|
|
|
}
|
|
|
|
|
output += stringFromCharCode(codePoint)
|
|
|
|
|
return output
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var hexEscape = function (symbol) {
|
|
|
|
|
return '&#x' + symbol.charCodeAt(0).toString(16).toUpperCase() + ';'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var parseError = function (message) {
|
|
|
|
|
throw Error('Parse error: ' + message)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
|
|
|
|
|
|
var encode = function (string, options) {
|
|
|
|
|
options = merge(options, encode.options)
|
|
|
|
|
var strict = options.strict
|
|
|
|
|
if (strict && regexInvalidRawCodePoint.test(string)) {
|
|
|
|
|
parseError('forbidden code point')
|
|
|
|
|
}
|
|
|
|
|
var encodeEverything = options.encodeEverything
|
|
|
|
|
var useNamedReferences = options.useNamedReferences
|
|
|
|
|
var allowUnsafeSymbols = options.allowUnsafeSymbols
|
|
|
|
|
if (encodeEverything) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Encode ASCII symbols.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
string = string.replace(regexAsciiWhitelist, function (symbol) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Use named references if requested & possible.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
if (useNamedReferences && has(encodeMap, symbol)) {
|
|
|
|
|
return '&' + encodeMap[symbol] + ';'
|
|
|
|
|
}
|
|
|
|
|
return hexEscape(symbol)
|
|
|
|
|
})
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Shorten a few escapes that represent two symbols, of which at least one
|
|
|
|
|
// is within the ASCII range.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
if (useNamedReferences) {
|
|
|
|
|
string = string
|
2014-12-01 20:50:58 +01:00
|
|
|
|
.replace(/>\u20D2/g, '>⃒')
|
|
|
|
|
.replace(/<\u20D2/g, '<⃒')
|
2017-04-11 22:14:25 +08:00
|
|
|
|
.replace(/fj/g, 'fj')
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Encode non-ASCII symbols.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
if (useNamedReferences) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Encode non-ASCII symbols that can be replaced with a named reference.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
string = string.replace(regexEncodeNonAscii, function (string) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Note: there is no need to check `has(encodeMap, string)` here.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
return '&' + encodeMap[string] + ';'
|
|
|
|
|
})
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Note: any remaining non-ASCII symbols are handled outside of the `if`.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
} else if (useNamedReferences) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Apply named character references.
|
|
|
|
|
// Encode `<>"'&` using named character references.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
if (!allowUnsafeSymbols) {
|
|
|
|
|
string = string.replace(regexEscape, function (string) {
|
|
|
|
|
return '&' + encodeMap[string] + ';' // no need to check `has()` here
|
|
|
|
|
})
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Shorten escapes that represent two symbols, of which at least one is
|
|
|
|
|
// `<>"'&`.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
string = string
|
2014-12-01 20:50:58 +01:00
|
|
|
|
.replace(/>\u20D2/g, '>⃒')
|
2017-04-11 22:14:25 +08:00
|
|
|
|
.replace(/<\u20D2/g, '<⃒')
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Encode non-ASCII symbols that can be replaced with a named reference.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
string = string.replace(regexEncodeNonAscii, function (string) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Note: there is no need to check `has(encodeMap, string)` here.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
return '&' + encodeMap[string] + ';'
|
|
|
|
|
})
|
|
|
|
|
} else if (!allowUnsafeSymbols) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Encode `<>"'&` using hexadecimal escapes, now that they’re not handled
|
|
|
|
|
// using named character references.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
string = string.replace(regexEscape, hexEscape)
|
|
|
|
|
}
|
|
|
|
|
return string
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Encode astral symbols.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
.replace(regexAstralSymbols, function ($0) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var high = $0.charCodeAt(0)
|
|
|
|
|
var low = $0.charCodeAt(1)
|
|
|
|
|
var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000
|
|
|
|
|
return '&#x' + codePoint.toString(16).toUpperCase() + ';'
|
|
|
|
|
})
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Encode any remaining BMP symbols that are not printable ASCII symbols
|
|
|
|
|
// using a hexadecimal escape.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
.replace(regexBmpWhitelist, hexEscape)
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Expose default options (so they can be overridden globally).
|
2017-04-11 22:14:25 +08:00
|
|
|
|
encode.options = {
|
|
|
|
|
'allowUnsafeSymbols': false,
|
|
|
|
|
'encodeEverything': false,
|
|
|
|
|
'strict': false,
|
|
|
|
|
'useNamedReferences': false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var decode = function (html, options) {
|
|
|
|
|
options = merge(options, decode.options)
|
|
|
|
|
var strict = options.strict
|
|
|
|
|
if (strict && regexInvalidEntity.test(html)) {
|
|
|
|
|
parseError('malformed character reference')
|
|
|
|
|
}
|
|
|
|
|
return html.replace(regexDecode, function ($0, $1, $2, $3, $4, $5, $6, $7) {
|
|
|
|
|
var codePoint
|
|
|
|
|
var semicolon
|
|
|
|
|
var hexDigits
|
|
|
|
|
var reference
|
|
|
|
|
var next
|
|
|
|
|
if ($1) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Decode decimal escapes, e.g. `𝌆`.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
codePoint = $1
|
|
|
|
|
semicolon = $2
|
|
|
|
|
if (strict && !semicolon) {
|
|
|
|
|
parseError('character reference was not terminated by a semicolon')
|
|
|
|
|
}
|
|
|
|
|
return codePointToSymbol(codePoint, strict)
|
|
|
|
|
}
|
|
|
|
|
if ($3) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Decode hexadecimal escapes, e.g. `𝌆`.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
hexDigits = $3
|
|
|
|
|
semicolon = $4
|
|
|
|
|
if (strict && !semicolon) {
|
|
|
|
|
parseError('character reference was not terminated by a semicolon')
|
|
|
|
|
}
|
|
|
|
|
codePoint = parseInt(hexDigits, 16)
|
|
|
|
|
return codePointToSymbol(codePoint, strict)
|
|
|
|
|
}
|
|
|
|
|
if ($5) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Decode named character references with trailing `;`, e.g. `©`.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
reference = $5
|
|
|
|
|
if (has(decodeMap, reference)) {
|
|
|
|
|
return decodeMap[reference]
|
|
|
|
|
} else {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Ambiguous ampersand; see http://mths.be/notes/ambiguous-ampersands.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
if (strict) {
|
|
|
|
|
parseError(
|
2014-12-01 20:50:58 +01:00
|
|
|
|
'named character reference was not terminated by a semicolon'
|
2017-04-11 22:14:25 +08:00
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
return $0
|
|
|
|
|
}
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// If we’re still here, it’s a legacy reference for sure. No need for an
|
|
|
|
|
// extra `if` check.
|
|
|
|
|
// Decode named character references without trailing `;`, e.g. `&`
|
|
|
|
|
// This is only a parse error if it gets converted to `&`, or if it is
|
|
|
|
|
// followed by `=` in an attribute context.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
reference = $6
|
|
|
|
|
next = $7
|
|
|
|
|
if (next && options.isAttributeValue) {
|
|
|
|
|
if (strict && next == '=') {
|
|
|
|
|
parseError('`&` did not start a character reference')
|
|
|
|
|
}
|
|
|
|
|
return $0
|
|
|
|
|
} else {
|
|
|
|
|
if (strict) {
|
|
|
|
|
parseError(
|
2014-12-01 20:50:58 +01:00
|
|
|
|
'named character reference was not terminated by a semicolon'
|
2017-04-11 22:14:25 +08:00
|
|
|
|
)
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Note: there is no need to check `has(decodeMapLegacy, reference)`.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
return decodeMapLegacy[reference] + (next || '')
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Expose default options (so they can be overridden globally).
|
2017-04-11 22:14:25 +08:00
|
|
|
|
decode.options = {
|
|
|
|
|
'isAttributeValue': false,
|
|
|
|
|
'strict': false
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var escape = function (string) {
|
|
|
|
|
return string.replace(regexEscape, function ($0) {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// Note: there is no need to check `has(escapeMap, $0)` here.
|
2017-04-11 22:14:25 +08:00
|
|
|
|
return escapeMap[$0]
|
|
|
|
|
})
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
2017-04-11 22:14:25 +08:00
|
|
|
|
/* -------------------------------------------------------------------------- */
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var he = {
|
|
|
|
|
'version': '0.5.0',
|
|
|
|
|
'encode': encode,
|
|
|
|
|
'decode': decode,
|
|
|
|
|
'escape': escape,
|
|
|
|
|
'unescape': decode
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
|
|
|
|
// Some AMD build optimizers, like r.js, check for specific condition patterns
|
|
|
|
|
// like the following:
|
2017-04-11 22:14:25 +08:00
|
|
|
|
if (
|
|
|
|
|
typeof define === 'function' &&
|
|
|
|
|
typeof define.amd === 'object' &&
|
2014-12-01 20:50:58 +01:00
|
|
|
|
define.amd
|
|
|
|
|
) {
|
2017-04-11 22:14:25 +08:00
|
|
|
|
define(function () {
|
|
|
|
|
return he
|
|
|
|
|
})
|
|
|
|
|
} else if (freeExports && !freeExports.nodeType) {
|
|
|
|
|
if (freeModule) { // in Node.js or RingoJS v0.8.0+
|
|
|
|
|
freeModule.exports = he
|
|
|
|
|
} else { // in Narwhal or RingoJS v0.7.0-
|
|
|
|
|
for (var key in he) {
|
|
|
|
|
has(he, key) && (freeExports[key] = he[key])
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else { // in Rhino or a web browser
|
|
|
|
|
root.he = he
|
|
|
|
|
}
|
|
|
|
|
}(this))
|
|
|
|
|
}).call(this, typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {})
|
|
|
|
|
}, {}],
|
|
|
|
|
2: [function (require, module, exports) {
|
|
|
|
|
var he = require('he')
|
|
|
|
|
|
|
|
|
|
function decodeHTMLEntities (str) {
|
|
|
|
|
if (str && typeof str === 'string') {
|
2014-12-01 20:50:58 +01:00
|
|
|
|
// strip script/html tags
|
2017-04-11 22:14:25 +08:00
|
|
|
|
str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '')
|
|
|
|
|
str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '')
|
|
|
|
|
element.innerHTML = str
|
|
|
|
|
str = element.textContent
|
|
|
|
|
element.textContent = ''
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return str
|
2014-12-01 20:50:58 +01:00
|
|
|
|
}
|
|
|
|
|
|
2017-04-11 22:14:25 +08:00
|
|
|
|
var mermaidEditor = {
|
|
|
|
|
$: document.querySelector,
|
|
|
|
|
textField: '',
|
|
|
|
|
submit: '',
|
|
|
|
|
graph: '',
|
|
|
|
|
|
|
|
|
|
init: function () {
|
|
|
|
|
this.textField = document.querySelector('.editor')
|
|
|
|
|
this.submit = document.querySelector('.submit')
|
|
|
|
|
this.graph = document.querySelector('.mermaid')
|
|
|
|
|
|
|
|
|
|
document.querySelector('.button').addEventListener('click', function () {
|
|
|
|
|
mermaidEditor.update()
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
update: function () {
|
|
|
|
|
var txt = document.querySelector('.editor').innerHTML
|
|
|
|
|
txt = txt.replace(/>/g, '>')
|
|
|
|
|
txt = txt.replace(/</g, '<')
|
|
|
|
|
txt = he.decode(txt).trim()
|
|
|
|
|
|
|
|
|
|
document.querySelector('.mermaid').innerHTML = txt.textContent
|
|
|
|
|
mermaid.init()
|
|
|
|
|
}
|
2014-12-01 20:50:58 +01:00
|
|
|
|
}
|
|
|
|
|
|
2017-04-11 22:14:25 +08:00
|
|
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
|
|
|
mermaidEditor.init()
|
|
|
|
|
}, false)
|
2014-12-01 20:50:58 +01:00
|
|
|
|
|
2017-04-11 22:14:25 +08:00
|
|
|
|
exports = mermaidEditor
|
|
|
|
|
}, {'he': 1}]}, {}, [2])
|