marked 3.0.5 → 4.0.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/README.md +1 -1
- package/bin/{marked → marked.js} +59 -66
- package/lib/marked.cjs +2913 -0
- package/lib/marked.esm.js +143 -229
- package/lib/marked.js +128 -207
- package/man/marked.1 +5 -24
- package/man/marked.1.txt +21 -31
- package/marked.min.js +1 -1
- package/package.json +28 -20
- 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 +29 -25
- package/src/rules.js +4 -9
package/lib/marked.js
CHANGED
|
@@ -69,11 +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
|
-
var defaults$5 = {exports: {}};
|
|
75
|
-
|
|
76
|
-
function getDefaults$1() {
|
|
72
|
+
function getDefaults() {
|
|
77
73
|
return {
|
|
78
74
|
baseUrl: null,
|
|
79
75
|
breaks: false,
|
|
@@ -96,17 +92,11 @@
|
|
|
96
92
|
xhtml: false
|
|
97
93
|
};
|
|
98
94
|
}
|
|
99
|
-
|
|
100
|
-
function changeDefaults
|
|
101
|
-
|
|
95
|
+
exports.defaults = getDefaults();
|
|
96
|
+
function changeDefaults(newDefaults) {
|
|
97
|
+
exports.defaults = newDefaults;
|
|
102
98
|
}
|
|
103
99
|
|
|
104
|
-
defaults$5.exports = {
|
|
105
|
-
defaults: getDefaults$1(),
|
|
106
|
-
getDefaults: getDefaults$1,
|
|
107
|
-
changeDefaults: changeDefaults$1
|
|
108
|
-
};
|
|
109
|
-
|
|
110
100
|
/**
|
|
111
101
|
* Helpers
|
|
112
102
|
*/
|
|
@@ -126,7 +116,7 @@
|
|
|
126
116
|
return escapeReplacements[ch];
|
|
127
117
|
};
|
|
128
118
|
|
|
129
|
-
function escape
|
|
119
|
+
function escape(html, encode) {
|
|
130
120
|
if (encode) {
|
|
131
121
|
if (escapeTest.test(html)) {
|
|
132
122
|
return html.replace(escapeReplace, getEscapeReplacement);
|
|
@@ -139,10 +129,8 @@
|
|
|
139
129
|
|
|
140
130
|
return html;
|
|
141
131
|
}
|
|
142
|
-
|
|
143
132
|
var unescapeTest = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
|
|
144
|
-
|
|
145
|
-
function unescape$1(html) {
|
|
133
|
+
function unescape(html) {
|
|
146
134
|
// explicitly match decimal, hex, and named HTML entities
|
|
147
135
|
return html.replace(unescapeTest, function (_, n) {
|
|
148
136
|
n = n.toLowerCase();
|
|
@@ -155,10 +143,8 @@
|
|
|
155
143
|
return '';
|
|
156
144
|
});
|
|
157
145
|
}
|
|
158
|
-
|
|
159
146
|
var caret = /(^|[^\[])\^/g;
|
|
160
|
-
|
|
161
|
-
function edit$1(regex, opt) {
|
|
147
|
+
function edit(regex, opt) {
|
|
162
148
|
regex = regex.source || regex;
|
|
163
149
|
opt = opt || '';
|
|
164
150
|
var obj = {
|
|
@@ -174,16 +160,14 @@
|
|
|
174
160
|
};
|
|
175
161
|
return obj;
|
|
176
162
|
}
|
|
177
|
-
|
|
178
163
|
var nonWordAndColonTest = /[^\w:]/g;
|
|
179
164
|
var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
|
|
180
|
-
|
|
181
|
-
function cleanUrl$1(sanitize, base, href) {
|
|
165
|
+
function cleanUrl(sanitize, base, href) {
|
|
182
166
|
if (sanitize) {
|
|
183
167
|
var prot;
|
|
184
168
|
|
|
185
169
|
try {
|
|
186
|
-
prot = decodeURIComponent(unescape
|
|
170
|
+
prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();
|
|
187
171
|
} catch (e) {
|
|
188
172
|
return null;
|
|
189
173
|
}
|
|
@@ -205,12 +189,10 @@
|
|
|
205
189
|
|
|
206
190
|
return href;
|
|
207
191
|
}
|
|
208
|
-
|
|
209
192
|
var baseUrls = {};
|
|
210
193
|
var justDomain = /^[^:]+:\/*[^/]*$/;
|
|
211
194
|
var protocol = /^([^:]+:)[\s\S]*$/;
|
|
212
195
|
var domain = /^([^:]+:\/*[^/]*)[\s\S]*$/;
|
|
213
|
-
|
|
214
196
|
function resolveUrl(base, href) {
|
|
215
197
|
if (!baseUrls[' ' + base]) {
|
|
216
198
|
// we can ignore everything in base after the last slash of its path component,
|
|
@@ -219,7 +201,7 @@
|
|
|
219
201
|
if (justDomain.test(base)) {
|
|
220
202
|
baseUrls[' ' + base] = base + '/';
|
|
221
203
|
} else {
|
|
222
|
-
baseUrls[' ' + base] = rtrim
|
|
204
|
+
baseUrls[' ' + base] = rtrim(base, '/', true);
|
|
223
205
|
}
|
|
224
206
|
}
|
|
225
207
|
|
|
@@ -242,12 +224,10 @@
|
|
|
242
224
|
return base + href;
|
|
243
225
|
}
|
|
244
226
|
}
|
|
245
|
-
|
|
246
|
-
var noopTest$1 = {
|
|
227
|
+
var noopTest = {
|
|
247
228
|
exec: function noopTest() {}
|
|
248
229
|
};
|
|
249
|
-
|
|
250
|
-
function merge$2(obj) {
|
|
230
|
+
function merge(obj) {
|
|
251
231
|
var i = 1,
|
|
252
232
|
target,
|
|
253
233
|
key;
|
|
@@ -264,8 +244,7 @@
|
|
|
264
244
|
|
|
265
245
|
return obj;
|
|
266
246
|
}
|
|
267
|
-
|
|
268
|
-
function splitCells$1(tableRow, count) {
|
|
247
|
+
function splitCells(tableRow, count) {
|
|
269
248
|
// ensure that every cell-delimiting pipe has a space
|
|
270
249
|
// before it to distinguish it from an escaped pipe
|
|
271
250
|
var row = tableRow.replace(/\|/g, function (match, offset, str) {
|
|
@@ -314,8 +293,7 @@
|
|
|
314
293
|
// /c*$/ is vulnerable to REDOS.
|
|
315
294
|
// invert: Remove suffix of non-c chars instead. Default falsey.
|
|
316
295
|
|
|
317
|
-
|
|
318
|
-
function rtrim$1(str, c, invert) {
|
|
296
|
+
function rtrim(str, c, invert) {
|
|
319
297
|
var l = str.length;
|
|
320
298
|
|
|
321
299
|
if (l === 0) {
|
|
@@ -339,8 +317,7 @@
|
|
|
339
317
|
|
|
340
318
|
return str.substr(0, l - suffLen);
|
|
341
319
|
}
|
|
342
|
-
|
|
343
|
-
function findClosingBracket$1(str, b) {
|
|
320
|
+
function findClosingBracket(str, b) {
|
|
344
321
|
if (str.indexOf(b[1]) === -1) {
|
|
345
322
|
return -1;
|
|
346
323
|
}
|
|
@@ -365,15 +342,13 @@
|
|
|
365
342
|
|
|
366
343
|
return -1;
|
|
367
344
|
}
|
|
368
|
-
|
|
369
|
-
function checkSanitizeDeprecation$1(opt) {
|
|
345
|
+
function checkSanitizeDeprecation(opt) {
|
|
370
346
|
if (opt && opt.sanitize && !opt.silent) {
|
|
371
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');
|
|
372
348
|
}
|
|
373
349
|
} // copied from https://stackoverflow.com/a/5450113/806777
|
|
374
350
|
|
|
375
|
-
|
|
376
|
-
function repeatString$1(pattern, count) {
|
|
351
|
+
function repeatString(pattern, count) {
|
|
377
352
|
if (count < 1) {
|
|
378
353
|
return '';
|
|
379
354
|
}
|
|
@@ -392,30 +367,9 @@
|
|
|
392
367
|
return result + pattern;
|
|
393
368
|
}
|
|
394
369
|
|
|
395
|
-
var helpers = {
|
|
396
|
-
escape: escape$2,
|
|
397
|
-
unescape: unescape$1,
|
|
398
|
-
edit: edit$1,
|
|
399
|
-
cleanUrl: cleanUrl$1,
|
|
400
|
-
resolveUrl: resolveUrl,
|
|
401
|
-
noopTest: noopTest$1,
|
|
402
|
-
merge: merge$2,
|
|
403
|
-
splitCells: splitCells$1,
|
|
404
|
-
rtrim: rtrim$1,
|
|
405
|
-
findClosingBracket: findClosingBracket$1,
|
|
406
|
-
checkSanitizeDeprecation: checkSanitizeDeprecation$1,
|
|
407
|
-
repeatString: repeatString$1
|
|
408
|
-
};
|
|
409
|
-
|
|
410
|
-
var defaults$4 = defaults$5.exports.defaults;
|
|
411
|
-
var rtrim = helpers.rtrim,
|
|
412
|
-
splitCells = helpers.splitCells,
|
|
413
|
-
_escape = helpers.escape,
|
|
414
|
-
findClosingBracket = helpers.findClosingBracket;
|
|
415
|
-
|
|
416
370
|
function outputLink(cap, link, raw, lexer) {
|
|
417
371
|
var href = link.href;
|
|
418
|
-
var title = link.title ?
|
|
372
|
+
var title = link.title ? escape(link.title) : null;
|
|
419
373
|
var text = cap[1].replace(/\\([\[\]])/g, '$1');
|
|
420
374
|
|
|
421
375
|
if (cap[0].charAt(0) !== '!') {
|
|
@@ -436,7 +390,7 @@
|
|
|
436
390
|
raw: raw,
|
|
437
391
|
href: href,
|
|
438
392
|
title: title,
|
|
439
|
-
text:
|
|
393
|
+
text: escape(text)
|
|
440
394
|
};
|
|
441
395
|
}
|
|
442
396
|
}
|
|
@@ -470,9 +424,9 @@
|
|
|
470
424
|
*/
|
|
471
425
|
|
|
472
426
|
|
|
473
|
-
var
|
|
427
|
+
var Tokenizer = /*#__PURE__*/function () {
|
|
474
428
|
function Tokenizer(options) {
|
|
475
|
-
this.options = options || defaults
|
|
429
|
+
this.options = options || exports.defaults;
|
|
476
430
|
}
|
|
477
431
|
|
|
478
432
|
var _proto = Tokenizer.prototype;
|
|
@@ -744,7 +698,7 @@
|
|
|
744
698
|
|
|
745
699
|
if (this.options.sanitize) {
|
|
746
700
|
token.type = 'paragraph';
|
|
747
|
-
token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) :
|
|
701
|
+
token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);
|
|
748
702
|
token.tokens = [];
|
|
749
703
|
this.lexer.inline(token.text, token.tokens);
|
|
750
704
|
}
|
|
@@ -883,14 +837,14 @@
|
|
|
883
837
|
}
|
|
884
838
|
};
|
|
885
839
|
|
|
886
|
-
_proto.escape = function escape(src) {
|
|
840
|
+
_proto.escape = function escape$1(src) {
|
|
887
841
|
var cap = this.rules.inline.escape.exec(src);
|
|
888
842
|
|
|
889
843
|
if (cap) {
|
|
890
844
|
return {
|
|
891
845
|
type: 'escape',
|
|
892
846
|
raw: cap[0],
|
|
893
|
-
text:
|
|
847
|
+
text: escape(cap[1])
|
|
894
848
|
};
|
|
895
849
|
}
|
|
896
850
|
};
|
|
@@ -916,7 +870,7 @@
|
|
|
916
870
|
raw: cap[0],
|
|
917
871
|
inLink: this.lexer.state.inLink,
|
|
918
872
|
inRawBlock: this.lexer.state.inRawBlock,
|
|
919
|
-
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]
|
|
920
874
|
};
|
|
921
875
|
}
|
|
922
876
|
};
|
|
@@ -1013,7 +967,7 @@
|
|
|
1013
967
|
var match = this.rules.inline.emStrong.lDelim.exec(src);
|
|
1014
968
|
if (!match) return; // _ can't be between two alphanumerics. \p{L}\p{N} includes non-english alphabet/numbers as well
|
|
1015
969
|
|
|
1016
|
-
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;
|
|
1017
971
|
var nextChar = match[1] || match[2] || '';
|
|
1018
972
|
|
|
1019
973
|
if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {
|
|
@@ -1086,7 +1040,7 @@
|
|
|
1086
1040
|
text = text.substring(1, text.length - 1);
|
|
1087
1041
|
}
|
|
1088
1042
|
|
|
1089
|
-
text =
|
|
1043
|
+
text = escape(text, true);
|
|
1090
1044
|
return {
|
|
1091
1045
|
type: 'codespan',
|
|
1092
1046
|
raw: cap[0],
|
|
@@ -1126,10 +1080,10 @@
|
|
|
1126
1080
|
var text, href;
|
|
1127
1081
|
|
|
1128
1082
|
if (cap[2] === '@') {
|
|
1129
|
-
text =
|
|
1083
|
+
text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);
|
|
1130
1084
|
href = 'mailto:' + text;
|
|
1131
1085
|
} else {
|
|
1132
|
-
text =
|
|
1086
|
+
text = escape(cap[1]);
|
|
1133
1087
|
href = text;
|
|
1134
1088
|
}
|
|
1135
1089
|
|
|
@@ -1154,7 +1108,7 @@
|
|
|
1154
1108
|
var text, href;
|
|
1155
1109
|
|
|
1156
1110
|
if (cap[2] === '@') {
|
|
1157
|
-
text =
|
|
1111
|
+
text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);
|
|
1158
1112
|
href = 'mailto:' + text;
|
|
1159
1113
|
} else {
|
|
1160
1114
|
// do extended autolink path validation
|
|
@@ -1165,7 +1119,7 @@
|
|
|
1165
1119
|
cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];
|
|
1166
1120
|
} while (prevCapZero !== cap[0]);
|
|
1167
1121
|
|
|
1168
|
-
text =
|
|
1122
|
+
text = escape(cap[0]);
|
|
1169
1123
|
|
|
1170
1124
|
if (cap[1] === 'www.') {
|
|
1171
1125
|
href = 'http://' + text;
|
|
@@ -1195,9 +1149,9 @@
|
|
|
1195
1149
|
var text;
|
|
1196
1150
|
|
|
1197
1151
|
if (this.lexer.state.inRawBlock) {
|
|
1198
|
-
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];
|
|
1199
1153
|
} else {
|
|
1200
|
-
text =
|
|
1154
|
+
text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);
|
|
1201
1155
|
}
|
|
1202
1156
|
|
|
1203
1157
|
return {
|
|
@@ -1211,14 +1165,11 @@
|
|
|
1211
1165
|
return Tokenizer;
|
|
1212
1166
|
}();
|
|
1213
1167
|
|
|
1214
|
-
var noopTest = helpers.noopTest,
|
|
1215
|
-
edit = helpers.edit,
|
|
1216
|
-
merge$1 = helpers.merge;
|
|
1217
1168
|
/**
|
|
1218
1169
|
* Block-Level Grammar
|
|
1219
1170
|
*/
|
|
1220
1171
|
|
|
1221
|
-
var block
|
|
1172
|
+
var block = {
|
|
1222
1173
|
newline: /^(?: *(?:\n|$))+/,
|
|
1223
1174
|
code: /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,
|
|
1224
1175
|
fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,
|
|
@@ -1244,56 +1195,56 @@
|
|
|
1244
1195
|
_paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,
|
|
1245
1196
|
text: /^[^\n]+/
|
|
1246
1197
|
};
|
|
1247
|
-
block
|
|
1248
|
-
block
|
|
1249
|
-
block
|
|
1250
|
-
block
|
|
1251
|
-
block
|
|
1252
|
-
block
|
|
1253
|
-
block
|
|
1254
|
-
block
|
|
1255
|
-
block
|
|
1256
|
-
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
|
|
1257
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
|
|
1258
|
-
.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
|
|
1259
1210
|
.getRegex();
|
|
1260
|
-
block
|
|
1211
|
+
block.blockquote = edit(block.blockquote).replace('paragraph', block.paragraph).getRegex();
|
|
1261
1212
|
/**
|
|
1262
1213
|
* Normal Block Grammar
|
|
1263
1214
|
*/
|
|
1264
1215
|
|
|
1265
|
-
block
|
|
1216
|
+
block.normal = merge({}, block);
|
|
1266
1217
|
/**
|
|
1267
1218
|
* GFM Block Grammar
|
|
1268
1219
|
*/
|
|
1269
1220
|
|
|
1270
|
-
block
|
|
1221
|
+
block.gfm = merge({}, block.normal, {
|
|
1271
1222
|
table: '^ *([^\\n ].*\\|.*)\\n' // Header
|
|
1272
1223
|
+ ' {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?' // Align
|
|
1273
1224
|
+ '(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)' // Cells
|
|
1274
1225
|
|
|
1275
1226
|
});
|
|
1276
|
-
block
|
|
1277
|
-
.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
|
|
1278
1229
|
.getRegex();
|
|
1279
1230
|
/**
|
|
1280
1231
|
* Pedantic grammar (original John Gruber's loose markdown specification)
|
|
1281
1232
|
*/
|
|
1282
1233
|
|
|
1283
|
-
block
|
|
1234
|
+
block.pedantic = merge({}, block.normal, {
|
|
1284
1235
|
html: edit('^ *(?:comment *(?:\\n|\\s*$)' + '|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)' // closed tag
|
|
1285
|
-
+ '|<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(),
|
|
1286
1237
|
def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
|
|
1287
1238
|
heading: /^(#{1,6})(.*)(?:\n+|$)/,
|
|
1288
1239
|
fences: noopTest,
|
|
1289
1240
|
// fences not supported
|
|
1290
|
-
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()
|
|
1291
1242
|
});
|
|
1292
1243
|
/**
|
|
1293
1244
|
* Inline-Level Grammar
|
|
1294
1245
|
*/
|
|
1295
1246
|
|
|
1296
|
-
var inline
|
|
1247
|
+
var inline = {
|
|
1297
1248
|
escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,
|
|
1298
1249
|
autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
|
|
1299
1250
|
url: noopTest,
|
|
@@ -1323,37 +1274,37 @@
|
|
|
1323
1274
|
}; // list of punctuation marks from CommonMark spec
|
|
1324
1275
|
// without * and _ to handle the different emphasis markers * and _
|
|
1325
1276
|
|
|
1326
|
-
inline
|
|
1327
|
-
inline
|
|
1328
|
-
|
|
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
|
|
1345
|
-
inline
|
|
1346
|
-
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();
|
|
1347
1298
|
/**
|
|
1348
1299
|
* Normal Inline Grammar
|
|
1349
1300
|
*/
|
|
1350
1301
|
|
|
1351
|
-
inline
|
|
1302
|
+
inline.normal = merge({}, inline);
|
|
1352
1303
|
/**
|
|
1353
1304
|
* Pedantic Inline Grammar
|
|
1354
1305
|
*/
|
|
1355
1306
|
|
|
1356
|
-
inline
|
|
1307
|
+
inline.pedantic = merge({}, inline.normal, {
|
|
1357
1308
|
strong: {
|
|
1358
1309
|
start: /^__|\*\*/,
|
|
1359
1310
|
middle: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
|
|
@@ -1366,40 +1317,31 @@
|
|
|
1366
1317
|
endAst: /\*(?!\*)/g,
|
|
1367
1318
|
endUnd: /_(?!_)/g
|
|
1368
1319
|
},
|
|
1369
|
-
link: edit(/^!?\[(label)\]\((.*?)\)/).replace('label', inline
|
|
1370
|
-
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()
|
|
1371
1322
|
});
|
|
1372
1323
|
/**
|
|
1373
1324
|
* GFM Inline Grammar
|
|
1374
1325
|
*/
|
|
1375
1326
|
|
|
1376
|
-
inline
|
|
1377
|
-
escape: edit(inline
|
|
1327
|
+
inline.gfm = merge({}, inline.normal, {
|
|
1328
|
+
escape: edit(inline.escape).replace('])', '~|])').getRegex(),
|
|
1378
1329
|
_extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,
|
|
1379
1330
|
url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,
|
|
1380
1331
|
_backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
|
|
1381
1332
|
del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,
|
|
1382
1333
|
text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/
|
|
1383
1334
|
});
|
|
1384
|
-
inline
|
|
1335
|
+
inline.gfm.url = edit(inline.gfm.url, 'i').replace('email', inline.gfm._extended_email).getRegex();
|
|
1385
1336
|
/**
|
|
1386
1337
|
* GFM + Line Breaks Inline Grammar
|
|
1387
1338
|
*/
|
|
1388
1339
|
|
|
1389
|
-
inline
|
|
1390
|
-
br: edit(inline
|
|
1391
|
-
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()
|
|
1392
1343
|
});
|
|
1393
|
-
var rules = {
|
|
1394
|
-
block: block$1,
|
|
1395
|
-
inline: inline$1
|
|
1396
|
-
};
|
|
1397
1344
|
|
|
1398
|
-
var Tokenizer$1 = Tokenizer_1$1;
|
|
1399
|
-
var defaults$3 = defaults$5.exports.defaults;
|
|
1400
|
-
var block = rules.block,
|
|
1401
|
-
inline = rules.inline;
|
|
1402
|
-
var repeatString = helpers.repeatString;
|
|
1403
1345
|
/**
|
|
1404
1346
|
* smartypants text replacement
|
|
1405
1347
|
*/
|
|
@@ -1442,12 +1384,12 @@
|
|
|
1442
1384
|
*/
|
|
1443
1385
|
|
|
1444
1386
|
|
|
1445
|
-
var
|
|
1387
|
+
var Lexer = /*#__PURE__*/function () {
|
|
1446
1388
|
function Lexer(options) {
|
|
1447
1389
|
this.tokens = [];
|
|
1448
1390
|
this.tokens.links = Object.create(null);
|
|
1449
|
-
this.options = options || defaults
|
|
1450
|
-
this.options.tokenizer = this.options.tokenizer || new Tokenizer
|
|
1391
|
+
this.options = options || exports.defaults;
|
|
1392
|
+
this.options.tokenizer = this.options.tokenizer || new Tokenizer();
|
|
1451
1393
|
this.tokenizer = this.options.tokenizer;
|
|
1452
1394
|
this.tokenizer.options = this.options;
|
|
1453
1395
|
this.tokenizer.lexer = this;
|
|
@@ -1955,16 +1897,13 @@
|
|
|
1955
1897
|
return Lexer;
|
|
1956
1898
|
}();
|
|
1957
1899
|
|
|
1958
|
-
var defaults$2 = defaults$5.exports.defaults;
|
|
1959
|
-
var cleanUrl = helpers.cleanUrl,
|
|
1960
|
-
escape$1 = helpers.escape;
|
|
1961
1900
|
/**
|
|
1962
1901
|
* Renderer
|
|
1963
1902
|
*/
|
|
1964
1903
|
|
|
1965
|
-
var
|
|
1904
|
+
var Renderer = /*#__PURE__*/function () {
|
|
1966
1905
|
function Renderer(options) {
|
|
1967
|
-
this.options = options || defaults
|
|
1906
|
+
this.options = options || exports.defaults;
|
|
1968
1907
|
}
|
|
1969
1908
|
|
|
1970
1909
|
var _proto = Renderer.prototype;
|
|
@@ -1984,10 +1923,10 @@
|
|
|
1984
1923
|
_code = _code.replace(/\n$/, '') + '\n';
|
|
1985
1924
|
|
|
1986
1925
|
if (!lang) {
|
|
1987
|
-
return '<pre><code>' + (escaped ? _code : escape
|
|
1926
|
+
return '<pre><code>' + (escaped ? _code : escape(_code, true)) + '</code></pre>\n';
|
|
1988
1927
|
}
|
|
1989
1928
|
|
|
1990
|
-
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';
|
|
1991
1930
|
};
|
|
1992
1931
|
|
|
1993
1932
|
_proto.blockquote = function blockquote(quote) {
|
|
@@ -2072,7 +2011,7 @@
|
|
|
2072
2011
|
return text;
|
|
2073
2012
|
}
|
|
2074
2013
|
|
|
2075
|
-
var out = '<a href="' + escape
|
|
2014
|
+
var out = '<a href="' + escape(href) + '"';
|
|
2076
2015
|
|
|
2077
2016
|
if (title) {
|
|
2078
2017
|
out += ' title="' + title + '"';
|
|
@@ -2110,8 +2049,7 @@
|
|
|
2110
2049
|
* TextRenderer
|
|
2111
2050
|
* returns only the textual part of the token
|
|
2112
2051
|
*/
|
|
2113
|
-
|
|
2114
|
-
var TextRenderer_1$1 = /*#__PURE__*/function () {
|
|
2052
|
+
var TextRenderer = /*#__PURE__*/function () {
|
|
2115
2053
|
function TextRenderer() {}
|
|
2116
2054
|
|
|
2117
2055
|
var _proto = TextRenderer.prototype;
|
|
@@ -2159,8 +2097,7 @@
|
|
|
2159
2097
|
/**
|
|
2160
2098
|
* Slugger generates header id
|
|
2161
2099
|
*/
|
|
2162
|
-
|
|
2163
|
-
var Slugger_1$1 = /*#__PURE__*/function () {
|
|
2100
|
+
var Slugger = /*#__PURE__*/function () {
|
|
2164
2101
|
function Slugger() {
|
|
2165
2102
|
this.seen = {};
|
|
2166
2103
|
}
|
|
@@ -2216,23 +2153,18 @@
|
|
|
2216
2153
|
return Slugger;
|
|
2217
2154
|
}();
|
|
2218
2155
|
|
|
2219
|
-
var Renderer$1 = Renderer_1$1;
|
|
2220
|
-
var TextRenderer$1 = TextRenderer_1$1;
|
|
2221
|
-
var Slugger$1 = Slugger_1$1;
|
|
2222
|
-
var defaults$1 = defaults$5.exports.defaults;
|
|
2223
|
-
var unescape = helpers.unescape;
|
|
2224
2156
|
/**
|
|
2225
2157
|
* Parsing & Compiling
|
|
2226
2158
|
*/
|
|
2227
2159
|
|
|
2228
|
-
var
|
|
2160
|
+
var Parser = /*#__PURE__*/function () {
|
|
2229
2161
|
function Parser(options) {
|
|
2230
|
-
this.options = options || defaults
|
|
2231
|
-
this.options.renderer = this.options.renderer || new Renderer
|
|
2162
|
+
this.options = options || exports.defaults;
|
|
2163
|
+
this.options.renderer = this.options.renderer || new Renderer();
|
|
2232
2164
|
this.renderer = this.options.renderer;
|
|
2233
2165
|
this.renderer.options = this.options;
|
|
2234
|
-
this.textRenderer = new TextRenderer
|
|
2235
|
-
this.slugger = new Slugger
|
|
2166
|
+
this.textRenderer = new TextRenderer();
|
|
2167
|
+
this.slugger = new Slugger();
|
|
2236
2168
|
}
|
|
2237
2169
|
/**
|
|
2238
2170
|
* Static Parse Method
|
|
@@ -2561,18 +2493,6 @@
|
|
|
2561
2493
|
return Parser;
|
|
2562
2494
|
}();
|
|
2563
2495
|
|
|
2564
|
-
var Lexer = Lexer_1$1;
|
|
2565
|
-
var Parser = Parser_1$1;
|
|
2566
|
-
var Tokenizer = Tokenizer_1$1;
|
|
2567
|
-
var Renderer = Renderer_1$1;
|
|
2568
|
-
var TextRenderer = TextRenderer_1$1;
|
|
2569
|
-
var Slugger = Slugger_1$1;
|
|
2570
|
-
var merge = helpers.merge,
|
|
2571
|
-
checkSanitizeDeprecation = helpers.checkSanitizeDeprecation,
|
|
2572
|
-
escape = helpers.escape;
|
|
2573
|
-
var getDefaults = defaults$5.exports.getDefaults,
|
|
2574
|
-
changeDefaults = defaults$5.exports.changeDefaults,
|
|
2575
|
-
defaults = defaults$5.exports.defaults;
|
|
2576
2496
|
/**
|
|
2577
2497
|
* Marked
|
|
2578
2498
|
*/
|
|
@@ -2692,14 +2612,12 @@
|
|
|
2692
2612
|
};
|
|
2693
2613
|
|
|
2694
2614
|
marked.getDefaults = getDefaults;
|
|
2695
|
-
marked.defaults = defaults;
|
|
2615
|
+
marked.defaults = exports.defaults;
|
|
2696
2616
|
/**
|
|
2697
2617
|
* Use Extension
|
|
2698
2618
|
*/
|
|
2699
2619
|
|
|
2700
2620
|
marked.use = function () {
|
|
2701
|
-
var _this = this;
|
|
2702
|
-
|
|
2703
2621
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2704
2622
|
args[_key] = arguments[_key];
|
|
2705
2623
|
}
|
|
@@ -2843,13 +2761,13 @@
|
|
|
2843
2761
|
|
|
2844
2762
|
|
|
2845
2763
|
if (pack.walkTokens) {
|
|
2846
|
-
var
|
|
2764
|
+
var _walkTokens = marked.defaults.walkTokens;
|
|
2847
2765
|
|
|
2848
2766
|
opts.walkTokens = function (token) {
|
|
2849
|
-
pack.walkTokens.call(
|
|
2767
|
+
pack.walkTokens.call(this, token);
|
|
2850
2768
|
|
|
2851
|
-
if (
|
|
2852
|
-
|
|
2769
|
+
if (_walkTokens) {
|
|
2770
|
+
_walkTokens.call(this, token);
|
|
2853
2771
|
}
|
|
2854
2772
|
};
|
|
2855
2773
|
}
|
|
@@ -2869,7 +2787,7 @@
|
|
|
2869
2787
|
marked.walkTokens = function (tokens, callback) {
|
|
2870
2788
|
var _loop3 = function _loop3() {
|
|
2871
2789
|
var token = _step.value;
|
|
2872
|
-
callback(token);
|
|
2790
|
+
callback.call(marked, token);
|
|
2873
2791
|
|
|
2874
2792
|
switch (token.type) {
|
|
2875
2793
|
case 'table':
|
|
@@ -2965,28 +2883,31 @@
|
|
|
2965
2883
|
marked.Tokenizer = Tokenizer;
|
|
2966
2884
|
marked.Slugger = Slugger;
|
|
2967
2885
|
marked.parse = marked;
|
|
2968
|
-
|
|
2969
|
-
var
|
|
2970
|
-
var
|
|
2971
|
-
var
|
|
2972
|
-
var
|
|
2973
|
-
var
|
|
2974
|
-
var
|
|
2975
|
-
var lexer =
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
exports.
|
|
2981
|
-
exports.
|
|
2982
|
-
exports.
|
|
2983
|
-
exports
|
|
2984
|
-
exports.
|
|
2985
|
-
exports.Tokenizer = Tokenizer_1;
|
|
2986
|
-
exports["default"] = marked_1;
|
|
2886
|
+
var options = marked.options;
|
|
2887
|
+
var setOptions = marked.setOptions;
|
|
2888
|
+
var use = marked.use;
|
|
2889
|
+
var walkTokens = marked.walkTokens;
|
|
2890
|
+
var parseInline = marked.parseInline;
|
|
2891
|
+
var parse = marked;
|
|
2892
|
+
var parser = Parser.parse;
|
|
2893
|
+
var lexer = Lexer.lex;
|
|
2894
|
+
|
|
2895
|
+
exports.Lexer = Lexer;
|
|
2896
|
+
exports.Parser = Parser;
|
|
2897
|
+
exports.Renderer = Renderer;
|
|
2898
|
+
exports.Slugger = Slugger;
|
|
2899
|
+
exports.TextRenderer = TextRenderer;
|
|
2900
|
+
exports.Tokenizer = Tokenizer;
|
|
2901
|
+
exports["default"] = marked;
|
|
2902
|
+
exports.getDefaults = getDefaults;
|
|
2987
2903
|
exports.lexer = lexer;
|
|
2904
|
+
exports.options = options;
|
|
2988
2905
|
exports.parse = parse;
|
|
2906
|
+
exports.parseInline = parseInline;
|
|
2989
2907
|
exports.parser = parser;
|
|
2908
|
+
exports.setOptions = setOptions;
|
|
2909
|
+
exports.use = use;
|
|
2910
|
+
exports.walkTokens = walkTokens;
|
|
2990
2911
|
|
|
2991
2912
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
2992
2913
|
|