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.umd.js
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
|
*/
|
|
@@ -91,6 +91,16 @@
|
|
|
91
91
|
var key = _toPrimitive(arg, "string");
|
|
92
92
|
return typeof key === "symbol" ? key : String(key);
|
|
93
93
|
}
|
|
94
|
+
var id = 0;
|
|
95
|
+
function _classPrivateFieldLooseKey(name) {
|
|
96
|
+
return "__private_" + id++ + "_" + name;
|
|
97
|
+
}
|
|
98
|
+
function _classPrivateFieldLooseBase(receiver, privateKey) {
|
|
99
|
+
if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
|
|
100
|
+
throw new TypeError("attempted to use private field on non-instance");
|
|
101
|
+
}
|
|
102
|
+
return receiver;
|
|
103
|
+
}
|
|
94
104
|
|
|
95
105
|
function getDefaults() {
|
|
96
106
|
return {
|
|
@@ -931,7 +941,7 @@
|
|
|
931
941
|
// _ can't be between two alphanumerics. \p{L}\p{N} includes non-english alphabet/numbers as well
|
|
932
942
|
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;
|
|
933
943
|
var nextChar = match[1] || match[2] || '';
|
|
934
|
-
if (!nextChar ||
|
|
944
|
+
if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {
|
|
935
945
|
var lLength = match[0].length - 1;
|
|
936
946
|
var rDelim,
|
|
937
947
|
rLength,
|
|
@@ -964,7 +974,7 @@
|
|
|
964
974
|
|
|
965
975
|
// Remove extra characters. *a*** -> *a*
|
|
966
976
|
rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);
|
|
967
|
-
var raw = src.slice(0, lLength + match.index +
|
|
977
|
+
var raw = src.slice(0, lLength + match.index + rLength + 1);
|
|
968
978
|
|
|
969
979
|
// Create `em` if smallest delimiter has odd char count. *a***
|
|
970
980
|
if (Math.min(lLength, rLength) % 2) {
|
|
@@ -1205,36 +1215,34 @@
|
|
|
1205
1215
|
nolink: /^!?\[(ref)\](?:\[\])?/,
|
|
1206
1216
|
reflinkSearch: 'reflink|nolink(?!\\()',
|
|
1207
1217
|
emStrong: {
|
|
1208
|
-
lDelim: /^(?:\*+(?:([
|
|
1209
|
-
//
|
|
1210
|
-
//
|
|
1211
|
-
rDelimAst: /^
|
|
1212
|
-
rDelimUnd: /^
|
|
1218
|
+
lDelim: /^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,
|
|
1219
|
+
// (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.
|
|
1220
|
+
// | Skip orphan inside strong | Consume to delim | (1) #*** | (2) a***#, a*** | (3) #***a, ***a | (4) ***# | (5) #***# | (6) a***a
|
|
1221
|
+
rDelimAst: /^[^_*]*?__[^_*]*?\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\*)[punct](\*+)(?=[\s]|$)|[^punct\s](\*+)(?!\*)(?=[punct\s]|$)|(?!\*)[punct\s](\*+)(?=[^punct\s])|[\s](\*+)(?!\*)(?=[punct])|(?!\*)[punct](\*+)(?!\*)(?=[punct])|[^punct\s](\*+)(?=[^punct\s])/,
|
|
1222
|
+
rDelimUnd: /^[^_*]*?\*\*[^_*]*?_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\s]|$)|[^punct\s](_+)(?!_)(?=[punct\s]|$)|(?!_)[punct\s](_+)(?=[^punct\s])|[\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])/ // ^- Not allowed for _
|
|
1213
1223
|
},
|
|
1214
1224
|
|
|
1215
1225
|
code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
|
|
1216
1226
|
br: /^( {2,}|\\)\n(?!\s*$)/,
|
|
1217
1227
|
del: noopTest,
|
|
1218
1228
|
text: /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,
|
|
1219
|
-
punctuation: /^([\spunctuation])/
|
|
1229
|
+
punctuation: /^((?![*_])[\spunctuation])/
|
|
1220
1230
|
};
|
|
1221
1231
|
|
|
1222
|
-
// list of punctuation marks from CommonMark spec
|
|
1223
|
-
|
|
1224
|
-
inline.
|
|
1225
|
-
inline._punctuation = '!"#$%&\'()+\\-.,/:;<=>?@\\[\\]`^{|}~' + inline._uc_punctuation;
|
|
1226
|
-
inline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();
|
|
1232
|
+
// list of unicode punctuation marks, plus any missing characters from CommonMark spec
|
|
1233
|
+
inline._punctuation = '\\p{P}$+<=>`^|~';
|
|
1234
|
+
inline.punctuation = edit(inline.punctuation, 'u').replace(/punctuation/g, inline._punctuation).getRegex();
|
|
1227
1235
|
|
|
1228
1236
|
// sequences em should skip over [title](link), `code`, <html>
|
|
1229
1237
|
inline.blockSkip = /\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g;
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
inline.escapedEmSt = /(?:^|[^\\])(?:\\\\)*\\[*_]/g;
|
|
1238
|
+
inline.anyPunctuation = /\\[punct]/g;
|
|
1239
|
+
inline._escapes = /\\([punct])/g;
|
|
1233
1240
|
inline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();
|
|
1234
|
-
inline.emStrong.lDelim = edit(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();
|
|
1235
|
-
inline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, '
|
|
1236
|
-
inline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, '
|
|
1237
|
-
inline.
|
|
1241
|
+
inline.emStrong.lDelim = edit(inline.emStrong.lDelim, 'u').replace(/punct/g, inline._punctuation).getRegex();
|
|
1242
|
+
inline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'gu').replace(/punct/g, inline._punctuation).getRegex();
|
|
1243
|
+
inline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'gu').replace(/punct/g, inline._punctuation).getRegex();
|
|
1244
|
+
inline.anyPunctuation = edit(inline.anyPunctuation, 'gu').replace(/punct/g, inline._punctuation).getRegex();
|
|
1245
|
+
inline._escapes = edit(inline._escapes, 'gu').replace(/punct/g, inline._punctuation).getRegex();
|
|
1238
1246
|
inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;
|
|
1239
1247
|
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])?)+(?![-_])/;
|
|
1240
1248
|
inline.autolink = edit(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();
|
|
@@ -1646,10 +1654,9 @@
|
|
|
1646
1654
|
maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
|
|
1647
1655
|
}
|
|
1648
1656
|
|
|
1649
|
-
// Mask out escaped
|
|
1650
|
-
while ((match = this.tokenizer.rules.inline.
|
|
1651
|
-
maskedSrc = maskedSrc.slice(0, match.index
|
|
1652
|
-
this.tokenizer.rules.inline.escapedEmSt.lastIndex--;
|
|
1657
|
+
// Mask out escaped characters
|
|
1658
|
+
while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {
|
|
1659
|
+
maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
|
|
1653
1660
|
}
|
|
1654
1661
|
var _loop2 = function _loop2() {
|
|
1655
1662
|
if (!keepPrevChar) {
|
|
@@ -2394,39 +2401,263 @@
|
|
|
2394
2401
|
}();
|
|
2395
2402
|
Hooks.passThroughHooks = new Set(['preprocess', 'postprocess']);
|
|
2396
2403
|
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2404
|
+
var _parseMarkdown = /*#__PURE__*/_classPrivateFieldLooseKey("parseMarkdown");
|
|
2405
|
+
var _onError = /*#__PURE__*/_classPrivateFieldLooseKey("onError");
|
|
2406
|
+
var Marked = /*#__PURE__*/function () {
|
|
2407
|
+
function Marked() {
|
|
2408
|
+
Object.defineProperty(this, _onError, {
|
|
2409
|
+
value: _onError2
|
|
2410
|
+
});
|
|
2411
|
+
Object.defineProperty(this, _parseMarkdown, {
|
|
2412
|
+
value: _parseMarkdown2
|
|
2413
|
+
});
|
|
2414
|
+
this.defaults = getDefaults();
|
|
2415
|
+
this.options = this.setOptions;
|
|
2416
|
+
this.parse = _classPrivateFieldLooseBase(this, _parseMarkdown)[_parseMarkdown](Lexer.lex, Parser.parse);
|
|
2417
|
+
this.parseInline = _classPrivateFieldLooseBase(this, _parseMarkdown)[_parseMarkdown](Lexer.lexInline, Parser.parseInline);
|
|
2418
|
+
this.Parser = Parser;
|
|
2419
|
+
this.parser = Parser.parse;
|
|
2420
|
+
this.Renderer = Renderer;
|
|
2421
|
+
this.TextRenderer = TextRenderer;
|
|
2422
|
+
this.Lexer = Lexer;
|
|
2423
|
+
this.lexer = Lexer.lex;
|
|
2424
|
+
this.Tokenizer = Tokenizer;
|
|
2425
|
+
this.Slugger = Slugger;
|
|
2426
|
+
this.Hooks = Hooks;
|
|
2427
|
+
this.use.apply(this, arguments);
|
|
2428
|
+
}
|
|
2429
|
+
var _proto = Marked.prototype;
|
|
2430
|
+
_proto.walkTokens = function walkTokens(tokens, callback) {
|
|
2431
|
+
var _this = this;
|
|
2432
|
+
var values = [];
|
|
2433
|
+
var _loop = function _loop() {
|
|
2434
|
+
var token = _step.value;
|
|
2435
|
+
values = values.concat(callback.call(_this, token));
|
|
2436
|
+
switch (token.type) {
|
|
2437
|
+
case 'table':
|
|
2438
|
+
{
|
|
2439
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {
|
|
2440
|
+
var cell = _step2.value;
|
|
2441
|
+
values = values.concat(_this.walkTokens(cell.tokens, callback));
|
|
2442
|
+
}
|
|
2443
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {
|
|
2444
|
+
var row = _step3.value;
|
|
2445
|
+
for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {
|
|
2446
|
+
var _cell = _step4.value;
|
|
2447
|
+
values = values.concat(_this.walkTokens(_cell.tokens, callback));
|
|
2448
|
+
}
|
|
2449
|
+
}
|
|
2450
|
+
break;
|
|
2451
|
+
}
|
|
2452
|
+
case 'list':
|
|
2453
|
+
{
|
|
2454
|
+
values = values.concat(_this.walkTokens(token.items, callback));
|
|
2455
|
+
break;
|
|
2456
|
+
}
|
|
2457
|
+
default:
|
|
2458
|
+
{
|
|
2459
|
+
if (_this.defaults.extensions && _this.defaults.extensions.childTokens && _this.defaults.extensions.childTokens[token.type]) {
|
|
2460
|
+
// Walk any extensions
|
|
2461
|
+
_this.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {
|
|
2462
|
+
values = values.concat(_this.walkTokens(token[childTokens], callback));
|
|
2463
|
+
});
|
|
2464
|
+
} else if (token.tokens) {
|
|
2465
|
+
values = values.concat(_this.walkTokens(token.tokens, callback));
|
|
2466
|
+
}
|
|
2467
|
+
}
|
|
2408
2468
|
}
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
return Promise.reject(e);
|
|
2469
|
+
};
|
|
2470
|
+
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
|
2471
|
+
_loop();
|
|
2413
2472
|
}
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2473
|
+
return values;
|
|
2474
|
+
};
|
|
2475
|
+
_proto.use = function use() {
|
|
2476
|
+
var _this2 = this;
|
|
2477
|
+
var extensions = this.defaults.extensions || {
|
|
2478
|
+
renderers: {},
|
|
2479
|
+
childTokens: {}
|
|
2480
|
+
};
|
|
2481
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2482
|
+
args[_key] = arguments[_key];
|
|
2417
2483
|
}
|
|
2418
|
-
|
|
2484
|
+
args.forEach(function (pack) {
|
|
2485
|
+
// copy options to new object
|
|
2486
|
+
var opts = _extends({}, pack);
|
|
2487
|
+
|
|
2488
|
+
// set async to true if it was set to true before
|
|
2489
|
+
opts.async = _this2.defaults.async || opts.async || false;
|
|
2490
|
+
|
|
2491
|
+
// ==-- Parse "addon" extensions --== //
|
|
2492
|
+
if (pack.extensions) {
|
|
2493
|
+
pack.extensions.forEach(function (ext) {
|
|
2494
|
+
if (!ext.name) {
|
|
2495
|
+
throw new Error('extension name required');
|
|
2496
|
+
}
|
|
2497
|
+
if (ext.renderer) {
|
|
2498
|
+
// Renderer extensions
|
|
2499
|
+
var prevRenderer = extensions.renderers[ext.name];
|
|
2500
|
+
if (prevRenderer) {
|
|
2501
|
+
// Replace extension with func to run new extension but fall back if false
|
|
2502
|
+
extensions.renderers[ext.name] = function () {
|
|
2503
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
2504
|
+
args[_key2] = arguments[_key2];
|
|
2505
|
+
}
|
|
2506
|
+
var ret = ext.renderer.apply(this, args);
|
|
2507
|
+
if (ret === false) {
|
|
2508
|
+
ret = prevRenderer.apply(this, args);
|
|
2509
|
+
}
|
|
2510
|
+
return ret;
|
|
2511
|
+
};
|
|
2512
|
+
} else {
|
|
2513
|
+
extensions.renderers[ext.name] = ext.renderer;
|
|
2514
|
+
}
|
|
2515
|
+
}
|
|
2516
|
+
if (ext.tokenizer) {
|
|
2517
|
+
// Tokenizer Extensions
|
|
2518
|
+
if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {
|
|
2519
|
+
throw new Error("extension level must be 'block' or 'inline'");
|
|
2520
|
+
}
|
|
2521
|
+
if (extensions[ext.level]) {
|
|
2522
|
+
extensions[ext.level].unshift(ext.tokenizer);
|
|
2523
|
+
} else {
|
|
2524
|
+
extensions[ext.level] = [ext.tokenizer];
|
|
2525
|
+
}
|
|
2526
|
+
if (ext.start) {
|
|
2527
|
+
// Function to check for start of token
|
|
2528
|
+
if (ext.level === 'block') {
|
|
2529
|
+
if (extensions.startBlock) {
|
|
2530
|
+
extensions.startBlock.push(ext.start);
|
|
2531
|
+
} else {
|
|
2532
|
+
extensions.startBlock = [ext.start];
|
|
2533
|
+
}
|
|
2534
|
+
} else if (ext.level === 'inline') {
|
|
2535
|
+
if (extensions.startInline) {
|
|
2536
|
+
extensions.startInline.push(ext.start);
|
|
2537
|
+
} else {
|
|
2538
|
+
extensions.startInline = [ext.start];
|
|
2539
|
+
}
|
|
2540
|
+
}
|
|
2541
|
+
}
|
|
2542
|
+
}
|
|
2543
|
+
if (ext.childTokens) {
|
|
2544
|
+
// Child tokens to be visited by walkTokens
|
|
2545
|
+
extensions.childTokens[ext.name] = ext.childTokens;
|
|
2546
|
+
}
|
|
2547
|
+
});
|
|
2548
|
+
opts.extensions = extensions;
|
|
2549
|
+
}
|
|
2550
|
+
|
|
2551
|
+
// ==-- Parse "overwrite" extensions --== //
|
|
2552
|
+
if (pack.renderer) {
|
|
2553
|
+
var renderer = _this2.defaults.renderer || new Renderer(_this2.defaults);
|
|
2554
|
+
var _loop2 = function _loop2(prop) {
|
|
2555
|
+
var prevRenderer = renderer[prop];
|
|
2556
|
+
// Replace renderer with func to run extension, but fall back if false
|
|
2557
|
+
renderer[prop] = function () {
|
|
2558
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
2559
|
+
args[_key3] = arguments[_key3];
|
|
2560
|
+
}
|
|
2561
|
+
var ret = pack.renderer[prop].apply(renderer, args);
|
|
2562
|
+
if (ret === false) {
|
|
2563
|
+
ret = prevRenderer.apply(renderer, args);
|
|
2564
|
+
}
|
|
2565
|
+
return ret;
|
|
2566
|
+
};
|
|
2567
|
+
};
|
|
2568
|
+
for (var prop in pack.renderer) {
|
|
2569
|
+
_loop2(prop);
|
|
2570
|
+
}
|
|
2571
|
+
opts.renderer = renderer;
|
|
2572
|
+
}
|
|
2573
|
+
if (pack.tokenizer) {
|
|
2574
|
+
var tokenizer = _this2.defaults.tokenizer || new Tokenizer(_this2.defaults);
|
|
2575
|
+
var _loop3 = function _loop3(_prop) {
|
|
2576
|
+
var prevTokenizer = tokenizer[_prop];
|
|
2577
|
+
// Replace tokenizer with func to run extension, but fall back if false
|
|
2578
|
+
tokenizer[_prop] = function () {
|
|
2579
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
2580
|
+
args[_key4] = arguments[_key4];
|
|
2581
|
+
}
|
|
2582
|
+
var ret = pack.tokenizer[_prop].apply(tokenizer, args);
|
|
2583
|
+
if (ret === false) {
|
|
2584
|
+
ret = prevTokenizer.apply(tokenizer, args);
|
|
2585
|
+
}
|
|
2586
|
+
return ret;
|
|
2587
|
+
};
|
|
2588
|
+
};
|
|
2589
|
+
for (var _prop in pack.tokenizer) {
|
|
2590
|
+
_loop3(_prop);
|
|
2591
|
+
}
|
|
2592
|
+
opts.tokenizer = tokenizer;
|
|
2593
|
+
}
|
|
2594
|
+
|
|
2595
|
+
// ==-- Parse Hooks extensions --== //
|
|
2596
|
+
if (pack.hooks) {
|
|
2597
|
+
var hooks = _this2.defaults.hooks || new Hooks();
|
|
2598
|
+
var _loop4 = function _loop4(_prop2) {
|
|
2599
|
+
var prevHook = hooks[_prop2];
|
|
2600
|
+
if (Hooks.passThroughHooks.has(_prop2)) {
|
|
2601
|
+
hooks[_prop2] = function (arg) {
|
|
2602
|
+
if (_this2.defaults.async) {
|
|
2603
|
+
return Promise.resolve(pack.hooks[_prop2].call(hooks, arg)).then(function (ret) {
|
|
2604
|
+
return prevHook.call(hooks, ret);
|
|
2605
|
+
});
|
|
2606
|
+
}
|
|
2607
|
+
var ret = pack.hooks[_prop2].call(hooks, arg);
|
|
2608
|
+
return prevHook.call(hooks, ret);
|
|
2609
|
+
};
|
|
2610
|
+
} else {
|
|
2611
|
+
hooks[_prop2] = function () {
|
|
2612
|
+
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
2613
|
+
args[_key5] = arguments[_key5];
|
|
2614
|
+
}
|
|
2615
|
+
var ret = pack.hooks[_prop2].apply(hooks, args);
|
|
2616
|
+
if (ret === false) {
|
|
2617
|
+
ret = prevHook.apply(hooks, args);
|
|
2618
|
+
}
|
|
2619
|
+
return ret;
|
|
2620
|
+
};
|
|
2621
|
+
}
|
|
2622
|
+
};
|
|
2623
|
+
for (var _prop2 in pack.hooks) {
|
|
2624
|
+
_loop4(_prop2);
|
|
2625
|
+
}
|
|
2626
|
+
opts.hooks = hooks;
|
|
2627
|
+
}
|
|
2628
|
+
|
|
2629
|
+
// ==-- Parse WalkTokens extensions --== //
|
|
2630
|
+
if (pack.walkTokens) {
|
|
2631
|
+
var walkTokens = _this2.defaults.walkTokens;
|
|
2632
|
+
opts.walkTokens = function (token) {
|
|
2633
|
+
var values = [];
|
|
2634
|
+
values.push(pack.walkTokens.call(this, token));
|
|
2635
|
+
if (walkTokens) {
|
|
2636
|
+
values = values.concat(walkTokens.call(this, token));
|
|
2637
|
+
}
|
|
2638
|
+
return values;
|
|
2639
|
+
};
|
|
2640
|
+
}
|
|
2641
|
+
_this2.defaults = _extends({}, _this2.defaults, opts);
|
|
2642
|
+
});
|
|
2643
|
+
return this;
|
|
2419
2644
|
};
|
|
2420
|
-
|
|
2421
|
-
|
|
2645
|
+
_proto.setOptions = function setOptions(opt) {
|
|
2646
|
+
this.defaults = _extends({}, this.defaults, opt);
|
|
2647
|
+
return this;
|
|
2648
|
+
};
|
|
2649
|
+
return Marked;
|
|
2650
|
+
}();
|
|
2651
|
+
function _parseMarkdown2(lexer, parser) {
|
|
2652
|
+
var _this3 = this;
|
|
2422
2653
|
return function (src, opt, callback) {
|
|
2423
2654
|
if (typeof opt === 'function') {
|
|
2424
2655
|
callback = opt;
|
|
2425
2656
|
opt = null;
|
|
2426
2657
|
}
|
|
2427
2658
|
var origOpt = _extends({}, opt);
|
|
2428
|
-
opt = _extends({},
|
|
2429
|
-
var throwError =
|
|
2659
|
+
opt = _extends({}, _this3.defaults, origOpt);
|
|
2660
|
+
var throwError = _classPrivateFieldLooseBase(_this3, _onError)[_onError](opt.silent, opt.async, callback);
|
|
2430
2661
|
|
|
2431
2662
|
// throw error in case of non string input
|
|
2432
2663
|
if (typeof src === 'undefined' || src === null) {
|
|
@@ -2455,7 +2686,7 @@
|
|
|
2455
2686
|
if (!err) {
|
|
2456
2687
|
try {
|
|
2457
2688
|
if (opt.walkTokens) {
|
|
2458
|
-
|
|
2689
|
+
_this3.walkTokens(tokens, opt.walkTokens);
|
|
2459
2690
|
}
|
|
2460
2691
|
out = parser(tokens, opt);
|
|
2461
2692
|
if (opt.hooks) {
|
|
@@ -2474,7 +2705,7 @@
|
|
|
2474
2705
|
delete opt.highlight;
|
|
2475
2706
|
if (!tokens.length) return done();
|
|
2476
2707
|
var pending = 0;
|
|
2477
|
-
|
|
2708
|
+
_this3.walkTokens(tokens, function (token) {
|
|
2478
2709
|
if (token.type === 'code') {
|
|
2479
2710
|
pending++;
|
|
2480
2711
|
setTimeout(function () {
|
|
@@ -2503,7 +2734,7 @@
|
|
|
2503
2734
|
return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then(function (src) {
|
|
2504
2735
|
return lexer(src, opt);
|
|
2505
2736
|
}).then(function (tokens) {
|
|
2506
|
-
return opt.walkTokens ? Promise.all(
|
|
2737
|
+
return opt.walkTokens ? Promise.all(_this3.walkTokens(tokens, opt.walkTokens)).then(function () {
|
|
2507
2738
|
return tokens;
|
|
2508
2739
|
}) : tokens;
|
|
2509
2740
|
}).then(function (tokens) {
|
|
@@ -2518,7 +2749,7 @@
|
|
|
2518
2749
|
}
|
|
2519
2750
|
var _tokens = lexer(src, opt);
|
|
2520
2751
|
if (opt.walkTokens) {
|
|
2521
|
-
|
|
2752
|
+
_this3.walkTokens(_tokens, opt.walkTokens);
|
|
2522
2753
|
}
|
|
2523
2754
|
var html = parser(_tokens, opt);
|
|
2524
2755
|
if (opt.hooks) {
|
|
@@ -2530,12 +2761,38 @@
|
|
|
2530
2761
|
}
|
|
2531
2762
|
};
|
|
2532
2763
|
}
|
|
2764
|
+
function _onError2(silent, async, callback) {
|
|
2765
|
+
return function (e) {
|
|
2766
|
+
e.message += '\nPlease report this to https://github.com/markedjs/this.';
|
|
2767
|
+
if (silent) {
|
|
2768
|
+
var msg = '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
|
|
2769
|
+
if (async) {
|
|
2770
|
+
return Promise.resolve(msg);
|
|
2771
|
+
}
|
|
2772
|
+
if (callback) {
|
|
2773
|
+
callback(null, msg);
|
|
2774
|
+
return;
|
|
2775
|
+
}
|
|
2776
|
+
return msg;
|
|
2777
|
+
}
|
|
2778
|
+
if (async) {
|
|
2779
|
+
return Promise.reject(e);
|
|
2780
|
+
}
|
|
2781
|
+
if (callback) {
|
|
2782
|
+
callback(e);
|
|
2783
|
+
return;
|
|
2784
|
+
}
|
|
2785
|
+
throw e;
|
|
2786
|
+
};
|
|
2787
|
+
}
|
|
2788
|
+
|
|
2789
|
+
var markedInstance = new Marked(exports.defaults);
|
|
2533
2790
|
|
|
2534
2791
|
/**
|
|
2535
2792
|
* Marked
|
|
2536
2793
|
*/
|
|
2537
2794
|
function marked(src, opt, callback) {
|
|
2538
|
-
return
|
|
2795
|
+
return markedInstance.parse(src, opt, callback);
|
|
2539
2796
|
}
|
|
2540
2797
|
|
|
2541
2798
|
/**
|
|
@@ -2543,7 +2800,8 @@
|
|
|
2543
2800
|
*/
|
|
2544
2801
|
|
|
2545
2802
|
marked.options = marked.setOptions = function (opt) {
|
|
2546
|
-
|
|
2803
|
+
markedInstance.setOptions(opt);
|
|
2804
|
+
marked.defaults = markedInstance.defaults;
|
|
2547
2805
|
changeDefaults(marked.defaults);
|
|
2548
2806
|
return marked;
|
|
2549
2807
|
};
|
|
@@ -2555,172 +2813,10 @@
|
|
|
2555
2813
|
*/
|
|
2556
2814
|
|
|
2557
2815
|
marked.use = function () {
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2563
|
-
args[_key] = arguments[_key];
|
|
2564
|
-
}
|
|
2565
|
-
args.forEach(function (pack) {
|
|
2566
|
-
// copy options to new object
|
|
2567
|
-
var opts = _extends({}, pack);
|
|
2568
|
-
|
|
2569
|
-
// set async to true if it was set to true before
|
|
2570
|
-
opts.async = marked.defaults.async || opts.async || false;
|
|
2571
|
-
|
|
2572
|
-
// ==-- Parse "addon" extensions --== //
|
|
2573
|
-
if (pack.extensions) {
|
|
2574
|
-
pack.extensions.forEach(function (ext) {
|
|
2575
|
-
if (!ext.name) {
|
|
2576
|
-
throw new Error('extension name required');
|
|
2577
|
-
}
|
|
2578
|
-
if (ext.renderer) {
|
|
2579
|
-
// Renderer extensions
|
|
2580
|
-
var prevRenderer = extensions.renderers[ext.name];
|
|
2581
|
-
if (prevRenderer) {
|
|
2582
|
-
// Replace extension with func to run new extension but fall back if false
|
|
2583
|
-
extensions.renderers[ext.name] = function () {
|
|
2584
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
2585
|
-
args[_key2] = arguments[_key2];
|
|
2586
|
-
}
|
|
2587
|
-
var ret = ext.renderer.apply(this, args);
|
|
2588
|
-
if (ret === false) {
|
|
2589
|
-
ret = prevRenderer.apply(this, args);
|
|
2590
|
-
}
|
|
2591
|
-
return ret;
|
|
2592
|
-
};
|
|
2593
|
-
} else {
|
|
2594
|
-
extensions.renderers[ext.name] = ext.renderer;
|
|
2595
|
-
}
|
|
2596
|
-
}
|
|
2597
|
-
if (ext.tokenizer) {
|
|
2598
|
-
// Tokenizer Extensions
|
|
2599
|
-
if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {
|
|
2600
|
-
throw new Error("extension level must be 'block' or 'inline'");
|
|
2601
|
-
}
|
|
2602
|
-
if (extensions[ext.level]) {
|
|
2603
|
-
extensions[ext.level].unshift(ext.tokenizer);
|
|
2604
|
-
} else {
|
|
2605
|
-
extensions[ext.level] = [ext.tokenizer];
|
|
2606
|
-
}
|
|
2607
|
-
if (ext.start) {
|
|
2608
|
-
// Function to check for start of token
|
|
2609
|
-
if (ext.level === 'block') {
|
|
2610
|
-
if (extensions.startBlock) {
|
|
2611
|
-
extensions.startBlock.push(ext.start);
|
|
2612
|
-
} else {
|
|
2613
|
-
extensions.startBlock = [ext.start];
|
|
2614
|
-
}
|
|
2615
|
-
} else if (ext.level === 'inline') {
|
|
2616
|
-
if (extensions.startInline) {
|
|
2617
|
-
extensions.startInline.push(ext.start);
|
|
2618
|
-
} else {
|
|
2619
|
-
extensions.startInline = [ext.start];
|
|
2620
|
-
}
|
|
2621
|
-
}
|
|
2622
|
-
}
|
|
2623
|
-
}
|
|
2624
|
-
if (ext.childTokens) {
|
|
2625
|
-
// Child tokens to be visited by walkTokens
|
|
2626
|
-
extensions.childTokens[ext.name] = ext.childTokens;
|
|
2627
|
-
}
|
|
2628
|
-
});
|
|
2629
|
-
opts.extensions = extensions;
|
|
2630
|
-
}
|
|
2631
|
-
|
|
2632
|
-
// ==-- Parse "overwrite" extensions --== //
|
|
2633
|
-
if (pack.renderer) {
|
|
2634
|
-
var renderer = marked.defaults.renderer || new Renderer();
|
|
2635
|
-
var _loop = function _loop(prop) {
|
|
2636
|
-
var prevRenderer = renderer[prop];
|
|
2637
|
-
// Replace renderer with func to run extension, but fall back if false
|
|
2638
|
-
renderer[prop] = function () {
|
|
2639
|
-
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
2640
|
-
args[_key3] = arguments[_key3];
|
|
2641
|
-
}
|
|
2642
|
-
var ret = pack.renderer[prop].apply(renderer, args);
|
|
2643
|
-
if (ret === false) {
|
|
2644
|
-
ret = prevRenderer.apply(renderer, args);
|
|
2645
|
-
}
|
|
2646
|
-
return ret;
|
|
2647
|
-
};
|
|
2648
|
-
};
|
|
2649
|
-
for (var prop in pack.renderer) {
|
|
2650
|
-
_loop(prop);
|
|
2651
|
-
}
|
|
2652
|
-
opts.renderer = renderer;
|
|
2653
|
-
}
|
|
2654
|
-
if (pack.tokenizer) {
|
|
2655
|
-
var tokenizer = marked.defaults.tokenizer || new Tokenizer();
|
|
2656
|
-
var _loop2 = function _loop2(_prop) {
|
|
2657
|
-
var prevTokenizer = tokenizer[_prop];
|
|
2658
|
-
// Replace tokenizer with func to run extension, but fall back if false
|
|
2659
|
-
tokenizer[_prop] = function () {
|
|
2660
|
-
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
2661
|
-
args[_key4] = arguments[_key4];
|
|
2662
|
-
}
|
|
2663
|
-
var ret = pack.tokenizer[_prop].apply(tokenizer, args);
|
|
2664
|
-
if (ret === false) {
|
|
2665
|
-
ret = prevTokenizer.apply(tokenizer, args);
|
|
2666
|
-
}
|
|
2667
|
-
return ret;
|
|
2668
|
-
};
|
|
2669
|
-
};
|
|
2670
|
-
for (var _prop in pack.tokenizer) {
|
|
2671
|
-
_loop2(_prop);
|
|
2672
|
-
}
|
|
2673
|
-
opts.tokenizer = tokenizer;
|
|
2674
|
-
}
|
|
2675
|
-
|
|
2676
|
-
// ==-- Parse Hooks extensions --== //
|
|
2677
|
-
if (pack.hooks) {
|
|
2678
|
-
var hooks = marked.defaults.hooks || new Hooks();
|
|
2679
|
-
var _loop3 = function _loop3(_prop2) {
|
|
2680
|
-
var prevHook = hooks[_prop2];
|
|
2681
|
-
if (Hooks.passThroughHooks.has(_prop2)) {
|
|
2682
|
-
hooks[_prop2] = function (arg) {
|
|
2683
|
-
if (marked.defaults.async) {
|
|
2684
|
-
return Promise.resolve(pack.hooks[_prop2].call(hooks, arg)).then(function (ret) {
|
|
2685
|
-
return prevHook.call(hooks, ret);
|
|
2686
|
-
});
|
|
2687
|
-
}
|
|
2688
|
-
var ret = pack.hooks[_prop2].call(hooks, arg);
|
|
2689
|
-
return prevHook.call(hooks, ret);
|
|
2690
|
-
};
|
|
2691
|
-
} else {
|
|
2692
|
-
hooks[_prop2] = function () {
|
|
2693
|
-
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
2694
|
-
args[_key5] = arguments[_key5];
|
|
2695
|
-
}
|
|
2696
|
-
var ret = pack.hooks[_prop2].apply(hooks, args);
|
|
2697
|
-
if (ret === false) {
|
|
2698
|
-
ret = prevHook.apply(hooks, args);
|
|
2699
|
-
}
|
|
2700
|
-
return ret;
|
|
2701
|
-
};
|
|
2702
|
-
}
|
|
2703
|
-
};
|
|
2704
|
-
for (var _prop2 in pack.hooks) {
|
|
2705
|
-
_loop3(_prop2);
|
|
2706
|
-
}
|
|
2707
|
-
opts.hooks = hooks;
|
|
2708
|
-
}
|
|
2709
|
-
|
|
2710
|
-
// ==-- Parse WalkTokens extensions --== //
|
|
2711
|
-
if (pack.walkTokens) {
|
|
2712
|
-
var _walkTokens = marked.defaults.walkTokens;
|
|
2713
|
-
opts.walkTokens = function (token) {
|
|
2714
|
-
var values = [];
|
|
2715
|
-
values.push(pack.walkTokens.call(this, token));
|
|
2716
|
-
if (_walkTokens) {
|
|
2717
|
-
values = values.concat(_walkTokens.call(this, token));
|
|
2718
|
-
}
|
|
2719
|
-
return values;
|
|
2720
|
-
};
|
|
2721
|
-
}
|
|
2722
|
-
marked.setOptions(opts);
|
|
2723
|
-
});
|
|
2816
|
+
markedInstance.use.apply(markedInstance, arguments);
|
|
2817
|
+
marked.defaults = markedInstance.defaults;
|
|
2818
|
+
changeDefaults(marked.defaults);
|
|
2819
|
+
return marked;
|
|
2724
2820
|
};
|
|
2725
2821
|
|
|
2726
2822
|
/**
|
|
@@ -2728,55 +2824,14 @@
|
|
|
2728
2824
|
*/
|
|
2729
2825
|
|
|
2730
2826
|
marked.walkTokens = function (tokens, callback) {
|
|
2731
|
-
|
|
2732
|
-
var _loop4 = function _loop4() {
|
|
2733
|
-
var token = _step.value;
|
|
2734
|
-
values = values.concat(callback.call(marked, token));
|
|
2735
|
-
switch (token.type) {
|
|
2736
|
-
case 'table':
|
|
2737
|
-
{
|
|
2738
|
-
for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {
|
|
2739
|
-
var cell = _step2.value;
|
|
2740
|
-
values = values.concat(marked.walkTokens(cell.tokens, callback));
|
|
2741
|
-
}
|
|
2742
|
-
for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {
|
|
2743
|
-
var row = _step3.value;
|
|
2744
|
-
for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {
|
|
2745
|
-
var _cell = _step4.value;
|
|
2746
|
-
values = values.concat(marked.walkTokens(_cell.tokens, callback));
|
|
2747
|
-
}
|
|
2748
|
-
}
|
|
2749
|
-
break;
|
|
2750
|
-
}
|
|
2751
|
-
case 'list':
|
|
2752
|
-
{
|
|
2753
|
-
values = values.concat(marked.walkTokens(token.items, callback));
|
|
2754
|
-
break;
|
|
2755
|
-
}
|
|
2756
|
-
default:
|
|
2757
|
-
{
|
|
2758
|
-
if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {
|
|
2759
|
-
// Walk any extensions
|
|
2760
|
-
marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {
|
|
2761
|
-
values = values.concat(marked.walkTokens(token[childTokens], callback));
|
|
2762
|
-
});
|
|
2763
|
-
} else if (token.tokens) {
|
|
2764
|
-
values = values.concat(marked.walkTokens(token.tokens, callback));
|
|
2765
|
-
}
|
|
2766
|
-
}
|
|
2767
|
-
}
|
|
2768
|
-
};
|
|
2769
|
-
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
|
2770
|
-
_loop4();
|
|
2771
|
-
}
|
|
2772
|
-
return values;
|
|
2827
|
+
return markedInstance.walkTokens(tokens, callback);
|
|
2773
2828
|
};
|
|
2774
2829
|
|
|
2775
2830
|
/**
|
|
2776
2831
|
* Parse Inline
|
|
2777
2832
|
* @param {string} src
|
|
2778
2833
|
*/
|
|
2779
|
-
marked.parseInline =
|
|
2834
|
+
marked.parseInline = markedInstance.parseInline;
|
|
2780
2835
|
|
|
2781
2836
|
/**
|
|
2782
2837
|
* Expose
|
|
@@ -2802,6 +2857,7 @@
|
|
|
2802
2857
|
|
|
2803
2858
|
exports.Hooks = Hooks;
|
|
2804
2859
|
exports.Lexer = Lexer;
|
|
2860
|
+
exports.Marked = Marked;
|
|
2805
2861
|
exports.Parser = Parser;
|
|
2806
2862
|
exports.Renderer = Renderer;
|
|
2807
2863
|
exports.Slugger = Slugger;
|