marked 5.0.5 → 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 +317 -259
- package/lib/marked.esm.js +360 -316
- package/lib/marked.umd.js +317 -259
- package/marked.min.js +2 -2
- package/package.json +1 -1
- package/src/Instance.js +374 -0
- package/src/Lexer.js +2 -2
- package/src/Tokenizer.js +1 -1
- package/src/marked.js +13 -338
- package/src/rules.js +18 -17
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,
|
|
@@ -1205,35 +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
|
-
inline.
|
|
1238
|
+
inline.anyPunctuation = /\\[punct]/g;
|
|
1239
|
+
inline._escapes = /\\([punct])/g;
|
|
1231
1240
|
inline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();
|
|
1232
|
-
inline.emStrong.lDelim = edit(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();
|
|
1233
|
-
inline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, '
|
|
1234
|
-
inline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, '
|
|
1235
|
-
inline.
|
|
1236
|
-
inline._escapes =
|
|
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();
|
|
1237
1246
|
inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;
|
|
1238
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])?)+(?![-_])/;
|
|
1239
1248
|
inline.autolink = edit(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();
|
|
@@ -1646,8 +1655,8 @@
|
|
|
1646
1655
|
}
|
|
1647
1656
|
|
|
1648
1657
|
// Mask out escaped characters
|
|
1649
|
-
while ((match = this.tokenizer.rules.inline.
|
|
1650
|
-
maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.
|
|
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);
|
|
1651
1660
|
}
|
|
1652
1661
|
var _loop2 = function _loop2() {
|
|
1653
1662
|
if (!keepPrevChar) {
|
|
@@ -2392,39 +2401,263 @@
|
|
|
2392
2401
|
}();
|
|
2393
2402
|
Hooks.passThroughHooks = new Set(['preprocess', 'postprocess']);
|
|
2394
2403
|
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
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
|
+
}
|
|
2406
2468
|
}
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
return Promise.reject(e);
|
|
2469
|
+
};
|
|
2470
|
+
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
|
2471
|
+
_loop();
|
|
2411
2472
|
}
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
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];
|
|
2415
2483
|
}
|
|
2416
|
-
|
|
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;
|
|
2417
2644
|
};
|
|
2418
|
-
|
|
2419
|
-
|
|
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;
|
|
2420
2653
|
return function (src, opt, callback) {
|
|
2421
2654
|
if (typeof opt === 'function') {
|
|
2422
2655
|
callback = opt;
|
|
2423
2656
|
opt = null;
|
|
2424
2657
|
}
|
|
2425
2658
|
var origOpt = _extends({}, opt);
|
|
2426
|
-
opt = _extends({},
|
|
2427
|
-
var throwError =
|
|
2659
|
+
opt = _extends({}, _this3.defaults, origOpt);
|
|
2660
|
+
var throwError = _classPrivateFieldLooseBase(_this3, _onError)[_onError](opt.silent, opt.async, callback);
|
|
2428
2661
|
|
|
2429
2662
|
// throw error in case of non string input
|
|
2430
2663
|
if (typeof src === 'undefined' || src === null) {
|
|
@@ -2453,7 +2686,7 @@
|
|
|
2453
2686
|
if (!err) {
|
|
2454
2687
|
try {
|
|
2455
2688
|
if (opt.walkTokens) {
|
|
2456
|
-
|
|
2689
|
+
_this3.walkTokens(tokens, opt.walkTokens);
|
|
2457
2690
|
}
|
|
2458
2691
|
out = parser(tokens, opt);
|
|
2459
2692
|
if (opt.hooks) {
|
|
@@ -2472,7 +2705,7 @@
|
|
|
2472
2705
|
delete opt.highlight;
|
|
2473
2706
|
if (!tokens.length) return done();
|
|
2474
2707
|
var pending = 0;
|
|
2475
|
-
|
|
2708
|
+
_this3.walkTokens(tokens, function (token) {
|
|
2476
2709
|
if (token.type === 'code') {
|
|
2477
2710
|
pending++;
|
|
2478
2711
|
setTimeout(function () {
|
|
@@ -2501,7 +2734,7 @@
|
|
|
2501
2734
|
return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then(function (src) {
|
|
2502
2735
|
return lexer(src, opt);
|
|
2503
2736
|
}).then(function (tokens) {
|
|
2504
|
-
return opt.walkTokens ? Promise.all(
|
|
2737
|
+
return opt.walkTokens ? Promise.all(_this3.walkTokens(tokens, opt.walkTokens)).then(function () {
|
|
2505
2738
|
return tokens;
|
|
2506
2739
|
}) : tokens;
|
|
2507
2740
|
}).then(function (tokens) {
|
|
@@ -2516,7 +2749,7 @@
|
|
|
2516
2749
|
}
|
|
2517
2750
|
var _tokens = lexer(src, opt);
|
|
2518
2751
|
if (opt.walkTokens) {
|
|
2519
|
-
|
|
2752
|
+
_this3.walkTokens(_tokens, opt.walkTokens);
|
|
2520
2753
|
}
|
|
2521
2754
|
var html = parser(_tokens, opt);
|
|
2522
2755
|
if (opt.hooks) {
|
|
@@ -2528,12 +2761,38 @@
|
|
|
2528
2761
|
}
|
|
2529
2762
|
};
|
|
2530
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);
|
|
2531
2790
|
|
|
2532
2791
|
/**
|
|
2533
2792
|
* Marked
|
|
2534
2793
|
*/
|
|
2535
2794
|
function marked(src, opt, callback) {
|
|
2536
|
-
return
|
|
2795
|
+
return markedInstance.parse(src, opt, callback);
|
|
2537
2796
|
}
|
|
2538
2797
|
|
|
2539
2798
|
/**
|
|
@@ -2541,7 +2800,8 @@
|
|
|
2541
2800
|
*/
|
|
2542
2801
|
|
|
2543
2802
|
marked.options = marked.setOptions = function (opt) {
|
|
2544
|
-
|
|
2803
|
+
markedInstance.setOptions(opt);
|
|
2804
|
+
marked.defaults = markedInstance.defaults;
|
|
2545
2805
|
changeDefaults(marked.defaults);
|
|
2546
2806
|
return marked;
|
|
2547
2807
|
};
|
|
@@ -2553,172 +2813,10 @@
|
|
|
2553
2813
|
*/
|
|
2554
2814
|
|
|
2555
2815
|
marked.use = function () {
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2561
|
-
args[_key] = arguments[_key];
|
|
2562
|
-
}
|
|
2563
|
-
args.forEach(function (pack) {
|
|
2564
|
-
// copy options to new object
|
|
2565
|
-
var opts = _extends({}, pack);
|
|
2566
|
-
|
|
2567
|
-
// set async to true if it was set to true before
|
|
2568
|
-
opts.async = marked.defaults.async || opts.async || false;
|
|
2569
|
-
|
|
2570
|
-
// ==-- Parse "addon" extensions --== //
|
|
2571
|
-
if (pack.extensions) {
|
|
2572
|
-
pack.extensions.forEach(function (ext) {
|
|
2573
|
-
if (!ext.name) {
|
|
2574
|
-
throw new Error('extension name required');
|
|
2575
|
-
}
|
|
2576
|
-
if (ext.renderer) {
|
|
2577
|
-
// Renderer extensions
|
|
2578
|
-
var prevRenderer = extensions.renderers[ext.name];
|
|
2579
|
-
if (prevRenderer) {
|
|
2580
|
-
// Replace extension with func to run new extension but fall back if false
|
|
2581
|
-
extensions.renderers[ext.name] = function () {
|
|
2582
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
2583
|
-
args[_key2] = arguments[_key2];
|
|
2584
|
-
}
|
|
2585
|
-
var ret = ext.renderer.apply(this, args);
|
|
2586
|
-
if (ret === false) {
|
|
2587
|
-
ret = prevRenderer.apply(this, args);
|
|
2588
|
-
}
|
|
2589
|
-
return ret;
|
|
2590
|
-
};
|
|
2591
|
-
} else {
|
|
2592
|
-
extensions.renderers[ext.name] = ext.renderer;
|
|
2593
|
-
}
|
|
2594
|
-
}
|
|
2595
|
-
if (ext.tokenizer) {
|
|
2596
|
-
// Tokenizer Extensions
|
|
2597
|
-
if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {
|
|
2598
|
-
throw new Error("extension level must be 'block' or 'inline'");
|
|
2599
|
-
}
|
|
2600
|
-
if (extensions[ext.level]) {
|
|
2601
|
-
extensions[ext.level].unshift(ext.tokenizer);
|
|
2602
|
-
} else {
|
|
2603
|
-
extensions[ext.level] = [ext.tokenizer];
|
|
2604
|
-
}
|
|
2605
|
-
if (ext.start) {
|
|
2606
|
-
// Function to check for start of token
|
|
2607
|
-
if (ext.level === 'block') {
|
|
2608
|
-
if (extensions.startBlock) {
|
|
2609
|
-
extensions.startBlock.push(ext.start);
|
|
2610
|
-
} else {
|
|
2611
|
-
extensions.startBlock = [ext.start];
|
|
2612
|
-
}
|
|
2613
|
-
} else if (ext.level === 'inline') {
|
|
2614
|
-
if (extensions.startInline) {
|
|
2615
|
-
extensions.startInline.push(ext.start);
|
|
2616
|
-
} else {
|
|
2617
|
-
extensions.startInline = [ext.start];
|
|
2618
|
-
}
|
|
2619
|
-
}
|
|
2620
|
-
}
|
|
2621
|
-
}
|
|
2622
|
-
if (ext.childTokens) {
|
|
2623
|
-
// Child tokens to be visited by walkTokens
|
|
2624
|
-
extensions.childTokens[ext.name] = ext.childTokens;
|
|
2625
|
-
}
|
|
2626
|
-
});
|
|
2627
|
-
opts.extensions = extensions;
|
|
2628
|
-
}
|
|
2629
|
-
|
|
2630
|
-
// ==-- Parse "overwrite" extensions --== //
|
|
2631
|
-
if (pack.renderer) {
|
|
2632
|
-
var renderer = marked.defaults.renderer || new Renderer();
|
|
2633
|
-
var _loop = function _loop(prop) {
|
|
2634
|
-
var prevRenderer = renderer[prop];
|
|
2635
|
-
// Replace renderer with func to run extension, but fall back if false
|
|
2636
|
-
renderer[prop] = function () {
|
|
2637
|
-
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
2638
|
-
args[_key3] = arguments[_key3];
|
|
2639
|
-
}
|
|
2640
|
-
var ret = pack.renderer[prop].apply(renderer, args);
|
|
2641
|
-
if (ret === false) {
|
|
2642
|
-
ret = prevRenderer.apply(renderer, args);
|
|
2643
|
-
}
|
|
2644
|
-
return ret;
|
|
2645
|
-
};
|
|
2646
|
-
};
|
|
2647
|
-
for (var prop in pack.renderer) {
|
|
2648
|
-
_loop(prop);
|
|
2649
|
-
}
|
|
2650
|
-
opts.renderer = renderer;
|
|
2651
|
-
}
|
|
2652
|
-
if (pack.tokenizer) {
|
|
2653
|
-
var tokenizer = marked.defaults.tokenizer || new Tokenizer();
|
|
2654
|
-
var _loop2 = function _loop2(_prop) {
|
|
2655
|
-
var prevTokenizer = tokenizer[_prop];
|
|
2656
|
-
// Replace tokenizer with func to run extension, but fall back if false
|
|
2657
|
-
tokenizer[_prop] = function () {
|
|
2658
|
-
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
2659
|
-
args[_key4] = arguments[_key4];
|
|
2660
|
-
}
|
|
2661
|
-
var ret = pack.tokenizer[_prop].apply(tokenizer, args);
|
|
2662
|
-
if (ret === false) {
|
|
2663
|
-
ret = prevTokenizer.apply(tokenizer, args);
|
|
2664
|
-
}
|
|
2665
|
-
return ret;
|
|
2666
|
-
};
|
|
2667
|
-
};
|
|
2668
|
-
for (var _prop in pack.tokenizer) {
|
|
2669
|
-
_loop2(_prop);
|
|
2670
|
-
}
|
|
2671
|
-
opts.tokenizer = tokenizer;
|
|
2672
|
-
}
|
|
2673
|
-
|
|
2674
|
-
// ==-- Parse Hooks extensions --== //
|
|
2675
|
-
if (pack.hooks) {
|
|
2676
|
-
var hooks = marked.defaults.hooks || new Hooks();
|
|
2677
|
-
var _loop3 = function _loop3(_prop2) {
|
|
2678
|
-
var prevHook = hooks[_prop2];
|
|
2679
|
-
if (Hooks.passThroughHooks.has(_prop2)) {
|
|
2680
|
-
hooks[_prop2] = function (arg) {
|
|
2681
|
-
if (marked.defaults.async) {
|
|
2682
|
-
return Promise.resolve(pack.hooks[_prop2].call(hooks, arg)).then(function (ret) {
|
|
2683
|
-
return prevHook.call(hooks, ret);
|
|
2684
|
-
});
|
|
2685
|
-
}
|
|
2686
|
-
var ret = pack.hooks[_prop2].call(hooks, arg);
|
|
2687
|
-
return prevHook.call(hooks, ret);
|
|
2688
|
-
};
|
|
2689
|
-
} else {
|
|
2690
|
-
hooks[_prop2] = function () {
|
|
2691
|
-
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
2692
|
-
args[_key5] = arguments[_key5];
|
|
2693
|
-
}
|
|
2694
|
-
var ret = pack.hooks[_prop2].apply(hooks, args);
|
|
2695
|
-
if (ret === false) {
|
|
2696
|
-
ret = prevHook.apply(hooks, args);
|
|
2697
|
-
}
|
|
2698
|
-
return ret;
|
|
2699
|
-
};
|
|
2700
|
-
}
|
|
2701
|
-
};
|
|
2702
|
-
for (var _prop2 in pack.hooks) {
|
|
2703
|
-
_loop3(_prop2);
|
|
2704
|
-
}
|
|
2705
|
-
opts.hooks = hooks;
|
|
2706
|
-
}
|
|
2707
|
-
|
|
2708
|
-
// ==-- Parse WalkTokens extensions --== //
|
|
2709
|
-
if (pack.walkTokens) {
|
|
2710
|
-
var _walkTokens = marked.defaults.walkTokens;
|
|
2711
|
-
opts.walkTokens = function (token) {
|
|
2712
|
-
var values = [];
|
|
2713
|
-
values.push(pack.walkTokens.call(this, token));
|
|
2714
|
-
if (_walkTokens) {
|
|
2715
|
-
values = values.concat(_walkTokens.call(this, token));
|
|
2716
|
-
}
|
|
2717
|
-
return values;
|
|
2718
|
-
};
|
|
2719
|
-
}
|
|
2720
|
-
marked.setOptions(opts);
|
|
2721
|
-
});
|
|
2816
|
+
markedInstance.use.apply(markedInstance, arguments);
|
|
2817
|
+
marked.defaults = markedInstance.defaults;
|
|
2818
|
+
changeDefaults(marked.defaults);
|
|
2819
|
+
return marked;
|
|
2722
2820
|
};
|
|
2723
2821
|
|
|
2724
2822
|
/**
|
|
@@ -2726,55 +2824,14 @@
|
|
|
2726
2824
|
*/
|
|
2727
2825
|
|
|
2728
2826
|
marked.walkTokens = function (tokens, callback) {
|
|
2729
|
-
|
|
2730
|
-
var _loop4 = function _loop4() {
|
|
2731
|
-
var token = _step.value;
|
|
2732
|
-
values = values.concat(callback.call(marked, token));
|
|
2733
|
-
switch (token.type) {
|
|
2734
|
-
case 'table':
|
|
2735
|
-
{
|
|
2736
|
-
for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {
|
|
2737
|
-
var cell = _step2.value;
|
|
2738
|
-
values = values.concat(marked.walkTokens(cell.tokens, callback));
|
|
2739
|
-
}
|
|
2740
|
-
for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {
|
|
2741
|
-
var row = _step3.value;
|
|
2742
|
-
for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {
|
|
2743
|
-
var _cell = _step4.value;
|
|
2744
|
-
values = values.concat(marked.walkTokens(_cell.tokens, callback));
|
|
2745
|
-
}
|
|
2746
|
-
}
|
|
2747
|
-
break;
|
|
2748
|
-
}
|
|
2749
|
-
case 'list':
|
|
2750
|
-
{
|
|
2751
|
-
values = values.concat(marked.walkTokens(token.items, callback));
|
|
2752
|
-
break;
|
|
2753
|
-
}
|
|
2754
|
-
default:
|
|
2755
|
-
{
|
|
2756
|
-
if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {
|
|
2757
|
-
// Walk any extensions
|
|
2758
|
-
marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {
|
|
2759
|
-
values = values.concat(marked.walkTokens(token[childTokens], callback));
|
|
2760
|
-
});
|
|
2761
|
-
} else if (token.tokens) {
|
|
2762
|
-
values = values.concat(marked.walkTokens(token.tokens, callback));
|
|
2763
|
-
}
|
|
2764
|
-
}
|
|
2765
|
-
}
|
|
2766
|
-
};
|
|
2767
|
-
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
|
2768
|
-
_loop4();
|
|
2769
|
-
}
|
|
2770
|
-
return values;
|
|
2827
|
+
return markedInstance.walkTokens(tokens, callback);
|
|
2771
2828
|
};
|
|
2772
2829
|
|
|
2773
2830
|
/**
|
|
2774
2831
|
* Parse Inline
|
|
2775
2832
|
* @param {string} src
|
|
2776
2833
|
*/
|
|
2777
|
-
marked.parseInline =
|
|
2834
|
+
marked.parseInline = markedInstance.parseInline;
|
|
2778
2835
|
|
|
2779
2836
|
/**
|
|
2780
2837
|
* Expose
|
|
@@ -2800,6 +2857,7 @@
|
|
|
2800
2857
|
|
|
2801
2858
|
exports.Hooks = Hooks;
|
|
2802
2859
|
exports.Lexer = Lexer;
|
|
2860
|
+
exports.Marked = Marked;
|
|
2803
2861
|
exports.Parser = Parser;
|
|
2804
2862
|
exports.Renderer = Renderer;
|
|
2805
2863
|
exports.Slugger = Slugger;
|