marked 5.0.4 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/marked.cjs +319 -263
- package/lib/marked.esm.js +365 -320
- package/lib/marked.umd.js +319 -263
- package/marked.min.js +2 -2
- package/package.json +8 -7
- package/src/Instance.js +374 -0
- package/src/Lexer.js +3 -4
- package/src/Tokenizer.js +2 -2
- package/src/marked.js +13 -338
- package/src/rules.js +21 -18
package/lib/marked.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* marked v5.0
|
|
2
|
+
* marked v5.1.0 - a markdown parser
|
|
3
3
|
* Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
|
|
4
4
|
* https://github.com/markedjs/marked
|
|
5
5
|
*/
|
|
@@ -87,6 +87,16 @@ function _toPropertyKey(arg) {
|
|
|
87
87
|
var key = _toPrimitive(arg, "string");
|
|
88
88
|
return typeof key === "symbol" ? key : String(key);
|
|
89
89
|
}
|
|
90
|
+
var id = 0;
|
|
91
|
+
function _classPrivateFieldLooseKey(name) {
|
|
92
|
+
return "__private_" + id++ + "_" + name;
|
|
93
|
+
}
|
|
94
|
+
function _classPrivateFieldLooseBase(receiver, privateKey) {
|
|
95
|
+
if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
|
|
96
|
+
throw new TypeError("attempted to use private field on non-instance");
|
|
97
|
+
}
|
|
98
|
+
return receiver;
|
|
99
|
+
}
|
|
90
100
|
|
|
91
101
|
function getDefaults() {
|
|
92
102
|
return {
|
|
@@ -927,7 +937,7 @@ var Tokenizer = /*#__PURE__*/function () {
|
|
|
927
937
|
// _ can't be between two alphanumerics. \p{L}\p{N} includes non-english alphabet/numbers as well
|
|
928
938
|
if (match[3] && prevChar.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDF50-\uDF59\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDCD0-\uDCEB\uDCF0-\uDCF9\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])/)) return;
|
|
929
939
|
var nextChar = match[1] || match[2] || '';
|
|
930
|
-
if (!nextChar ||
|
|
940
|
+
if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {
|
|
931
941
|
var lLength = match[0].length - 1;
|
|
932
942
|
var rDelim,
|
|
933
943
|
rLength,
|
|
@@ -960,7 +970,7 @@ var Tokenizer = /*#__PURE__*/function () {
|
|
|
960
970
|
|
|
961
971
|
// Remove extra characters. *a*** -> *a*
|
|
962
972
|
rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);
|
|
963
|
-
var raw = src.slice(0, lLength + match.index +
|
|
973
|
+
var raw = src.slice(0, lLength + match.index + rLength + 1);
|
|
964
974
|
|
|
965
975
|
// Create `em` if smallest delimiter has odd char count. *a***
|
|
966
976
|
if (Math.min(lLength, rLength) % 2) {
|
|
@@ -1201,36 +1211,34 @@ var inline = {
|
|
|
1201
1211
|
nolink: /^!?\[(ref)\](?:\[\])?/,
|
|
1202
1212
|
reflinkSearch: 'reflink|nolink(?!\\()',
|
|
1203
1213
|
emStrong: {
|
|
1204
|
-
lDelim: /^(?:\*+(?:([
|
|
1205
|
-
//
|
|
1206
|
-
//
|
|
1207
|
-
rDelimAst: /^
|
|
1208
|
-
rDelimUnd: /^
|
|
1214
|
+
lDelim: /^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,
|
|
1215
|
+
// (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.
|
|
1216
|
+
// | Skip orphan inside strong | Consume to delim | (1) #*** | (2) a***#, a*** | (3) #***a, ***a | (4) ***# | (5) #***# | (6) a***a
|
|
1217
|
+
rDelimAst: /^[^_*]*?__[^_*]*?\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\*)[punct](\*+)(?=[\s]|$)|[^punct\s](\*+)(?!\*)(?=[punct\s]|$)|(?!\*)[punct\s](\*+)(?=[^punct\s])|[\s](\*+)(?!\*)(?=[punct])|(?!\*)[punct](\*+)(?!\*)(?=[punct])|[^punct\s](\*+)(?=[^punct\s])/,
|
|
1218
|
+
rDelimUnd: /^[^_*]*?\*\*[^_*]*?_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\s]|$)|[^punct\s](_+)(?!_)(?=[punct\s]|$)|(?!_)[punct\s](_+)(?=[^punct\s])|[\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])/ // ^- Not allowed for _
|
|
1209
1219
|
},
|
|
1210
1220
|
|
|
1211
1221
|
code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
|
|
1212
1222
|
br: /^( {2,}|\\)\n(?!\s*$)/,
|
|
1213
1223
|
del: noopTest,
|
|
1214
1224
|
text: /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,
|
|
1215
|
-
punctuation: /^([\spunctuation])/
|
|
1225
|
+
punctuation: /^((?![*_])[\spunctuation])/
|
|
1216
1226
|
};
|
|
1217
1227
|
|
|
1218
|
-
// list of punctuation marks from CommonMark spec
|
|
1219
|
-
|
|
1220
|
-
inline.
|
|
1221
|
-
inline._punctuation = '!"#$%&\'()+\\-.,/:;<=>?@\\[\\]`^{|}~' + inline._uc_punctuation;
|
|
1222
|
-
inline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();
|
|
1228
|
+
// list of unicode punctuation marks, plus any missing characters from CommonMark spec
|
|
1229
|
+
inline._punctuation = '\\p{P}$+<=>`^|~';
|
|
1230
|
+
inline.punctuation = edit(inline.punctuation, 'u').replace(/punctuation/g, inline._punctuation).getRegex();
|
|
1223
1231
|
|
|
1224
1232
|
// sequences em should skip over [title](link), `code`, <html>
|
|
1225
1233
|
inline.blockSkip = /\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g;
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
inline.escapedEmSt = /(?:^|[^\\])(?:\\\\)*\\[*_]/g;
|
|
1234
|
+
inline.anyPunctuation = /\\[punct]/g;
|
|
1235
|
+
inline._escapes = /\\([punct])/g;
|
|
1229
1236
|
inline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();
|
|
1230
|
-
inline.emStrong.lDelim = edit(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();
|
|
1231
|
-
inline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, '
|
|
1232
|
-
inline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, '
|
|
1233
|
-
inline.
|
|
1237
|
+
inline.emStrong.lDelim = edit(inline.emStrong.lDelim, 'u').replace(/punct/g, inline._punctuation).getRegex();
|
|
1238
|
+
inline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'gu').replace(/punct/g, inline._punctuation).getRegex();
|
|
1239
|
+
inline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'gu').replace(/punct/g, inline._punctuation).getRegex();
|
|
1240
|
+
inline.anyPunctuation = edit(inline.anyPunctuation, 'gu').replace(/punct/g, inline._punctuation).getRegex();
|
|
1241
|
+
inline._escapes = edit(inline._escapes, 'gu').replace(/punct/g, inline._punctuation).getRegex();
|
|
1234
1242
|
inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;
|
|
1235
1243
|
inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;
|
|
1236
1244
|
inline.autolink = edit(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();
|
|
@@ -1642,10 +1650,9 @@ var Lexer = /*#__PURE__*/function () {
|
|
|
1642
1650
|
maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
|
|
1643
1651
|
}
|
|
1644
1652
|
|
|
1645
|
-
// Mask out escaped
|
|
1646
|
-
while ((match = this.tokenizer.rules.inline.
|
|
1647
|
-
maskedSrc = maskedSrc.slice(0, match.index
|
|
1648
|
-
this.tokenizer.rules.inline.escapedEmSt.lastIndex--;
|
|
1653
|
+
// Mask out escaped characters
|
|
1654
|
+
while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {
|
|
1655
|
+
maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
|
|
1649
1656
|
}
|
|
1650
1657
|
var _loop2 = function _loop2() {
|
|
1651
1658
|
if (!keepPrevChar) {
|
|
@@ -2390,39 +2397,263 @@ var Hooks = /*#__PURE__*/function () {
|
|
|
2390
2397
|
}();
|
|
2391
2398
|
Hooks.passThroughHooks = new Set(['preprocess', 'postprocess']);
|
|
2392
2399
|
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2400
|
+
var _parseMarkdown = /*#__PURE__*/_classPrivateFieldLooseKey("parseMarkdown");
|
|
2401
|
+
var _onError = /*#__PURE__*/_classPrivateFieldLooseKey("onError");
|
|
2402
|
+
var Marked = /*#__PURE__*/function () {
|
|
2403
|
+
function Marked() {
|
|
2404
|
+
Object.defineProperty(this, _onError, {
|
|
2405
|
+
value: _onError2
|
|
2406
|
+
});
|
|
2407
|
+
Object.defineProperty(this, _parseMarkdown, {
|
|
2408
|
+
value: _parseMarkdown2
|
|
2409
|
+
});
|
|
2410
|
+
this.defaults = getDefaults();
|
|
2411
|
+
this.options = this.setOptions;
|
|
2412
|
+
this.parse = _classPrivateFieldLooseBase(this, _parseMarkdown)[_parseMarkdown](Lexer.lex, Parser.parse);
|
|
2413
|
+
this.parseInline = _classPrivateFieldLooseBase(this, _parseMarkdown)[_parseMarkdown](Lexer.lexInline, Parser.parseInline);
|
|
2414
|
+
this.Parser = Parser;
|
|
2415
|
+
this.parser = Parser.parse;
|
|
2416
|
+
this.Renderer = Renderer;
|
|
2417
|
+
this.TextRenderer = TextRenderer;
|
|
2418
|
+
this.Lexer = Lexer;
|
|
2419
|
+
this.lexer = Lexer.lex;
|
|
2420
|
+
this.Tokenizer = Tokenizer;
|
|
2421
|
+
this.Slugger = Slugger;
|
|
2422
|
+
this.Hooks = Hooks;
|
|
2423
|
+
this.use.apply(this, arguments);
|
|
2424
|
+
}
|
|
2425
|
+
var _proto = Marked.prototype;
|
|
2426
|
+
_proto.walkTokens = function walkTokens(tokens, callback) {
|
|
2427
|
+
var _this = this;
|
|
2428
|
+
var values = [];
|
|
2429
|
+
var _loop = function _loop() {
|
|
2430
|
+
var token = _step.value;
|
|
2431
|
+
values = values.concat(callback.call(_this, token));
|
|
2432
|
+
switch (token.type) {
|
|
2433
|
+
case 'table':
|
|
2434
|
+
{
|
|
2435
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {
|
|
2436
|
+
var cell = _step2.value;
|
|
2437
|
+
values = values.concat(_this.walkTokens(cell.tokens, callback));
|
|
2438
|
+
}
|
|
2439
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {
|
|
2440
|
+
var row = _step3.value;
|
|
2441
|
+
for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {
|
|
2442
|
+
var _cell = _step4.value;
|
|
2443
|
+
values = values.concat(_this.walkTokens(_cell.tokens, callback));
|
|
2444
|
+
}
|
|
2445
|
+
}
|
|
2446
|
+
break;
|
|
2447
|
+
}
|
|
2448
|
+
case 'list':
|
|
2449
|
+
{
|
|
2450
|
+
values = values.concat(_this.walkTokens(token.items, callback));
|
|
2451
|
+
break;
|
|
2452
|
+
}
|
|
2453
|
+
default:
|
|
2454
|
+
{
|
|
2455
|
+
if (_this.defaults.extensions && _this.defaults.extensions.childTokens && _this.defaults.extensions.childTokens[token.type]) {
|
|
2456
|
+
// Walk any extensions
|
|
2457
|
+
_this.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {
|
|
2458
|
+
values = values.concat(_this.walkTokens(token[childTokens], callback));
|
|
2459
|
+
});
|
|
2460
|
+
} else if (token.tokens) {
|
|
2461
|
+
values = values.concat(_this.walkTokens(token.tokens, callback));
|
|
2462
|
+
}
|
|
2463
|
+
}
|
|
2404
2464
|
}
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
return Promise.reject(e);
|
|
2465
|
+
};
|
|
2466
|
+
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
|
2467
|
+
_loop();
|
|
2409
2468
|
}
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2469
|
+
return values;
|
|
2470
|
+
};
|
|
2471
|
+
_proto.use = function use() {
|
|
2472
|
+
var _this2 = this;
|
|
2473
|
+
var extensions = this.defaults.extensions || {
|
|
2474
|
+
renderers: {},
|
|
2475
|
+
childTokens: {}
|
|
2476
|
+
};
|
|
2477
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2478
|
+
args[_key] = arguments[_key];
|
|
2413
2479
|
}
|
|
2414
|
-
|
|
2480
|
+
args.forEach(function (pack) {
|
|
2481
|
+
// copy options to new object
|
|
2482
|
+
var opts = _extends({}, pack);
|
|
2483
|
+
|
|
2484
|
+
// set async to true if it was set to true before
|
|
2485
|
+
opts.async = _this2.defaults.async || opts.async || false;
|
|
2486
|
+
|
|
2487
|
+
// ==-- Parse "addon" extensions --== //
|
|
2488
|
+
if (pack.extensions) {
|
|
2489
|
+
pack.extensions.forEach(function (ext) {
|
|
2490
|
+
if (!ext.name) {
|
|
2491
|
+
throw new Error('extension name required');
|
|
2492
|
+
}
|
|
2493
|
+
if (ext.renderer) {
|
|
2494
|
+
// Renderer extensions
|
|
2495
|
+
var prevRenderer = extensions.renderers[ext.name];
|
|
2496
|
+
if (prevRenderer) {
|
|
2497
|
+
// Replace extension with func to run new extension but fall back if false
|
|
2498
|
+
extensions.renderers[ext.name] = function () {
|
|
2499
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
2500
|
+
args[_key2] = arguments[_key2];
|
|
2501
|
+
}
|
|
2502
|
+
var ret = ext.renderer.apply(this, args);
|
|
2503
|
+
if (ret === false) {
|
|
2504
|
+
ret = prevRenderer.apply(this, args);
|
|
2505
|
+
}
|
|
2506
|
+
return ret;
|
|
2507
|
+
};
|
|
2508
|
+
} else {
|
|
2509
|
+
extensions.renderers[ext.name] = ext.renderer;
|
|
2510
|
+
}
|
|
2511
|
+
}
|
|
2512
|
+
if (ext.tokenizer) {
|
|
2513
|
+
// Tokenizer Extensions
|
|
2514
|
+
if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {
|
|
2515
|
+
throw new Error("extension level must be 'block' or 'inline'");
|
|
2516
|
+
}
|
|
2517
|
+
if (extensions[ext.level]) {
|
|
2518
|
+
extensions[ext.level].unshift(ext.tokenizer);
|
|
2519
|
+
} else {
|
|
2520
|
+
extensions[ext.level] = [ext.tokenizer];
|
|
2521
|
+
}
|
|
2522
|
+
if (ext.start) {
|
|
2523
|
+
// Function to check for start of token
|
|
2524
|
+
if (ext.level === 'block') {
|
|
2525
|
+
if (extensions.startBlock) {
|
|
2526
|
+
extensions.startBlock.push(ext.start);
|
|
2527
|
+
} else {
|
|
2528
|
+
extensions.startBlock = [ext.start];
|
|
2529
|
+
}
|
|
2530
|
+
} else if (ext.level === 'inline') {
|
|
2531
|
+
if (extensions.startInline) {
|
|
2532
|
+
extensions.startInline.push(ext.start);
|
|
2533
|
+
} else {
|
|
2534
|
+
extensions.startInline = [ext.start];
|
|
2535
|
+
}
|
|
2536
|
+
}
|
|
2537
|
+
}
|
|
2538
|
+
}
|
|
2539
|
+
if (ext.childTokens) {
|
|
2540
|
+
// Child tokens to be visited by walkTokens
|
|
2541
|
+
extensions.childTokens[ext.name] = ext.childTokens;
|
|
2542
|
+
}
|
|
2543
|
+
});
|
|
2544
|
+
opts.extensions = extensions;
|
|
2545
|
+
}
|
|
2546
|
+
|
|
2547
|
+
// ==-- Parse "overwrite" extensions --== //
|
|
2548
|
+
if (pack.renderer) {
|
|
2549
|
+
var renderer = _this2.defaults.renderer || new Renderer(_this2.defaults);
|
|
2550
|
+
var _loop2 = function _loop2(prop) {
|
|
2551
|
+
var prevRenderer = renderer[prop];
|
|
2552
|
+
// Replace renderer with func to run extension, but fall back if false
|
|
2553
|
+
renderer[prop] = function () {
|
|
2554
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
2555
|
+
args[_key3] = arguments[_key3];
|
|
2556
|
+
}
|
|
2557
|
+
var ret = pack.renderer[prop].apply(renderer, args);
|
|
2558
|
+
if (ret === false) {
|
|
2559
|
+
ret = prevRenderer.apply(renderer, args);
|
|
2560
|
+
}
|
|
2561
|
+
return ret;
|
|
2562
|
+
};
|
|
2563
|
+
};
|
|
2564
|
+
for (var prop in pack.renderer) {
|
|
2565
|
+
_loop2(prop);
|
|
2566
|
+
}
|
|
2567
|
+
opts.renderer = renderer;
|
|
2568
|
+
}
|
|
2569
|
+
if (pack.tokenizer) {
|
|
2570
|
+
var tokenizer = _this2.defaults.tokenizer || new Tokenizer(_this2.defaults);
|
|
2571
|
+
var _loop3 = function _loop3(_prop) {
|
|
2572
|
+
var prevTokenizer = tokenizer[_prop];
|
|
2573
|
+
// Replace tokenizer with func to run extension, but fall back if false
|
|
2574
|
+
tokenizer[_prop] = function () {
|
|
2575
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
2576
|
+
args[_key4] = arguments[_key4];
|
|
2577
|
+
}
|
|
2578
|
+
var ret = pack.tokenizer[_prop].apply(tokenizer, args);
|
|
2579
|
+
if (ret === false) {
|
|
2580
|
+
ret = prevTokenizer.apply(tokenizer, args);
|
|
2581
|
+
}
|
|
2582
|
+
return ret;
|
|
2583
|
+
};
|
|
2584
|
+
};
|
|
2585
|
+
for (var _prop in pack.tokenizer) {
|
|
2586
|
+
_loop3(_prop);
|
|
2587
|
+
}
|
|
2588
|
+
opts.tokenizer = tokenizer;
|
|
2589
|
+
}
|
|
2590
|
+
|
|
2591
|
+
// ==-- Parse Hooks extensions --== //
|
|
2592
|
+
if (pack.hooks) {
|
|
2593
|
+
var hooks = _this2.defaults.hooks || new Hooks();
|
|
2594
|
+
var _loop4 = function _loop4(_prop2) {
|
|
2595
|
+
var prevHook = hooks[_prop2];
|
|
2596
|
+
if (Hooks.passThroughHooks.has(_prop2)) {
|
|
2597
|
+
hooks[_prop2] = function (arg) {
|
|
2598
|
+
if (_this2.defaults.async) {
|
|
2599
|
+
return Promise.resolve(pack.hooks[_prop2].call(hooks, arg)).then(function (ret) {
|
|
2600
|
+
return prevHook.call(hooks, ret);
|
|
2601
|
+
});
|
|
2602
|
+
}
|
|
2603
|
+
var ret = pack.hooks[_prop2].call(hooks, arg);
|
|
2604
|
+
return prevHook.call(hooks, ret);
|
|
2605
|
+
};
|
|
2606
|
+
} else {
|
|
2607
|
+
hooks[_prop2] = function () {
|
|
2608
|
+
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
2609
|
+
args[_key5] = arguments[_key5];
|
|
2610
|
+
}
|
|
2611
|
+
var ret = pack.hooks[_prop2].apply(hooks, args);
|
|
2612
|
+
if (ret === false) {
|
|
2613
|
+
ret = prevHook.apply(hooks, args);
|
|
2614
|
+
}
|
|
2615
|
+
return ret;
|
|
2616
|
+
};
|
|
2617
|
+
}
|
|
2618
|
+
};
|
|
2619
|
+
for (var _prop2 in pack.hooks) {
|
|
2620
|
+
_loop4(_prop2);
|
|
2621
|
+
}
|
|
2622
|
+
opts.hooks = hooks;
|
|
2623
|
+
}
|
|
2624
|
+
|
|
2625
|
+
// ==-- Parse WalkTokens extensions --== //
|
|
2626
|
+
if (pack.walkTokens) {
|
|
2627
|
+
var walkTokens = _this2.defaults.walkTokens;
|
|
2628
|
+
opts.walkTokens = function (token) {
|
|
2629
|
+
var values = [];
|
|
2630
|
+
values.push(pack.walkTokens.call(this, token));
|
|
2631
|
+
if (walkTokens) {
|
|
2632
|
+
values = values.concat(walkTokens.call(this, token));
|
|
2633
|
+
}
|
|
2634
|
+
return values;
|
|
2635
|
+
};
|
|
2636
|
+
}
|
|
2637
|
+
_this2.defaults = _extends({}, _this2.defaults, opts);
|
|
2638
|
+
});
|
|
2639
|
+
return this;
|
|
2415
2640
|
};
|
|
2416
|
-
|
|
2417
|
-
|
|
2641
|
+
_proto.setOptions = function setOptions(opt) {
|
|
2642
|
+
this.defaults = _extends({}, this.defaults, opt);
|
|
2643
|
+
return this;
|
|
2644
|
+
};
|
|
2645
|
+
return Marked;
|
|
2646
|
+
}();
|
|
2647
|
+
function _parseMarkdown2(lexer, parser) {
|
|
2648
|
+
var _this3 = this;
|
|
2418
2649
|
return function (src, opt, callback) {
|
|
2419
2650
|
if (typeof opt === 'function') {
|
|
2420
2651
|
callback = opt;
|
|
2421
2652
|
opt = null;
|
|
2422
2653
|
}
|
|
2423
2654
|
var origOpt = _extends({}, opt);
|
|
2424
|
-
opt = _extends({},
|
|
2425
|
-
var throwError =
|
|
2655
|
+
opt = _extends({}, _this3.defaults, origOpt);
|
|
2656
|
+
var throwError = _classPrivateFieldLooseBase(_this3, _onError)[_onError](opt.silent, opt.async, callback);
|
|
2426
2657
|
|
|
2427
2658
|
// throw error in case of non string input
|
|
2428
2659
|
if (typeof src === 'undefined' || src === null) {
|
|
@@ -2451,7 +2682,7 @@ function parseMarkdown(lexer, parser) {
|
|
|
2451
2682
|
if (!err) {
|
|
2452
2683
|
try {
|
|
2453
2684
|
if (opt.walkTokens) {
|
|
2454
|
-
|
|
2685
|
+
_this3.walkTokens(tokens, opt.walkTokens);
|
|
2455
2686
|
}
|
|
2456
2687
|
out = parser(tokens, opt);
|
|
2457
2688
|
if (opt.hooks) {
|
|
@@ -2470,7 +2701,7 @@ function parseMarkdown(lexer, parser) {
|
|
|
2470
2701
|
delete opt.highlight;
|
|
2471
2702
|
if (!tokens.length) return done();
|
|
2472
2703
|
var pending = 0;
|
|
2473
|
-
|
|
2704
|
+
_this3.walkTokens(tokens, function (token) {
|
|
2474
2705
|
if (token.type === 'code') {
|
|
2475
2706
|
pending++;
|
|
2476
2707
|
setTimeout(function () {
|
|
@@ -2499,7 +2730,7 @@ function parseMarkdown(lexer, parser) {
|
|
|
2499
2730
|
return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then(function (src) {
|
|
2500
2731
|
return lexer(src, opt);
|
|
2501
2732
|
}).then(function (tokens) {
|
|
2502
|
-
return opt.walkTokens ? Promise.all(
|
|
2733
|
+
return opt.walkTokens ? Promise.all(_this3.walkTokens(tokens, opt.walkTokens)).then(function () {
|
|
2503
2734
|
return tokens;
|
|
2504
2735
|
}) : tokens;
|
|
2505
2736
|
}).then(function (tokens) {
|
|
@@ -2514,7 +2745,7 @@ function parseMarkdown(lexer, parser) {
|
|
|
2514
2745
|
}
|
|
2515
2746
|
var _tokens = lexer(src, opt);
|
|
2516
2747
|
if (opt.walkTokens) {
|
|
2517
|
-
|
|
2748
|
+
_this3.walkTokens(_tokens, opt.walkTokens);
|
|
2518
2749
|
}
|
|
2519
2750
|
var html = parser(_tokens, opt);
|
|
2520
2751
|
if (opt.hooks) {
|
|
@@ -2526,12 +2757,38 @@ function parseMarkdown(lexer, parser) {
|
|
|
2526
2757
|
}
|
|
2527
2758
|
};
|
|
2528
2759
|
}
|
|
2760
|
+
function _onError2(silent, async, callback) {
|
|
2761
|
+
return function (e) {
|
|
2762
|
+
e.message += '\nPlease report this to https://github.com/markedjs/this.';
|
|
2763
|
+
if (silent) {
|
|
2764
|
+
var msg = '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
|
|
2765
|
+
if (async) {
|
|
2766
|
+
return Promise.resolve(msg);
|
|
2767
|
+
}
|
|
2768
|
+
if (callback) {
|
|
2769
|
+
callback(null, msg);
|
|
2770
|
+
return;
|
|
2771
|
+
}
|
|
2772
|
+
return msg;
|
|
2773
|
+
}
|
|
2774
|
+
if (async) {
|
|
2775
|
+
return Promise.reject(e);
|
|
2776
|
+
}
|
|
2777
|
+
if (callback) {
|
|
2778
|
+
callback(e);
|
|
2779
|
+
return;
|
|
2780
|
+
}
|
|
2781
|
+
throw e;
|
|
2782
|
+
};
|
|
2783
|
+
}
|
|
2784
|
+
|
|
2785
|
+
var markedInstance = new Marked(exports.defaults);
|
|
2529
2786
|
|
|
2530
2787
|
/**
|
|
2531
2788
|
* Marked
|
|
2532
2789
|
*/
|
|
2533
2790
|
function marked(src, opt, callback) {
|
|
2534
|
-
return
|
|
2791
|
+
return markedInstance.parse(src, opt, callback);
|
|
2535
2792
|
}
|
|
2536
2793
|
|
|
2537
2794
|
/**
|
|
@@ -2539,7 +2796,8 @@ function marked(src, opt, callback) {
|
|
|
2539
2796
|
*/
|
|
2540
2797
|
|
|
2541
2798
|
marked.options = marked.setOptions = function (opt) {
|
|
2542
|
-
|
|
2799
|
+
markedInstance.setOptions(opt);
|
|
2800
|
+
marked.defaults = markedInstance.defaults;
|
|
2543
2801
|
changeDefaults(marked.defaults);
|
|
2544
2802
|
return marked;
|
|
2545
2803
|
};
|
|
@@ -2551,172 +2809,10 @@ marked.defaults = exports.defaults;
|
|
|
2551
2809
|
*/
|
|
2552
2810
|
|
|
2553
2811
|
marked.use = function () {
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2559
|
-
args[_key] = arguments[_key];
|
|
2560
|
-
}
|
|
2561
|
-
args.forEach(function (pack) {
|
|
2562
|
-
// copy options to new object
|
|
2563
|
-
var opts = _extends({}, pack);
|
|
2564
|
-
|
|
2565
|
-
// set async to true if it was set to true before
|
|
2566
|
-
opts.async = marked.defaults.async || opts.async || false;
|
|
2567
|
-
|
|
2568
|
-
// ==-- Parse "addon" extensions --== //
|
|
2569
|
-
if (pack.extensions) {
|
|
2570
|
-
pack.extensions.forEach(function (ext) {
|
|
2571
|
-
if (!ext.name) {
|
|
2572
|
-
throw new Error('extension name required');
|
|
2573
|
-
}
|
|
2574
|
-
if (ext.renderer) {
|
|
2575
|
-
// Renderer extensions
|
|
2576
|
-
var prevRenderer = extensions.renderers[ext.name];
|
|
2577
|
-
if (prevRenderer) {
|
|
2578
|
-
// Replace extension with func to run new extension but fall back if false
|
|
2579
|
-
extensions.renderers[ext.name] = function () {
|
|
2580
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
2581
|
-
args[_key2] = arguments[_key2];
|
|
2582
|
-
}
|
|
2583
|
-
var ret = ext.renderer.apply(this, args);
|
|
2584
|
-
if (ret === false) {
|
|
2585
|
-
ret = prevRenderer.apply(this, args);
|
|
2586
|
-
}
|
|
2587
|
-
return ret;
|
|
2588
|
-
};
|
|
2589
|
-
} else {
|
|
2590
|
-
extensions.renderers[ext.name] = ext.renderer;
|
|
2591
|
-
}
|
|
2592
|
-
}
|
|
2593
|
-
if (ext.tokenizer) {
|
|
2594
|
-
// Tokenizer Extensions
|
|
2595
|
-
if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {
|
|
2596
|
-
throw new Error("extension level must be 'block' or 'inline'");
|
|
2597
|
-
}
|
|
2598
|
-
if (extensions[ext.level]) {
|
|
2599
|
-
extensions[ext.level].unshift(ext.tokenizer);
|
|
2600
|
-
} else {
|
|
2601
|
-
extensions[ext.level] = [ext.tokenizer];
|
|
2602
|
-
}
|
|
2603
|
-
if (ext.start) {
|
|
2604
|
-
// Function to check for start of token
|
|
2605
|
-
if (ext.level === 'block') {
|
|
2606
|
-
if (extensions.startBlock) {
|
|
2607
|
-
extensions.startBlock.push(ext.start);
|
|
2608
|
-
} else {
|
|
2609
|
-
extensions.startBlock = [ext.start];
|
|
2610
|
-
}
|
|
2611
|
-
} else if (ext.level === 'inline') {
|
|
2612
|
-
if (extensions.startInline) {
|
|
2613
|
-
extensions.startInline.push(ext.start);
|
|
2614
|
-
} else {
|
|
2615
|
-
extensions.startInline = [ext.start];
|
|
2616
|
-
}
|
|
2617
|
-
}
|
|
2618
|
-
}
|
|
2619
|
-
}
|
|
2620
|
-
if (ext.childTokens) {
|
|
2621
|
-
// Child tokens to be visited by walkTokens
|
|
2622
|
-
extensions.childTokens[ext.name] = ext.childTokens;
|
|
2623
|
-
}
|
|
2624
|
-
});
|
|
2625
|
-
opts.extensions = extensions;
|
|
2626
|
-
}
|
|
2627
|
-
|
|
2628
|
-
// ==-- Parse "overwrite" extensions --== //
|
|
2629
|
-
if (pack.renderer) {
|
|
2630
|
-
var renderer = marked.defaults.renderer || new Renderer();
|
|
2631
|
-
var _loop = function _loop(prop) {
|
|
2632
|
-
var prevRenderer = renderer[prop];
|
|
2633
|
-
// Replace renderer with func to run extension, but fall back if false
|
|
2634
|
-
renderer[prop] = function () {
|
|
2635
|
-
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
2636
|
-
args[_key3] = arguments[_key3];
|
|
2637
|
-
}
|
|
2638
|
-
var ret = pack.renderer[prop].apply(renderer, args);
|
|
2639
|
-
if (ret === false) {
|
|
2640
|
-
ret = prevRenderer.apply(renderer, args);
|
|
2641
|
-
}
|
|
2642
|
-
return ret;
|
|
2643
|
-
};
|
|
2644
|
-
};
|
|
2645
|
-
for (var prop in pack.renderer) {
|
|
2646
|
-
_loop(prop);
|
|
2647
|
-
}
|
|
2648
|
-
opts.renderer = renderer;
|
|
2649
|
-
}
|
|
2650
|
-
if (pack.tokenizer) {
|
|
2651
|
-
var tokenizer = marked.defaults.tokenizer || new Tokenizer();
|
|
2652
|
-
var _loop2 = function _loop2(_prop) {
|
|
2653
|
-
var prevTokenizer = tokenizer[_prop];
|
|
2654
|
-
// Replace tokenizer with func to run extension, but fall back if false
|
|
2655
|
-
tokenizer[_prop] = function () {
|
|
2656
|
-
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
2657
|
-
args[_key4] = arguments[_key4];
|
|
2658
|
-
}
|
|
2659
|
-
var ret = pack.tokenizer[_prop].apply(tokenizer, args);
|
|
2660
|
-
if (ret === false) {
|
|
2661
|
-
ret = prevTokenizer.apply(tokenizer, args);
|
|
2662
|
-
}
|
|
2663
|
-
return ret;
|
|
2664
|
-
};
|
|
2665
|
-
};
|
|
2666
|
-
for (var _prop in pack.tokenizer) {
|
|
2667
|
-
_loop2(_prop);
|
|
2668
|
-
}
|
|
2669
|
-
opts.tokenizer = tokenizer;
|
|
2670
|
-
}
|
|
2671
|
-
|
|
2672
|
-
// ==-- Parse Hooks extensions --== //
|
|
2673
|
-
if (pack.hooks) {
|
|
2674
|
-
var hooks = marked.defaults.hooks || new Hooks();
|
|
2675
|
-
var _loop3 = function _loop3(_prop2) {
|
|
2676
|
-
var prevHook = hooks[_prop2];
|
|
2677
|
-
if (Hooks.passThroughHooks.has(_prop2)) {
|
|
2678
|
-
hooks[_prop2] = function (arg) {
|
|
2679
|
-
if (marked.defaults.async) {
|
|
2680
|
-
return Promise.resolve(pack.hooks[_prop2].call(hooks, arg)).then(function (ret) {
|
|
2681
|
-
return prevHook.call(hooks, ret);
|
|
2682
|
-
});
|
|
2683
|
-
}
|
|
2684
|
-
var ret = pack.hooks[_prop2].call(hooks, arg);
|
|
2685
|
-
return prevHook.call(hooks, ret);
|
|
2686
|
-
};
|
|
2687
|
-
} else {
|
|
2688
|
-
hooks[_prop2] = function () {
|
|
2689
|
-
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
2690
|
-
args[_key5] = arguments[_key5];
|
|
2691
|
-
}
|
|
2692
|
-
var ret = pack.hooks[_prop2].apply(hooks, args);
|
|
2693
|
-
if (ret === false) {
|
|
2694
|
-
ret = prevHook.apply(hooks, args);
|
|
2695
|
-
}
|
|
2696
|
-
return ret;
|
|
2697
|
-
};
|
|
2698
|
-
}
|
|
2699
|
-
};
|
|
2700
|
-
for (var _prop2 in pack.hooks) {
|
|
2701
|
-
_loop3(_prop2);
|
|
2702
|
-
}
|
|
2703
|
-
opts.hooks = hooks;
|
|
2704
|
-
}
|
|
2705
|
-
|
|
2706
|
-
// ==-- Parse WalkTokens extensions --== //
|
|
2707
|
-
if (pack.walkTokens) {
|
|
2708
|
-
var _walkTokens = marked.defaults.walkTokens;
|
|
2709
|
-
opts.walkTokens = function (token) {
|
|
2710
|
-
var values = [];
|
|
2711
|
-
values.push(pack.walkTokens.call(this, token));
|
|
2712
|
-
if (_walkTokens) {
|
|
2713
|
-
values = values.concat(_walkTokens.call(this, token));
|
|
2714
|
-
}
|
|
2715
|
-
return values;
|
|
2716
|
-
};
|
|
2717
|
-
}
|
|
2718
|
-
marked.setOptions(opts);
|
|
2719
|
-
});
|
|
2812
|
+
markedInstance.use.apply(markedInstance, arguments);
|
|
2813
|
+
marked.defaults = markedInstance.defaults;
|
|
2814
|
+
changeDefaults(marked.defaults);
|
|
2815
|
+
return marked;
|
|
2720
2816
|
};
|
|
2721
2817
|
|
|
2722
2818
|
/**
|
|
@@ -2724,55 +2820,14 @@ marked.use = function () {
|
|
|
2724
2820
|
*/
|
|
2725
2821
|
|
|
2726
2822
|
marked.walkTokens = function (tokens, callback) {
|
|
2727
|
-
|
|
2728
|
-
var _loop4 = function _loop4() {
|
|
2729
|
-
var token = _step.value;
|
|
2730
|
-
values = values.concat(callback.call(marked, token));
|
|
2731
|
-
switch (token.type) {
|
|
2732
|
-
case 'table':
|
|
2733
|
-
{
|
|
2734
|
-
for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {
|
|
2735
|
-
var cell = _step2.value;
|
|
2736
|
-
values = values.concat(marked.walkTokens(cell.tokens, callback));
|
|
2737
|
-
}
|
|
2738
|
-
for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {
|
|
2739
|
-
var row = _step3.value;
|
|
2740
|
-
for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {
|
|
2741
|
-
var _cell = _step4.value;
|
|
2742
|
-
values = values.concat(marked.walkTokens(_cell.tokens, callback));
|
|
2743
|
-
}
|
|
2744
|
-
}
|
|
2745
|
-
break;
|
|
2746
|
-
}
|
|
2747
|
-
case 'list':
|
|
2748
|
-
{
|
|
2749
|
-
values = values.concat(marked.walkTokens(token.items, callback));
|
|
2750
|
-
break;
|
|
2751
|
-
}
|
|
2752
|
-
default:
|
|
2753
|
-
{
|
|
2754
|
-
if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {
|
|
2755
|
-
// Walk any extensions
|
|
2756
|
-
marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {
|
|
2757
|
-
values = values.concat(marked.walkTokens(token[childTokens], callback));
|
|
2758
|
-
});
|
|
2759
|
-
} else if (token.tokens) {
|
|
2760
|
-
values = values.concat(marked.walkTokens(token.tokens, callback));
|
|
2761
|
-
}
|
|
2762
|
-
}
|
|
2763
|
-
}
|
|
2764
|
-
};
|
|
2765
|
-
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
|
2766
|
-
_loop4();
|
|
2767
|
-
}
|
|
2768
|
-
return values;
|
|
2823
|
+
return markedInstance.walkTokens(tokens, callback);
|
|
2769
2824
|
};
|
|
2770
2825
|
|
|
2771
2826
|
/**
|
|
2772
2827
|
* Parse Inline
|
|
2773
2828
|
* @param {string} src
|
|
2774
2829
|
*/
|
|
2775
|
-
marked.parseInline =
|
|
2830
|
+
marked.parseInline = markedInstance.parseInline;
|
|
2776
2831
|
|
|
2777
2832
|
/**
|
|
2778
2833
|
* Expose
|
|
@@ -2798,6 +2853,7 @@ var lexer = Lexer.lex;
|
|
|
2798
2853
|
|
|
2799
2854
|
exports.Hooks = Hooks;
|
|
2800
2855
|
exports.Lexer = Lexer;
|
|
2856
|
+
exports.Marked = Marked;
|
|
2801
2857
|
exports.Parser = Parser;
|
|
2802
2858
|
exports.Renderer = Renderer;
|
|
2803
2859
|
exports.Slugger = Slugger;
|