marked 3.0.8 → 4.0.3
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/README.md +1 -1
- package/bin/{marked → marked.js} +59 -66
- package/lib/marked.cjs +2907 -0
- package/lib/marked.esm.js +187 -282
- package/lib/{marked.js → marked.umd.js} +135 -190
- package/man/marked.1 +5 -24
- package/man/marked.1.txt +21 -31
- package/marked.min.js +1 -1
- package/package.json +27 -19
- package/src/Lexer.js +6 -6
- package/src/Parser.js +8 -8
- package/src/Renderer.js +5 -5
- package/src/Slugger.js +2 -2
- package/src/TextRenderer.js +2 -2
- package/src/Tokenizer.js +5 -5
- package/src/defaults.js +5 -9
- package/src/helpers.js +12 -27
- package/src/marked.js +26 -12
- package/src/rules.js +4 -9
- package/src/esm-entry.js +0 -18
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
(function (global, factory) {
|
|
13
|
-
typeof exports === 'object' && typeof module !== 'undefined' ?
|
|
14
|
-
typeof define === 'function' && define.amd ? define(factory) :
|
|
15
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.marked =
|
|
16
|
-
})(this, (function () { 'use strict';
|
|
13
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
14
|
+
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
15
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.marked = {}));
|
|
16
|
+
})(this, (function (exports) { 'use strict';
|
|
17
17
|
|
|
18
18
|
function _defineProperties(target, props) {
|
|
19
19
|
for (var i = 0; i < props.length; i++) {
|
|
@@ -69,9 +69,7 @@
|
|
|
69
69
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
function getDefaults$1() {
|
|
72
|
+
function getDefaults() {
|
|
75
73
|
return {
|
|
76
74
|
baseUrl: null,
|
|
77
75
|
breaks: false,
|
|
@@ -94,17 +92,11 @@
|
|
|
94
92
|
xhtml: false
|
|
95
93
|
};
|
|
96
94
|
}
|
|
97
|
-
|
|
98
|
-
function changeDefaults
|
|
99
|
-
|
|
95
|
+
exports.defaults = getDefaults();
|
|
96
|
+
function changeDefaults(newDefaults) {
|
|
97
|
+
exports.defaults = newDefaults;
|
|
100
98
|
}
|
|
101
99
|
|
|
102
|
-
defaults$5.exports = {
|
|
103
|
-
defaults: getDefaults$1(),
|
|
104
|
-
getDefaults: getDefaults$1,
|
|
105
|
-
changeDefaults: changeDefaults$1
|
|
106
|
-
};
|
|
107
|
-
|
|
108
100
|
/**
|
|
109
101
|
* Helpers
|
|
110
102
|
*/
|
|
@@ -124,7 +116,7 @@
|
|
|
124
116
|
return escapeReplacements[ch];
|
|
125
117
|
};
|
|
126
118
|
|
|
127
|
-
function escape
|
|
119
|
+
function escape(html, encode) {
|
|
128
120
|
if (encode) {
|
|
129
121
|
if (escapeTest.test(html)) {
|
|
130
122
|
return html.replace(escapeReplace, getEscapeReplacement);
|
|
@@ -137,10 +129,8 @@
|
|
|
137
129
|
|
|
138
130
|
return html;
|
|
139
131
|
}
|
|
140
|
-
|
|
141
132
|
var unescapeTest = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
|
|
142
|
-
|
|
143
|
-
function unescape$1(html) {
|
|
133
|
+
function unescape(html) {
|
|
144
134
|
// explicitly match decimal, hex, and named HTML entities
|
|
145
135
|
return html.replace(unescapeTest, function (_, n) {
|
|
146
136
|
n = n.toLowerCase();
|
|
@@ -153,10 +143,8 @@
|
|
|
153
143
|
return '';
|
|
154
144
|
});
|
|
155
145
|
}
|
|
156
|
-
|
|
157
146
|
var caret = /(^|[^\[])\^/g;
|
|
158
|
-
|
|
159
|
-
function edit$1(regex, opt) {
|
|
147
|
+
function edit(regex, opt) {
|
|
160
148
|
regex = regex.source || regex;
|
|
161
149
|
opt = opt || '';
|
|
162
150
|
var obj = {
|
|
@@ -172,16 +160,14 @@
|
|
|
172
160
|
};
|
|
173
161
|
return obj;
|
|
174
162
|
}
|
|
175
|
-
|
|
176
163
|
var nonWordAndColonTest = /[^\w:]/g;
|
|
177
164
|
var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
|
|
178
|
-
|
|
179
|
-
function cleanUrl$1(sanitize, base, href) {
|
|
165
|
+
function cleanUrl(sanitize, base, href) {
|
|
180
166
|
if (sanitize) {
|
|
181
167
|
var prot;
|
|
182
168
|
|
|
183
169
|
try {
|
|
184
|
-
prot = decodeURIComponent(unescape
|
|
170
|
+
prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();
|
|
185
171
|
} catch (e) {
|
|
186
172
|
return null;
|
|
187
173
|
}
|
|
@@ -203,12 +189,10 @@
|
|
|
203
189
|
|
|
204
190
|
return href;
|
|
205
191
|
}
|
|
206
|
-
|
|
207
192
|
var baseUrls = {};
|
|
208
193
|
var justDomain = /^[^:]+:\/*[^/]*$/;
|
|
209
194
|
var protocol = /^([^:]+:)[\s\S]*$/;
|
|
210
195
|
var domain = /^([^:]+:\/*[^/]*)[\s\S]*$/;
|
|
211
|
-
|
|
212
196
|
function resolveUrl(base, href) {
|
|
213
197
|
if (!baseUrls[' ' + base]) {
|
|
214
198
|
// we can ignore everything in base after the last slash of its path component,
|
|
@@ -217,7 +201,7 @@
|
|
|
217
201
|
if (justDomain.test(base)) {
|
|
218
202
|
baseUrls[' ' + base] = base + '/';
|
|
219
203
|
} else {
|
|
220
|
-
baseUrls[' ' + base] = rtrim
|
|
204
|
+
baseUrls[' ' + base] = rtrim(base, '/', true);
|
|
221
205
|
}
|
|
222
206
|
}
|
|
223
207
|
|
|
@@ -240,12 +224,10 @@
|
|
|
240
224
|
return base + href;
|
|
241
225
|
}
|
|
242
226
|
}
|
|
243
|
-
|
|
244
|
-
var noopTest$1 = {
|
|
227
|
+
var noopTest = {
|
|
245
228
|
exec: function noopTest() {}
|
|
246
229
|
};
|
|
247
|
-
|
|
248
|
-
function merge$2(obj) {
|
|
230
|
+
function merge(obj) {
|
|
249
231
|
var i = 1,
|
|
250
232
|
target,
|
|
251
233
|
key;
|
|
@@ -262,8 +244,7 @@
|
|
|
262
244
|
|
|
263
245
|
return obj;
|
|
264
246
|
}
|
|
265
|
-
|
|
266
|
-
function splitCells$1(tableRow, count) {
|
|
247
|
+
function splitCells(tableRow, count) {
|
|
267
248
|
// ensure that every cell-delimiting pipe has a space
|
|
268
249
|
// before it to distinguish it from an escaped pipe
|
|
269
250
|
var row = tableRow.replace(/\|/g, function (match, offset, str) {
|
|
@@ -312,8 +293,7 @@
|
|
|
312
293
|
// /c*$/ is vulnerable to REDOS.
|
|
313
294
|
// invert: Remove suffix of non-c chars instead. Default falsey.
|
|
314
295
|
|
|
315
|
-
|
|
316
|
-
function rtrim$1(str, c, invert) {
|
|
296
|
+
function rtrim(str, c, invert) {
|
|
317
297
|
var l = str.length;
|
|
318
298
|
|
|
319
299
|
if (l === 0) {
|
|
@@ -337,8 +317,7 @@
|
|
|
337
317
|
|
|
338
318
|
return str.substr(0, l - suffLen);
|
|
339
319
|
}
|
|
340
|
-
|
|
341
|
-
function findClosingBracket$1(str, b) {
|
|
320
|
+
function findClosingBracket(str, b) {
|
|
342
321
|
if (str.indexOf(b[1]) === -1) {
|
|
343
322
|
return -1;
|
|
344
323
|
}
|
|
@@ -363,15 +342,13 @@
|
|
|
363
342
|
|
|
364
343
|
return -1;
|
|
365
344
|
}
|
|
366
|
-
|
|
367
|
-
function checkSanitizeDeprecation$1(opt) {
|
|
345
|
+
function checkSanitizeDeprecation(opt) {
|
|
368
346
|
if (opt && opt.sanitize && !opt.silent) {
|
|
369
347
|
console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');
|
|
370
348
|
}
|
|
371
349
|
} // copied from https://stackoverflow.com/a/5450113/806777
|
|
372
350
|
|
|
373
|
-
|
|
374
|
-
function repeatString$1(pattern, count) {
|
|
351
|
+
function repeatString(pattern, count) {
|
|
375
352
|
if (count < 1) {
|
|
376
353
|
return '';
|
|
377
354
|
}
|
|
@@ -390,30 +367,9 @@
|
|
|
390
367
|
return result + pattern;
|
|
391
368
|
}
|
|
392
369
|
|
|
393
|
-
var helpers = {
|
|
394
|
-
escape: escape$2,
|
|
395
|
-
unescape: unescape$1,
|
|
396
|
-
edit: edit$1,
|
|
397
|
-
cleanUrl: cleanUrl$1,
|
|
398
|
-
resolveUrl: resolveUrl,
|
|
399
|
-
noopTest: noopTest$1,
|
|
400
|
-
merge: merge$2,
|
|
401
|
-
splitCells: splitCells$1,
|
|
402
|
-
rtrim: rtrim$1,
|
|
403
|
-
findClosingBracket: findClosingBracket$1,
|
|
404
|
-
checkSanitizeDeprecation: checkSanitizeDeprecation$1,
|
|
405
|
-
repeatString: repeatString$1
|
|
406
|
-
};
|
|
407
|
-
|
|
408
|
-
var defaults$4 = defaults$5.exports.defaults;
|
|
409
|
-
var rtrim = helpers.rtrim,
|
|
410
|
-
splitCells = helpers.splitCells,
|
|
411
|
-
_escape = helpers.escape,
|
|
412
|
-
findClosingBracket = helpers.findClosingBracket;
|
|
413
|
-
|
|
414
370
|
function outputLink(cap, link, raw, lexer) {
|
|
415
371
|
var href = link.href;
|
|
416
|
-
var title = link.title ?
|
|
372
|
+
var title = link.title ? escape(link.title) : null;
|
|
417
373
|
var text = cap[1].replace(/\\([\[\]])/g, '$1');
|
|
418
374
|
|
|
419
375
|
if (cap[0].charAt(0) !== '!') {
|
|
@@ -434,7 +390,7 @@
|
|
|
434
390
|
raw: raw,
|
|
435
391
|
href: href,
|
|
436
392
|
title: title,
|
|
437
|
-
text:
|
|
393
|
+
text: escape(text)
|
|
438
394
|
};
|
|
439
395
|
}
|
|
440
396
|
}
|
|
@@ -468,9 +424,9 @@
|
|
|
468
424
|
*/
|
|
469
425
|
|
|
470
426
|
|
|
471
|
-
var
|
|
427
|
+
var Tokenizer = /*#__PURE__*/function () {
|
|
472
428
|
function Tokenizer(options) {
|
|
473
|
-
this.options = options || defaults
|
|
429
|
+
this.options = options || exports.defaults;
|
|
474
430
|
}
|
|
475
431
|
|
|
476
432
|
var _proto = Tokenizer.prototype;
|
|
@@ -742,7 +698,7 @@
|
|
|
742
698
|
|
|
743
699
|
if (this.options.sanitize) {
|
|
744
700
|
token.type = 'paragraph';
|
|
745
|
-
token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) :
|
|
701
|
+
token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);
|
|
746
702
|
token.tokens = [];
|
|
747
703
|
this.lexer.inline(token.text, token.tokens);
|
|
748
704
|
}
|
|
@@ -881,14 +837,14 @@
|
|
|
881
837
|
}
|
|
882
838
|
};
|
|
883
839
|
|
|
884
|
-
_proto.escape = function escape(src) {
|
|
840
|
+
_proto.escape = function escape$1(src) {
|
|
885
841
|
var cap = this.rules.inline.escape.exec(src);
|
|
886
842
|
|
|
887
843
|
if (cap) {
|
|
888
844
|
return {
|
|
889
845
|
type: 'escape',
|
|
890
846
|
raw: cap[0],
|
|
891
|
-
text:
|
|
847
|
+
text: escape(cap[1])
|
|
892
848
|
};
|
|
893
849
|
}
|
|
894
850
|
};
|
|
@@ -914,7 +870,7 @@
|
|
|
914
870
|
raw: cap[0],
|
|
915
871
|
inLink: this.lexer.state.inLink,
|
|
916
872
|
inRawBlock: this.lexer.state.inRawBlock,
|
|
917
|
-
text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) :
|
|
873
|
+
text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0]
|
|
918
874
|
};
|
|
919
875
|
}
|
|
920
876
|
};
|
|
@@ -1011,7 +967,7 @@
|
|
|
1011
967
|
var match = this.rules.inline.emStrong.lDelim.exec(src);
|
|
1012
968
|
if (!match) return; // _ can't be between two alphanumerics. \p{L}\p{N} includes non-english alphabet/numbers as well
|
|
1013
969
|
|
|
1014
|
-
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\
|
|
970
|
+
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\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\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][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\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\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\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]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\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-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/)) return;
|
|
1015
971
|
var nextChar = match[1] || match[2] || '';
|
|
1016
972
|
|
|
1017
973
|
if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {
|
|
@@ -1084,7 +1040,7 @@
|
|
|
1084
1040
|
text = text.substring(1, text.length - 1);
|
|
1085
1041
|
}
|
|
1086
1042
|
|
|
1087
|
-
text =
|
|
1043
|
+
text = escape(text, true);
|
|
1088
1044
|
return {
|
|
1089
1045
|
type: 'codespan',
|
|
1090
1046
|
raw: cap[0],
|
|
@@ -1124,10 +1080,10 @@
|
|
|
1124
1080
|
var text, href;
|
|
1125
1081
|
|
|
1126
1082
|
if (cap[2] === '@') {
|
|
1127
|
-
text =
|
|
1083
|
+
text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);
|
|
1128
1084
|
href = 'mailto:' + text;
|
|
1129
1085
|
} else {
|
|
1130
|
-
text =
|
|
1086
|
+
text = escape(cap[1]);
|
|
1131
1087
|
href = text;
|
|
1132
1088
|
}
|
|
1133
1089
|
|
|
@@ -1152,7 +1108,7 @@
|
|
|
1152
1108
|
var text, href;
|
|
1153
1109
|
|
|
1154
1110
|
if (cap[2] === '@') {
|
|
1155
|
-
text =
|
|
1111
|
+
text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);
|
|
1156
1112
|
href = 'mailto:' + text;
|
|
1157
1113
|
} else {
|
|
1158
1114
|
// do extended autolink path validation
|
|
@@ -1163,7 +1119,7 @@
|
|
|
1163
1119
|
cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];
|
|
1164
1120
|
} while (prevCapZero !== cap[0]);
|
|
1165
1121
|
|
|
1166
|
-
text =
|
|
1122
|
+
text = escape(cap[0]);
|
|
1167
1123
|
|
|
1168
1124
|
if (cap[1] === 'www.') {
|
|
1169
1125
|
href = 'http://' + text;
|
|
@@ -1193,9 +1149,9 @@
|
|
|
1193
1149
|
var text;
|
|
1194
1150
|
|
|
1195
1151
|
if (this.lexer.state.inRawBlock) {
|
|
1196
|
-
text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) :
|
|
1152
|
+
text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0];
|
|
1197
1153
|
} else {
|
|
1198
|
-
text =
|
|
1154
|
+
text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);
|
|
1199
1155
|
}
|
|
1200
1156
|
|
|
1201
1157
|
return {
|
|
@@ -1209,14 +1165,11 @@
|
|
|
1209
1165
|
return Tokenizer;
|
|
1210
1166
|
}();
|
|
1211
1167
|
|
|
1212
|
-
var noopTest = helpers.noopTest,
|
|
1213
|
-
edit = helpers.edit,
|
|
1214
|
-
merge$1 = helpers.merge;
|
|
1215
1168
|
/**
|
|
1216
1169
|
* Block-Level Grammar
|
|
1217
1170
|
*/
|
|
1218
1171
|
|
|
1219
|
-
var block
|
|
1172
|
+
var block = {
|
|
1220
1173
|
newline: /^(?: *(?:\n|$))+/,
|
|
1221
1174
|
code: /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,
|
|
1222
1175
|
fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,
|
|
@@ -1242,56 +1195,56 @@
|
|
|
1242
1195
|
_paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,
|
|
1243
1196
|
text: /^[^\n]+/
|
|
1244
1197
|
};
|
|
1245
|
-
block
|
|
1246
|
-
block
|
|
1247
|
-
block
|
|
1248
|
-
block
|
|
1249
|
-
block
|
|
1250
|
-
block
|
|
1251
|
-
block
|
|
1252
|
-
block
|
|
1253
|
-
block
|
|
1254
|
-
block
|
|
1198
|
+
block._label = /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/;
|
|
1199
|
+
block._title = /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;
|
|
1200
|
+
block.def = edit(block.def).replace('label', block._label).replace('title', block._title).getRegex();
|
|
1201
|
+
block.bullet = /(?:[*+-]|\d{1,9}[.)])/;
|
|
1202
|
+
block.listItemStart = edit(/^( *)(bull) */).replace('bull', block.bullet).getRegex();
|
|
1203
|
+
block.list = edit(block.list).replace(/bull/g, block.bullet).replace('hr', '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))').replace('def', '\\n+(?=' + block.def.source + ')').getRegex();
|
|
1204
|
+
block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';
|
|
1205
|
+
block._comment = /<!--(?!-?>)[\s\S]*?(?:-->|$)/;
|
|
1206
|
+
block.html = edit(block.html, 'i').replace('comment', block._comment).replace('tag', block._tag).replace('attribute', / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();
|
|
1207
|
+
block.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs
|
|
1255
1208
|
.replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
|
|
1256
|
-
.replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block
|
|
1209
|
+
.replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks
|
|
1257
1210
|
.getRegex();
|
|
1258
|
-
block
|
|
1211
|
+
block.blockquote = edit(block.blockquote).replace('paragraph', block.paragraph).getRegex();
|
|
1259
1212
|
/**
|
|
1260
1213
|
* Normal Block Grammar
|
|
1261
1214
|
*/
|
|
1262
1215
|
|
|
1263
|
-
block
|
|
1216
|
+
block.normal = merge({}, block);
|
|
1264
1217
|
/**
|
|
1265
1218
|
* GFM Block Grammar
|
|
1266
1219
|
*/
|
|
1267
1220
|
|
|
1268
|
-
block
|
|
1221
|
+
block.gfm = merge({}, block.normal, {
|
|
1269
1222
|
table: '^ *([^\\n ].*\\|.*)\\n' // Header
|
|
1270
1223
|
+ ' {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?' // Align
|
|
1271
1224
|
+ '(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)' // Cells
|
|
1272
1225
|
|
|
1273
1226
|
});
|
|
1274
|
-
block
|
|
1275
|
-
.replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block
|
|
1227
|
+
block.gfm.table = edit(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
|
|
1228
|
+
.replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks
|
|
1276
1229
|
.getRegex();
|
|
1277
1230
|
/**
|
|
1278
1231
|
* Pedantic grammar (original John Gruber's loose markdown specification)
|
|
1279
1232
|
*/
|
|
1280
1233
|
|
|
1281
|
-
block
|
|
1234
|
+
block.pedantic = merge({}, block.normal, {
|
|
1282
1235
|
html: edit('^ *(?:comment *(?:\\n|\\s*$)' + '|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)' // closed tag
|
|
1283
|
-
+ '|<tag(?:"[^"]*"|\'[^\']*\'|\\s[^\'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))').replace('comment', block
|
|
1236
|
+
+ '|<tag(?:"[^"]*"|\'[^\']*\'|\\s[^\'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))').replace('comment', block._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\b)\\w+(?!:|[^\\w\\s@]*@)\\b').getRegex(),
|
|
1284
1237
|
def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
|
|
1285
1238
|
heading: /^(#{1,6})(.*)(?:\n+|$)/,
|
|
1286
1239
|
fences: noopTest,
|
|
1287
1240
|
// fences not supported
|
|
1288
|
-
paragraph: edit(block
|
|
1241
|
+
paragraph: edit(block.normal._paragraph).replace('hr', block.hr).replace('heading', ' *#{1,6} *[^\n]').replace('lheading', block.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()
|
|
1289
1242
|
});
|
|
1290
1243
|
/**
|
|
1291
1244
|
* Inline-Level Grammar
|
|
1292
1245
|
*/
|
|
1293
1246
|
|
|
1294
|
-
var inline
|
|
1247
|
+
var inline = {
|
|
1295
1248
|
escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,
|
|
1296
1249
|
autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
|
|
1297
1250
|
url: noopTest,
|
|
@@ -1321,37 +1274,37 @@
|
|
|
1321
1274
|
}; // list of punctuation marks from CommonMark spec
|
|
1322
1275
|
// without * and _ to handle the different emphasis markers * and _
|
|
1323
1276
|
|
|
1324
|
-
inline
|
|
1325
|
-
inline
|
|
1326
|
-
|
|
1327
|
-
inline
|
|
1328
|
-
inline
|
|
1329
|
-
inline
|
|
1330
|
-
inline
|
|
1331
|
-
inline
|
|
1332
|
-
inline
|
|
1333
|
-
inline
|
|
1334
|
-
inline
|
|
1335
|
-
inline
|
|
1336
|
-
inline
|
|
1337
|
-
inline
|
|
1338
|
-
inline
|
|
1339
|
-
inline
|
|
1340
|
-
inline
|
|
1341
|
-
inline
|
|
1342
|
-
inline
|
|
1343
|
-
inline
|
|
1344
|
-
inline
|
|
1277
|
+
inline._punctuation = '!"#$%&\'()+\\-.,/:;<=>?@\\[\\]`^{|}~';
|
|
1278
|
+
inline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, <html>
|
|
1279
|
+
|
|
1280
|
+
inline.blockSkip = /\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;
|
|
1281
|
+
inline.escapedEmSt = /\\\*|\\_/g;
|
|
1282
|
+
inline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();
|
|
1283
|
+
inline.emStrong.lDelim = edit(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();
|
|
1284
|
+
inline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g').replace(/punct/g, inline._punctuation).getRegex();
|
|
1285
|
+
inline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g').replace(/punct/g, inline._punctuation).getRegex();
|
|
1286
|
+
inline._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;
|
|
1287
|
+
inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;
|
|
1288
|
+
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])?)+(?![-_])/;
|
|
1289
|
+
inline.autolink = edit(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();
|
|
1290
|
+
inline._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;
|
|
1291
|
+
inline.tag = edit(inline.tag).replace('comment', inline._comment).replace('attribute', inline._attribute).getRegex();
|
|
1292
|
+
inline._label = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;
|
|
1293
|
+
inline._href = /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;
|
|
1294
|
+
inline._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;
|
|
1295
|
+
inline.link = edit(inline.link).replace('label', inline._label).replace('href', inline._href).replace('title', inline._title).getRegex();
|
|
1296
|
+
inline.reflink = edit(inline.reflink).replace('label', inline._label).getRegex();
|
|
1297
|
+
inline.reflinkSearch = edit(inline.reflinkSearch, 'g').replace('reflink', inline.reflink).replace('nolink', inline.nolink).getRegex();
|
|
1345
1298
|
/**
|
|
1346
1299
|
* Normal Inline Grammar
|
|
1347
1300
|
*/
|
|
1348
1301
|
|
|
1349
|
-
inline
|
|
1302
|
+
inline.normal = merge({}, inline);
|
|
1350
1303
|
/**
|
|
1351
1304
|
* Pedantic Inline Grammar
|
|
1352
1305
|
*/
|
|
1353
1306
|
|
|
1354
|
-
inline
|
|
1307
|
+
inline.pedantic = merge({}, inline.normal, {
|
|
1355
1308
|
strong: {
|
|
1356
1309
|
start: /^__|\*\*/,
|
|
1357
1310
|
middle: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
|
|
@@ -1364,40 +1317,31 @@
|
|
|
1364
1317
|
endAst: /\*(?!\*)/g,
|
|
1365
1318
|
endUnd: /_(?!_)/g
|
|
1366
1319
|
},
|
|
1367
|
-
link: edit(/^!?\[(label)\]\((.*?)\)/).replace('label', inline
|
|
1368
|
-
reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace('label', inline
|
|
1320
|
+
link: edit(/^!?\[(label)\]\((.*?)\)/).replace('label', inline._label).getRegex(),
|
|
1321
|
+
reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace('label', inline._label).getRegex()
|
|
1369
1322
|
});
|
|
1370
1323
|
/**
|
|
1371
1324
|
* GFM Inline Grammar
|
|
1372
1325
|
*/
|
|
1373
1326
|
|
|
1374
|
-
inline
|
|
1375
|
-
escape: edit(inline
|
|
1327
|
+
inline.gfm = merge({}, inline.normal, {
|
|
1328
|
+
escape: edit(inline.escape).replace('])', '~|])').getRegex(),
|
|
1376
1329
|
_extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,
|
|
1377
1330
|
url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,
|
|
1378
1331
|
_backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
|
|
1379
1332
|
del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,
|
|
1380
1333
|
text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/
|
|
1381
1334
|
});
|
|
1382
|
-
inline
|
|
1335
|
+
inline.gfm.url = edit(inline.gfm.url, 'i').replace('email', inline.gfm._extended_email).getRegex();
|
|
1383
1336
|
/**
|
|
1384
1337
|
* GFM + Line Breaks Inline Grammar
|
|
1385
1338
|
*/
|
|
1386
1339
|
|
|
1387
|
-
inline
|
|
1388
|
-
br: edit(inline
|
|
1389
|
-
text: edit(inline
|
|
1340
|
+
inline.breaks = merge({}, inline.gfm, {
|
|
1341
|
+
br: edit(inline.br).replace('{2,}', '*').getRegex(),
|
|
1342
|
+
text: edit(inline.gfm.text).replace('\\b_', '\\b_| {2,}\\n').replace(/\{2,\}/g, '*').getRegex()
|
|
1390
1343
|
});
|
|
1391
|
-
var rules = {
|
|
1392
|
-
block: block$1,
|
|
1393
|
-
inline: inline$1
|
|
1394
|
-
};
|
|
1395
1344
|
|
|
1396
|
-
var Tokenizer$1 = Tokenizer_1;
|
|
1397
|
-
var defaults$3 = defaults$5.exports.defaults;
|
|
1398
|
-
var block = rules.block,
|
|
1399
|
-
inline = rules.inline;
|
|
1400
|
-
var repeatString = helpers.repeatString;
|
|
1401
1345
|
/**
|
|
1402
1346
|
* smartypants text replacement
|
|
1403
1347
|
*/
|
|
@@ -1440,12 +1384,12 @@
|
|
|
1440
1384
|
*/
|
|
1441
1385
|
|
|
1442
1386
|
|
|
1443
|
-
var
|
|
1387
|
+
var Lexer = /*#__PURE__*/function () {
|
|
1444
1388
|
function Lexer(options) {
|
|
1445
1389
|
this.tokens = [];
|
|
1446
1390
|
this.tokens.links = Object.create(null);
|
|
1447
|
-
this.options = options || defaults
|
|
1448
|
-
this.options.tokenizer = this.options.tokenizer || new Tokenizer
|
|
1391
|
+
this.options = options || exports.defaults;
|
|
1392
|
+
this.options.tokenizer = this.options.tokenizer || new Tokenizer();
|
|
1449
1393
|
this.tokenizer = this.options.tokenizer;
|
|
1450
1394
|
this.tokenizer.options = this.options;
|
|
1451
1395
|
this.tokenizer.lexer = this;
|
|
@@ -1953,16 +1897,13 @@
|
|
|
1953
1897
|
return Lexer;
|
|
1954
1898
|
}();
|
|
1955
1899
|
|
|
1956
|
-
var defaults$2 = defaults$5.exports.defaults;
|
|
1957
|
-
var cleanUrl = helpers.cleanUrl,
|
|
1958
|
-
escape$1 = helpers.escape;
|
|
1959
1900
|
/**
|
|
1960
1901
|
* Renderer
|
|
1961
1902
|
*/
|
|
1962
1903
|
|
|
1963
|
-
var
|
|
1904
|
+
var Renderer = /*#__PURE__*/function () {
|
|
1964
1905
|
function Renderer(options) {
|
|
1965
|
-
this.options = options || defaults
|
|
1906
|
+
this.options = options || exports.defaults;
|
|
1966
1907
|
}
|
|
1967
1908
|
|
|
1968
1909
|
var _proto = Renderer.prototype;
|
|
@@ -1982,10 +1923,10 @@
|
|
|
1982
1923
|
_code = _code.replace(/\n$/, '') + '\n';
|
|
1983
1924
|
|
|
1984
1925
|
if (!lang) {
|
|
1985
|
-
return '<pre><code>' + (escaped ? _code : escape
|
|
1926
|
+
return '<pre><code>' + (escaped ? _code : escape(_code, true)) + '</code></pre>\n';
|
|
1986
1927
|
}
|
|
1987
1928
|
|
|
1988
|
-
return '<pre><code class="' + this.options.langPrefix + escape
|
|
1929
|
+
return '<pre><code class="' + this.options.langPrefix + escape(lang, true) + '">' + (escaped ? _code : escape(_code, true)) + '</code></pre>\n';
|
|
1989
1930
|
};
|
|
1990
1931
|
|
|
1991
1932
|
_proto.blockquote = function blockquote(quote) {
|
|
@@ -2070,7 +2011,7 @@
|
|
|
2070
2011
|
return text;
|
|
2071
2012
|
}
|
|
2072
2013
|
|
|
2073
|
-
var out = '<a href="' + escape
|
|
2014
|
+
var out = '<a href="' + escape(href) + '"';
|
|
2074
2015
|
|
|
2075
2016
|
if (title) {
|
|
2076
2017
|
out += ' title="' + title + '"';
|
|
@@ -2108,8 +2049,7 @@
|
|
|
2108
2049
|
* TextRenderer
|
|
2109
2050
|
* returns only the textual part of the token
|
|
2110
2051
|
*/
|
|
2111
|
-
|
|
2112
|
-
var TextRenderer_1 = /*#__PURE__*/function () {
|
|
2052
|
+
var TextRenderer = /*#__PURE__*/function () {
|
|
2113
2053
|
function TextRenderer() {}
|
|
2114
2054
|
|
|
2115
2055
|
var _proto = TextRenderer.prototype;
|
|
@@ -2157,8 +2097,7 @@
|
|
|
2157
2097
|
/**
|
|
2158
2098
|
* Slugger generates header id
|
|
2159
2099
|
*/
|
|
2160
|
-
|
|
2161
|
-
var Slugger_1 = /*#__PURE__*/function () {
|
|
2100
|
+
var Slugger = /*#__PURE__*/function () {
|
|
2162
2101
|
function Slugger() {
|
|
2163
2102
|
this.seen = {};
|
|
2164
2103
|
}
|
|
@@ -2214,23 +2153,18 @@
|
|
|
2214
2153
|
return Slugger;
|
|
2215
2154
|
}();
|
|
2216
2155
|
|
|
2217
|
-
var Renderer$1 = Renderer_1;
|
|
2218
|
-
var TextRenderer$1 = TextRenderer_1;
|
|
2219
|
-
var Slugger$1 = Slugger_1;
|
|
2220
|
-
var defaults$1 = defaults$5.exports.defaults;
|
|
2221
|
-
var unescape = helpers.unescape;
|
|
2222
2156
|
/**
|
|
2223
2157
|
* Parsing & Compiling
|
|
2224
2158
|
*/
|
|
2225
2159
|
|
|
2226
|
-
var
|
|
2160
|
+
var Parser = /*#__PURE__*/function () {
|
|
2227
2161
|
function Parser(options) {
|
|
2228
|
-
this.options = options || defaults
|
|
2229
|
-
this.options.renderer = this.options.renderer || new Renderer
|
|
2162
|
+
this.options = options || exports.defaults;
|
|
2163
|
+
this.options.renderer = this.options.renderer || new Renderer();
|
|
2230
2164
|
this.renderer = this.options.renderer;
|
|
2231
2165
|
this.renderer.options = this.options;
|
|
2232
|
-
this.textRenderer = new TextRenderer
|
|
2233
|
-
this.slugger = new Slugger
|
|
2166
|
+
this.textRenderer = new TextRenderer();
|
|
2167
|
+
this.slugger = new Slugger();
|
|
2234
2168
|
}
|
|
2235
2169
|
/**
|
|
2236
2170
|
* Static Parse Method
|
|
@@ -2559,18 +2493,6 @@
|
|
|
2559
2493
|
return Parser;
|
|
2560
2494
|
}();
|
|
2561
2495
|
|
|
2562
|
-
var Lexer = Lexer_1;
|
|
2563
|
-
var Parser = Parser_1;
|
|
2564
|
-
var Tokenizer = Tokenizer_1;
|
|
2565
|
-
var Renderer = Renderer_1;
|
|
2566
|
-
var TextRenderer = TextRenderer_1;
|
|
2567
|
-
var Slugger = Slugger_1;
|
|
2568
|
-
var merge = helpers.merge,
|
|
2569
|
-
checkSanitizeDeprecation = helpers.checkSanitizeDeprecation,
|
|
2570
|
-
escape = helpers.escape;
|
|
2571
|
-
var getDefaults = defaults$5.exports.getDefaults,
|
|
2572
|
-
changeDefaults = defaults$5.exports.changeDefaults,
|
|
2573
|
-
defaults = defaults$5.exports.defaults;
|
|
2574
2496
|
/**
|
|
2575
2497
|
* Marked
|
|
2576
2498
|
*/
|
|
@@ -2682,7 +2604,6 @@
|
|
|
2682
2604
|
* Options
|
|
2683
2605
|
*/
|
|
2684
2606
|
|
|
2685
|
-
|
|
2686
2607
|
marked.options = marked.setOptions = function (opt) {
|
|
2687
2608
|
merge(marked.defaults, opt);
|
|
2688
2609
|
changeDefaults(marked.defaults);
|
|
@@ -2690,7 +2611,7 @@
|
|
|
2690
2611
|
};
|
|
2691
2612
|
|
|
2692
2613
|
marked.getDefaults = getDefaults;
|
|
2693
|
-
marked.defaults = defaults;
|
|
2614
|
+
marked.defaults = exports.defaults;
|
|
2694
2615
|
/**
|
|
2695
2616
|
* Use Extension
|
|
2696
2617
|
*/
|
|
@@ -2839,13 +2760,13 @@
|
|
|
2839
2760
|
|
|
2840
2761
|
|
|
2841
2762
|
if (pack.walkTokens) {
|
|
2842
|
-
var
|
|
2763
|
+
var _walkTokens = marked.defaults.walkTokens;
|
|
2843
2764
|
|
|
2844
2765
|
opts.walkTokens = function (token) {
|
|
2845
2766
|
pack.walkTokens.call(this, token);
|
|
2846
2767
|
|
|
2847
|
-
if (
|
|
2848
|
-
|
|
2768
|
+
if (_walkTokens) {
|
|
2769
|
+
_walkTokens.call(this, token);
|
|
2849
2770
|
}
|
|
2850
2771
|
};
|
|
2851
2772
|
}
|
|
@@ -2961,8 +2882,32 @@
|
|
|
2961
2882
|
marked.Tokenizer = Tokenizer;
|
|
2962
2883
|
marked.Slugger = Slugger;
|
|
2963
2884
|
marked.parse = marked;
|
|
2964
|
-
var
|
|
2965
|
-
|
|
2966
|
-
|
|
2885
|
+
var options = marked.options;
|
|
2886
|
+
var setOptions = marked.setOptions;
|
|
2887
|
+
var use = marked.use;
|
|
2888
|
+
var walkTokens = marked.walkTokens;
|
|
2889
|
+
var parseInline = marked.parseInline;
|
|
2890
|
+
var parse = marked;
|
|
2891
|
+
var parser = Parser.parse;
|
|
2892
|
+
var lexer = Lexer.lex;
|
|
2893
|
+
|
|
2894
|
+
exports.Lexer = Lexer;
|
|
2895
|
+
exports.Parser = Parser;
|
|
2896
|
+
exports.Renderer = Renderer;
|
|
2897
|
+
exports.Slugger = Slugger;
|
|
2898
|
+
exports.TextRenderer = TextRenderer;
|
|
2899
|
+
exports.Tokenizer = Tokenizer;
|
|
2900
|
+
exports.getDefaults = getDefaults;
|
|
2901
|
+
exports.lexer = lexer;
|
|
2902
|
+
exports.marked = marked;
|
|
2903
|
+
exports.options = options;
|
|
2904
|
+
exports.parse = parse;
|
|
2905
|
+
exports.parseInline = parseInline;
|
|
2906
|
+
exports.parser = parser;
|
|
2907
|
+
exports.setOptions = setOptions;
|
|
2908
|
+
exports.use = use;
|
|
2909
|
+
exports.walkTokens = walkTokens;
|
|
2910
|
+
|
|
2911
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
2967
2912
|
|
|
2968
2913
|
}));
|