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