🗜️ build [skip ci]

This commit is contained in:
MarkedJS bot 2021-06-15 23:23:19 +00:00
parent 5be9d6d70e
commit 122dd8b393
3 changed files with 559 additions and 312 deletions

File diff suppressed because it is too large Load Diff

View File

@ -75,6 +75,7 @@
return {
baseUrl: null,
breaks: false,
extensions: null,
gfm: true,
headerIds: true,
headerPrefix: '',
@ -1458,6 +1459,8 @@
;
_proto.blockTokens = function blockTokens(src, tokens, top) {
var _this = this;
if (tokens === void 0) {
tokens = [];
}
@ -1470,10 +1473,24 @@
src = src.replace(/^ +$/gm, '');
}
var token, i, l, lastToken;
var token, i, l, lastToken, cutSrc, lastParagraphClipped;
while (src) {
// newline
var _this$options, _this$options$extensi, _this$options$extensi2;
if ((_this$options = this.options) != null && (_this$options$extensi = _this$options.extensions) != null && _this$options$extensi.block && this.options.extensions.block.some(function (extTokenizer) {
if (token = extTokenizer.call(_this, src, tokens)) {
src = src.substring(token.raw.length);
tokens.push(token);
return true;
}
return false;
})) {
continue;
} // newline
if (token = this.tokenizer.space(src)) {
src = src.substring(token.raw.length);
@ -1582,11 +1599,43 @@
tokens.push(token);
continue;
} // top-level paragraph
// prevent paragraph consuming extensions by clipping 'src' to extension start
if (top && (token = this.tokenizer.paragraph(src))) {
cutSrc = src;
if ((_this$options$extensi2 = this.options.extensions) != null && _this$options$extensi2.startBlock) {
(function () {
var startIndex = Infinity;
var tempSrc = src.slice(1);
var tempStart = void 0;
_this.options.extensions.startBlock.forEach(function (getStartIndex) {
tempStart = getStartIndex.call(this, tempSrc);
if (typeof tempStart === 'number' && tempStart >= 0) {
startIndex = Math.min(startIndex, tempStart);
}
});
if (startIndex < Infinity && startIndex >= 0) {
cutSrc = src.substring(0, startIndex + 1);
}
})();
}
if (top && (token = this.tokenizer.paragraph(cutSrc))) {
lastToken = tokens[tokens.length - 1];
if (lastParagraphClipped && lastToken.type === 'paragraph') {
lastToken.raw += '\n' + token.raw;
lastToken.text += '\n' + token.text;
} else {
tokens.push(token);
}
lastParagraphClipped = cutSrc.length !== src.length;
src = src.substring(token.raw.length);
tokens.push(token);
continue;
} // text
@ -1694,6 +1743,8 @@
;
_proto.inlineTokens = function inlineTokens(src, tokens, inLink, inRawBlock) {
var _this2 = this;
if (tokens === void 0) {
tokens = [];
}
@ -1706,7 +1757,7 @@
inRawBlock = false;
}
var token, lastToken; // String with links masked to avoid interference with em and strong
var token, lastToken, cutSrc; // String with links masked to avoid interference with em and strong
var maskedSrc = src;
var match;
@ -1735,11 +1786,26 @@
}
while (src) {
var _this$options2, _this$options2$extens, _this$options$extensi3;
if (!keepPrevChar) {
prevChar = '';
}
keepPrevChar = false; // escape
keepPrevChar = false; // extensions
if ((_this$options2 = this.options) != null && (_this$options2$extens = _this$options2.extensions) != null && _this$options2$extens.inline && this.options.extensions.inline.some(function (extTokenizer) {
if (token = extTokenizer.call(_this2, src, tokens)) {
src = src.substring(token.raw.length);
tokens.push(token);
return true;
}
return false;
})) {
continue;
} // escape
if (token = this.tokenizer.escape(src)) {
src = src.substring(token.raw.length);
@ -1752,11 +1818,11 @@
src = src.substring(token.raw.length);
inLink = token.inLink;
inRawBlock = token.inRawBlock;
var _lastToken = tokens[tokens.length - 1];
lastToken = tokens[tokens.length - 1];
if (_lastToken && token.type === 'text' && _lastToken.type === 'text') {
_lastToken.raw += token.raw;
_lastToken.text += token.text;
if (lastToken && token.type === 'text' && lastToken.type === 'text') {
lastToken.raw += token.raw;
lastToken.text += token.text;
} else {
tokens.push(token);
}
@ -1779,14 +1845,14 @@
if (token = this.tokenizer.reflink(src, this.tokens.links)) {
src = src.substring(token.raw.length);
var _lastToken2 = tokens[tokens.length - 1];
lastToken = tokens[tokens.length - 1];
if (token.type === 'link') {
token.tokens = this.inlineTokens(token.text, [], true, inRawBlock);
tokens.push(token);
} else if (_lastToken2 && token.type === 'text' && _lastToken2.type === 'text') {
_lastToken2.raw += token.raw;
_lastToken2.text += token.text;
} else if (lastToken && token.type === 'text' && lastToken.type === 'text') {
lastToken.raw += token.raw;
lastToken.text += token.text;
} else {
tokens.push(token);
}
@ -1837,9 +1903,32 @@
tokens.push(token);
continue;
} // text
// prevent inlineText consuming extensions by clipping 'src' to extension start
if (token = this.tokenizer.inlineText(src, inRawBlock, smartypants)) {
cutSrc = src;
if ((_this$options$extensi3 = this.options.extensions) != null && _this$options$extensi3.startInline) {
(function () {
var startIndex = Infinity;
var tempSrc = src.slice(1);
var tempStart = void 0;
_this2.options.extensions.startInline.forEach(function (getStartIndex) {
tempStart = getStartIndex.call(this, tempSrc);
if (typeof tempStart === 'number' && tempStart >= 0) {
startIndex = Math.min(startIndex, tempStart);
}
});
if (startIndex < Infinity && startIndex >= 0) {
cutSrc = src.substring(0, startIndex + 1);
}
})();
}
if (token = this.tokenizer.inlineText(cutSrc, inRawBlock, smartypants)) {
src = src.substring(token.raw.length);
if (token.raw.slice(-1) !== '_') {
@ -2215,11 +2304,23 @@
item,
checked,
task,
checkbox;
checkbox,
ret;
var l = tokens.length;
for (i = 0; i < l; i++) {
token = tokens[i];
var _this$options$extensi, _this$options$extensi2;
token = tokens[i]; // Run any renderer extensions
if ((_this$options$extensi = this.options.extensions) != null && (_this$options$extensi2 = _this$options$extensi.renderers) != null && _this$options$extensi2[token.type]) {
ret = this.options.extensions.renderers[token.type].call(this, token);
if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {
out += ret || '';
continue;
}
}
switch (token.type) {
case 'space':
@ -2383,11 +2484,23 @@
renderer = renderer || this.renderer;
var out = '',
i,
token;
token,
ret;
var l = tokens.length;
for (i = 0; i < l; i++) {
token = tokens[i];
var _this$options$extensi3, _this$options$extensi4;
token = tokens[i]; // Run any renderer extensions
if ((_this$options$extensi3 = this.options.extensions) != null && (_this$options$extensi4 = _this$options$extensi3.renderers) != null && _this$options$extensi4[token.type]) {
ret = this.options.extensions.renderers[token.type].call(this, token);
if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {
out += ret || '';
continue;
}
}
switch (token.type) {
case 'escape':
@ -2606,82 +2719,171 @@
* Use Extension
*/
marked.use = function (extension) {
var opts = merge({}, extension);
marked.use = function () {
var _this = this;
if (extension.renderer) {
(function () {
var renderer = marked.defaults.renderer || new Renderer();
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var _loop = function _loop(prop) {
var prevRenderer = renderer[prop];
var opts = merge.apply(void 0, [{}].concat(args));
var extensions = marked.defaults.extensions || {
renderers: {},
childTokens: {}
};
var hasExtensions;
args.forEach(function (pack) {
// ==-- Parse "addon" extensions --== //
if (pack.extensions) {
hasExtensions = true;
pack.extensions.forEach(function (ext) {
if (!ext.name) {
throw new Error('extension name required');
}
renderer[prop] = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
if (ext.renderer) {
var _extensions$renderers;
// Renderer extensions
var prevRenderer = (_extensions$renderers = extensions.renderers) == null ? void 0 : _extensions$renderers[ext.name];
if (prevRenderer) {
// Replace extension with func to run new extension but fall back if false
extensions.renderers[ext.name] = function () {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
var ret = ext.renderer.apply(this, args);
if (ret === false) {
ret = prevRenderer.apply(this, args);
}
return ret;
};
} else {
extensions.renderers[ext.name] = ext.renderer;
}
}
if (ext.tokenizer) {
// Tokenizer Extensions
if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {
throw new Error("extension level must be 'block' or 'inline'");
}
var ret = extension.renderer[prop].apply(renderer, args);
if (ret === false) {
ret = prevRenderer.apply(renderer, args);
if (extensions[ext.level]) {
extensions[ext.level].unshift(ext.tokenizer);
} else {
extensions[ext.level] = [ext.tokenizer];
}
return ret;
if (ext.start) {
// Function to check for start of token
if (ext.level === 'block') {
if (extensions.startBlock) {
extensions.startBlock.push(ext.start);
} else {
extensions.startBlock = [ext.start];
}
} else if (ext.level === 'inline') {
if (extensions.startInline) {
extensions.startInline.push(ext.start);
} else {
extensions.startInline = [ext.start];
}
}
}
}
if (ext.childTokens) {
// Child tokens to be visited by walkTokens
extensions.childTokens[ext.name] = ext.childTokens;
}
});
} // ==-- Parse "overwrite" extensions --== //
if (pack.renderer) {
(function () {
var renderer = marked.defaults.renderer || new Renderer();
var _loop = function _loop(prop) {
var prevRenderer = renderer[prop]; // Replace renderer with func to run extension, but fall back if false
renderer[prop] = function () {
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
args[_key3] = arguments[_key3];
}
var ret = pack.renderer[prop].apply(renderer, args);
if (ret === false) {
ret = prevRenderer.apply(renderer, args);
}
return ret;
};
};
};
for (var prop in extension.renderer) {
_loop(prop);
}
for (var prop in pack.renderer) {
_loop(prop);
}
opts.renderer = renderer;
})();
}
opts.renderer = renderer;
})();
}
if (extension.tokenizer) {
(function () {
var tokenizer = marked.defaults.tokenizer || new Tokenizer();
if (pack.tokenizer) {
(function () {
var tokenizer = marked.defaults.tokenizer || new Tokenizer();
var _loop2 = function _loop2(prop) {
var prevTokenizer = tokenizer[prop];
var _loop2 = function _loop2(prop) {
var prevTokenizer = tokenizer[prop]; // Replace tokenizer with func to run extension, but fall back if false
tokenizer[prop] = function () {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
tokenizer[prop] = function () {
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
args[_key4] = arguments[_key4];
}
var ret = extension.tokenizer[prop].apply(tokenizer, args);
var ret = pack.tokenizer[prop].apply(tokenizer, args);
if (ret === false) {
ret = prevTokenizer.apply(tokenizer, args);
}
if (ret === false) {
ret = prevTokenizer.apply(tokenizer, args);
}
return ret;
return ret;
};
};
for (var prop in pack.tokenizer) {
_loop2(prop);
}
opts.tokenizer = tokenizer;
})();
} // ==-- Parse WalkTokens extensions --== //
if (pack.walkTokens) {
var walkTokens = marked.defaults.walkTokens;
opts.walkTokens = function (token) {
pack.walkTokens.call(_this, token);
if (walkTokens) {
walkTokens(token);
}
};
}
for (var prop in extension.tokenizer) {
_loop2(prop);
}
if (hasExtensions) {
opts.extensions = extensions;
}
opts.tokenizer = tokenizer;
})();
}
if (extension.walkTokens) {
var walkTokens = marked.defaults.walkTokens;
opts.walkTokens = function (token) {
extension.walkTokens(token);
if (walkTokens) {
walkTokens(token);
}
};
}
marked.setOptions(opts);
marked.setOptions(opts);
});
};
/**
* Run callback for every token
@ -2689,7 +2891,7 @@
marked.walkTokens = function (tokens, callback) {
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
var _loop3 = function _loop3() {
var token = _step.value;
callback(token);
@ -2721,11 +2923,26 @@
default:
{
if (token.tokens) {
var _marked$defaults, _marked$defaults$exte, _marked$defaults$exte2, _marked$defaults3, _marked$defaults3$ext;
if ((_marked$defaults = marked.defaults) != null && (_marked$defaults$exte = _marked$defaults.extensions) != null && (_marked$defaults$exte2 = _marked$defaults$exte.childTokens) != null && _marked$defaults$exte2[token.type]) {
var _marked$defaults2;
// Walk any extensions
(_marked$defaults2 = marked.defaults) == null ? void 0 : _marked$defaults2.extensions.childTokens[token.type].forEach(function (childTokens) {
marked.walkTokens(token[childTokens], callback);
});
}
if (token.tokens && !((_marked$defaults3 = marked.defaults) != null && (_marked$defaults3$ext = _marked$defaults3.extensions) != null && _marked$defaults3$ext.childTokens[token.type])) {
marked.walkTokens(token.tokens, callback);
}
}
}
};
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
_loop3();
}
};
/**

2
marked.min.js vendored

File diff suppressed because one or more lines are too long