🗜️ build v4.3.0 [skip ci]
This commit is contained in:
parent
9b452bc7f1
commit
28f4342d8f
216
lib/marked.cjs
216
lib/marked.cjs
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* marked v4.2.12 - a markdown parser
|
* marked v4.3.0 - a markdown parser
|
||||||
* Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
|
* Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
|
||||||
* https://github.com/markedjs/marked
|
* https://github.com/markedjs/marked
|
||||||
*/
|
*/
|
||||||
@ -98,6 +98,7 @@ function getDefaults() {
|
|||||||
headerIds: true,
|
headerIds: true,
|
||||||
headerPrefix: '',
|
headerPrefix: '',
|
||||||
highlight: null,
|
highlight: null,
|
||||||
|
hooks: null,
|
||||||
langPrefix: 'language-',
|
langPrefix: 'language-',
|
||||||
mangle: true,
|
mangle: true,
|
||||||
pedantic: false,
|
pedantic: false,
|
||||||
@ -252,20 +253,6 @@ function resolveUrl(base, href) {
|
|||||||
var noopTest = {
|
var noopTest = {
|
||||||
exec: function noopTest() {}
|
exec: function noopTest() {}
|
||||||
};
|
};
|
||||||
function merge(obj) {
|
|
||||||
var i = 1,
|
|
||||||
target,
|
|
||||||
key;
|
|
||||||
for (; i < arguments.length; i++) {
|
|
||||||
target = arguments[i];
|
|
||||||
for (key in target) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
|
||||||
obj[key] = target[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
function splitCells(tableRow, count) {
|
function splitCells(tableRow, count) {
|
||||||
// ensure that every cell-delimiting pipe has a space
|
// ensure that every cell-delimiting pipe has a space
|
||||||
// before it to distinguish it from an escaped pipe
|
// before it to distinguish it from an escaped pipe
|
||||||
@ -2371,30 +2358,83 @@ var Parser = /*#__PURE__*/function () {
|
|||||||
return Parser;
|
return Parser;
|
||||||
}();
|
}();
|
||||||
|
|
||||||
|
var Hooks = /*#__PURE__*/function () {
|
||||||
|
function Hooks(options) {
|
||||||
|
this.options = options || exports.defaults;
|
||||||
|
}
|
||||||
|
var _proto = Hooks.prototype;
|
||||||
/**
|
/**
|
||||||
* Marked
|
* Process markdown before marked
|
||||||
*/
|
*/
|
||||||
function marked(src, opt, callback) {
|
_proto.preprocess = function preprocess(markdown) {
|
||||||
// throw error in case of non string input
|
return markdown;
|
||||||
if (typeof src === 'undefined' || src === null) {
|
|
||||||
throw new Error('marked(): input parameter is undefined or null');
|
|
||||||
}
|
}
|
||||||
if (typeof src !== 'string') {
|
|
||||||
throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
|
/**
|
||||||
|
* Process HTML after marked is finished
|
||||||
|
*/;
|
||||||
|
_proto.postprocess = function postprocess(html) {
|
||||||
|
return html;
|
||||||
|
};
|
||||||
|
return Hooks;
|
||||||
|
}();
|
||||||
|
Hooks.passThroughHooks = new Set(['preprocess', 'postprocess']);
|
||||||
|
|
||||||
|
function onError(silent, async, callback) {
|
||||||
|
return function (e) {
|
||||||
|
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
||||||
|
if (silent) {
|
||||||
|
var msg = '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
|
||||||
|
if (async) {
|
||||||
|
return Promise.resolve(msg);
|
||||||
}
|
}
|
||||||
|
if (callback) {
|
||||||
|
callback(null, msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
if (async) {
|
||||||
|
return Promise.reject(e);
|
||||||
|
}
|
||||||
|
if (callback) {
|
||||||
|
callback(e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function parseMarkdown(lexer, parser) {
|
||||||
|
return function (src, opt, callback) {
|
||||||
if (typeof opt === 'function') {
|
if (typeof opt === 'function') {
|
||||||
callback = opt;
|
callback = opt;
|
||||||
opt = null;
|
opt = null;
|
||||||
}
|
}
|
||||||
opt = merge({}, marked.defaults, opt || {});
|
var origOpt = _extends({}, opt);
|
||||||
|
opt = _extends({}, marked.defaults, origOpt);
|
||||||
|
var throwError = onError(opt.silent, opt.async, callback);
|
||||||
|
|
||||||
|
// throw error in case of non string input
|
||||||
|
if (typeof src === 'undefined' || src === null) {
|
||||||
|
return throwError(new Error('marked(): input parameter is undefined or null'));
|
||||||
|
}
|
||||||
|
if (typeof src !== 'string') {
|
||||||
|
return throwError(new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected'));
|
||||||
|
}
|
||||||
checkSanitizeDeprecation(opt);
|
checkSanitizeDeprecation(opt);
|
||||||
|
if (opt.hooks) {
|
||||||
|
opt.hooks.options = opt;
|
||||||
|
}
|
||||||
if (callback) {
|
if (callback) {
|
||||||
var highlight = opt.highlight;
|
var highlight = opt.highlight;
|
||||||
var tokens;
|
var tokens;
|
||||||
try {
|
try {
|
||||||
tokens = Lexer.lex(src, opt);
|
if (opt.hooks) {
|
||||||
|
src = opt.hooks.preprocess(src);
|
||||||
|
}
|
||||||
|
tokens = lexer(src, opt);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return callback(e);
|
return throwError(e);
|
||||||
}
|
}
|
||||||
var done = function done(err) {
|
var done = function done(err) {
|
||||||
var out;
|
var out;
|
||||||
@ -2403,13 +2443,16 @@ function marked(src, opt, callback) {
|
|||||||
if (opt.walkTokens) {
|
if (opt.walkTokens) {
|
||||||
marked.walkTokens(tokens, opt.walkTokens);
|
marked.walkTokens(tokens, opt.walkTokens);
|
||||||
}
|
}
|
||||||
out = Parser.parse(tokens, opt);
|
out = parser(tokens, opt);
|
||||||
|
if (opt.hooks) {
|
||||||
|
out = opt.hooks.postprocess(out);
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
err = e;
|
err = e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
opt.highlight = highlight;
|
opt.highlight = highlight;
|
||||||
return err ? callback(err) : callback(null, out);
|
return err ? throwError(err) : callback(null, out);
|
||||||
};
|
};
|
||||||
if (!highlight || highlight.length < 3) {
|
if (!highlight || highlight.length < 3) {
|
||||||
return done();
|
return done();
|
||||||
@ -2442,27 +2485,43 @@ function marked(src, opt, callback) {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
function onError(e) {
|
if (opt.async) {
|
||||||
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then(function (src) {
|
||||||
if (opt.silent) {
|
return lexer(src, opt);
|
||||||
return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
|
}).then(function (tokens) {
|
||||||
}
|
return opt.walkTokens ? Promise.all(marked.walkTokens(tokens, opt.walkTokens)).then(function () {
|
||||||
throw e;
|
return tokens;
|
||||||
|
}) : tokens;
|
||||||
|
}).then(function (tokens) {
|
||||||
|
return parser(tokens, opt);
|
||||||
|
}).then(function (html) {
|
||||||
|
return opt.hooks ? opt.hooks.postprocess(html) : html;
|
||||||
|
})["catch"](throwError);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
var _tokens = Lexer.lex(src, opt);
|
if (opt.hooks) {
|
||||||
if (opt.walkTokens) {
|
src = opt.hooks.preprocess(src);
|
||||||
if (opt.async) {
|
|
||||||
return Promise.all(marked.walkTokens(_tokens, opt.walkTokens)).then(function () {
|
|
||||||
return Parser.parse(_tokens, opt);
|
|
||||||
})["catch"](onError);
|
|
||||||
}
|
}
|
||||||
|
var _tokens = lexer(src, opt);
|
||||||
|
if (opt.walkTokens) {
|
||||||
marked.walkTokens(_tokens, opt.walkTokens);
|
marked.walkTokens(_tokens, opt.walkTokens);
|
||||||
}
|
}
|
||||||
return Parser.parse(_tokens, opt);
|
var html = parser(_tokens, opt);
|
||||||
} catch (e) {
|
if (opt.hooks) {
|
||||||
onError(e);
|
html = opt.hooks.postprocess(html);
|
||||||
}
|
}
|
||||||
|
return html;
|
||||||
|
} catch (e) {
|
||||||
|
return throwError(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marked
|
||||||
|
*/
|
||||||
|
function marked(src, opt, callback) {
|
||||||
|
return parseMarkdown(Lexer.lex, Parser.parse)(src, opt, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2470,7 +2529,7 @@ function marked(src, opt, callback) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
marked.options = marked.setOptions = function (opt) {
|
marked.options = marked.setOptions = function (opt) {
|
||||||
merge(marked.defaults, opt);
|
marked.defaults = _extends({}, marked.defaults, opt);
|
||||||
changeDefaults(marked.defaults);
|
changeDefaults(marked.defaults);
|
||||||
return marked;
|
return marked;
|
||||||
};
|
};
|
||||||
@ -2491,10 +2550,10 @@ marked.use = function () {
|
|||||||
}
|
}
|
||||||
args.forEach(function (pack) {
|
args.forEach(function (pack) {
|
||||||
// copy options to new object
|
// copy options to new object
|
||||||
var opts = merge({}, pack);
|
var opts = _extends({}, pack);
|
||||||
|
|
||||||
// set async to true if it was set to true before
|
// set async to true if it was set to true before
|
||||||
opts.async = marked.defaults.async || opts.async;
|
opts.async = marked.defaults.async || opts.async || false;
|
||||||
|
|
||||||
// ==-- Parse "addon" extensions --== //
|
// ==-- Parse "addon" extensions --== //
|
||||||
if (pack.extensions) {
|
if (pack.extensions) {
|
||||||
@ -2604,6 +2663,42 @@ marked.use = function () {
|
|||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ==-- Parse Hooks extensions --== //
|
||||||
|
if (pack.hooks) {
|
||||||
|
(function () {
|
||||||
|
var hooks = marked.defaults.hooks || new Hooks();
|
||||||
|
var _loop3 = function _loop3(prop) {
|
||||||
|
var prevHook = hooks[prop];
|
||||||
|
if (Hooks.passThroughHooks.has(prop)) {
|
||||||
|
hooks[prop] = function (arg) {
|
||||||
|
if (marked.defaults.async) {
|
||||||
|
return Promise.resolve(pack.hooks[prop].call(hooks, arg)).then(function (ret) {
|
||||||
|
return prevHook.call(hooks, ret);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
var ret = pack.hooks[prop].call(hooks, arg);
|
||||||
|
return prevHook.call(hooks, ret);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
hooks[prop] = function () {
|
||||||
|
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
||||||
|
args[_key5] = arguments[_key5];
|
||||||
|
}
|
||||||
|
var ret = pack.hooks[prop].apply(hooks, args);
|
||||||
|
if (ret === false) {
|
||||||
|
ret = prevHook.apply(hooks, args);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
for (var prop in pack.hooks) {
|
||||||
|
_loop3(prop);
|
||||||
|
}
|
||||||
|
opts.hooks = hooks;
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
|
||||||
// ==-- Parse WalkTokens extensions --== //
|
// ==-- Parse WalkTokens extensions --== //
|
||||||
if (pack.walkTokens) {
|
if (pack.walkTokens) {
|
||||||
var _walkTokens = marked.defaults.walkTokens;
|
var _walkTokens = marked.defaults.walkTokens;
|
||||||
@ -2626,7 +2721,7 @@ marked.use = function () {
|
|||||||
|
|
||||||
marked.walkTokens = function (tokens, callback) {
|
marked.walkTokens = function (tokens, callback) {
|
||||||
var values = [];
|
var values = [];
|
||||||
var _loop3 = function _loop3() {
|
var _loop4 = function _loop4() {
|
||||||
var token = _step.value;
|
var token = _step.value;
|
||||||
values = values.concat(callback.call(marked, token));
|
values = values.concat(callback.call(marked, token));
|
||||||
switch (token.type) {
|
switch (token.type) {
|
||||||
@ -2664,7 +2759,7 @@ marked.walkTokens = function (tokens, callback) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
||||||
_loop3();
|
_loop4();
|
||||||
}
|
}
|
||||||
return values;
|
return values;
|
||||||
};
|
};
|
||||||
@ -2673,30 +2768,7 @@ marked.walkTokens = function (tokens, callback) {
|
|||||||
* Parse Inline
|
* Parse Inline
|
||||||
* @param {string} src
|
* @param {string} src
|
||||||
*/
|
*/
|
||||||
marked.parseInline = function (src, opt) {
|
marked.parseInline = parseMarkdown(Lexer.lexInline, Parser.parseInline);
|
||||||
// throw error in case of non string input
|
|
||||||
if (typeof src === 'undefined' || src === null) {
|
|
||||||
throw new Error('marked.parseInline(): input parameter is undefined or null');
|
|
||||||
}
|
|
||||||
if (typeof src !== 'string') {
|
|
||||||
throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
|
|
||||||
}
|
|
||||||
opt = merge({}, marked.defaults, opt || {});
|
|
||||||
checkSanitizeDeprecation(opt);
|
|
||||||
try {
|
|
||||||
var tokens = Lexer.lexInline(src, opt);
|
|
||||||
if (opt.walkTokens) {
|
|
||||||
marked.walkTokens(tokens, opt.walkTokens);
|
|
||||||
}
|
|
||||||
return Parser.parseInline(tokens, opt);
|
|
||||||
} catch (e) {
|
|
||||||
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
|
||||||
if (opt.silent) {
|
|
||||||
return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
|
|
||||||
}
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expose
|
* Expose
|
||||||
@ -2709,6 +2781,7 @@ marked.Lexer = Lexer;
|
|||||||
marked.lexer = Lexer.lex;
|
marked.lexer = Lexer.lex;
|
||||||
marked.Tokenizer = Tokenizer;
|
marked.Tokenizer = Tokenizer;
|
||||||
marked.Slugger = Slugger;
|
marked.Slugger = Slugger;
|
||||||
|
marked.Hooks = Hooks;
|
||||||
marked.parse = marked;
|
marked.parse = marked;
|
||||||
var options = marked.options;
|
var options = marked.options;
|
||||||
var setOptions = marked.setOptions;
|
var setOptions = marked.setOptions;
|
||||||
@ -2719,6 +2792,7 @@ var parse = marked;
|
|||||||
var parser = Parser.parse;
|
var parser = Parser.parse;
|
||||||
var lexer = Lexer.lex;
|
var lexer = Lexer.lex;
|
||||||
|
|
||||||
|
exports.Hooks = Hooks;
|
||||||
exports.Lexer = Lexer;
|
exports.Lexer = Lexer;
|
||||||
exports.Parser = Parser;
|
exports.Parser = Parser;
|
||||||
exports.Renderer = Renderer;
|
exports.Renderer = Renderer;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* marked v4.2.12 - a markdown parser
|
* marked v4.3.0 - a markdown parser
|
||||||
* Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
|
* Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
|
||||||
* https://github.com/markedjs/marked
|
* https://github.com/markedjs/marked
|
||||||
*/
|
*/
|
||||||
@ -19,6 +19,7 @@ function getDefaults() {
|
|||||||
headerIds: true,
|
headerIds: true,
|
||||||
headerPrefix: '',
|
headerPrefix: '',
|
||||||
highlight: null,
|
highlight: null,
|
||||||
|
hooks: null,
|
||||||
langPrefix: 'language-',
|
langPrefix: 'language-',
|
||||||
mangle: true,
|
mangle: true,
|
||||||
pedantic: false,
|
pedantic: false,
|
||||||
@ -183,23 +184,6 @@ function resolveUrl(base, href) {
|
|||||||
|
|
||||||
const noopTest = { exec: function noopTest() {} };
|
const noopTest = { exec: function noopTest() {} };
|
||||||
|
|
||||||
function merge(obj) {
|
|
||||||
let i = 1,
|
|
||||||
target,
|
|
||||||
key;
|
|
||||||
|
|
||||||
for (; i < arguments.length; i++) {
|
|
||||||
target = arguments[i];
|
|
||||||
for (key in target) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
|
||||||
obj[key] = target[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
function splitCells(tableRow, count) {
|
function splitCells(tableRow, count) {
|
||||||
// ensure that every cell-delimiting pipe has a space
|
// ensure that every cell-delimiting pipe has a space
|
||||||
// before it to distinguish it from an escaped pipe
|
// before it to distinguish it from an escaped pipe
|
||||||
@ -2483,35 +2467,97 @@ class Parser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
class Hooks {
|
||||||
* Marked
|
constructor(options) {
|
||||||
*/
|
this.options = options || defaults;
|
||||||
function marked(src, opt, callback) {
|
|
||||||
// throw error in case of non string input
|
|
||||||
if (typeof src === 'undefined' || src === null) {
|
|
||||||
throw new Error('marked(): input parameter is undefined or null');
|
|
||||||
}
|
|
||||||
if (typeof src !== 'string') {
|
|
||||||
throw new Error('marked(): input parameter is of type '
|
|
||||||
+ Object.prototype.toString.call(src) + ', string expected');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static passThroughHooks = new Set([
|
||||||
|
'preprocess',
|
||||||
|
'postprocess'
|
||||||
|
]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process markdown before marked
|
||||||
|
*/
|
||||||
|
preprocess(markdown) {
|
||||||
|
return markdown;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process HTML after marked is finished
|
||||||
|
*/
|
||||||
|
postprocess(html) {
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onError(silent, async, callback) {
|
||||||
|
return (e) => {
|
||||||
|
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
||||||
|
|
||||||
|
if (silent) {
|
||||||
|
const msg = '<p>An error occurred:</p><pre>'
|
||||||
|
+ escape(e.message + '', true)
|
||||||
|
+ '</pre>';
|
||||||
|
if (async) {
|
||||||
|
return Promise.resolve(msg);
|
||||||
|
}
|
||||||
|
if (callback) {
|
||||||
|
callback(null, msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (async) {
|
||||||
|
return Promise.reject(e);
|
||||||
|
}
|
||||||
|
if (callback) {
|
||||||
|
callback(e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseMarkdown(lexer, parser) {
|
||||||
|
return (src, opt, callback) => {
|
||||||
if (typeof opt === 'function') {
|
if (typeof opt === 'function') {
|
||||||
callback = opt;
|
callback = opt;
|
||||||
opt = null;
|
opt = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
opt = merge({}, marked.defaults, opt || {});
|
const origOpt = { ...opt };
|
||||||
|
opt = { ...marked.defaults, ...origOpt };
|
||||||
|
const throwError = onError(opt.silent, opt.async, callback);
|
||||||
|
|
||||||
|
// throw error in case of non string input
|
||||||
|
if (typeof src === 'undefined' || src === null) {
|
||||||
|
return throwError(new Error('marked(): input parameter is undefined or null'));
|
||||||
|
}
|
||||||
|
if (typeof src !== 'string') {
|
||||||
|
return throwError(new Error('marked(): input parameter is of type '
|
||||||
|
+ Object.prototype.toString.call(src) + ', string expected'));
|
||||||
|
}
|
||||||
|
|
||||||
checkSanitizeDeprecation(opt);
|
checkSanitizeDeprecation(opt);
|
||||||
|
|
||||||
|
if (opt.hooks) {
|
||||||
|
opt.hooks.options = opt;
|
||||||
|
}
|
||||||
|
|
||||||
if (callback) {
|
if (callback) {
|
||||||
const highlight = opt.highlight;
|
const highlight = opt.highlight;
|
||||||
let tokens;
|
let tokens;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
tokens = Lexer.lex(src, opt);
|
if (opt.hooks) {
|
||||||
|
src = opt.hooks.preprocess(src);
|
||||||
|
}
|
||||||
|
tokens = lexer(src, opt);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return callback(e);
|
return throwError(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
const done = function(err) {
|
const done = function(err) {
|
||||||
@ -2522,7 +2568,10 @@ function marked(src, opt, callback) {
|
|||||||
if (opt.walkTokens) {
|
if (opt.walkTokens) {
|
||||||
marked.walkTokens(tokens, opt.walkTokens);
|
marked.walkTokens(tokens, opt.walkTokens);
|
||||||
}
|
}
|
||||||
out = Parser.parse(tokens, opt);
|
out = parser(tokens, opt);
|
||||||
|
if (opt.hooks) {
|
||||||
|
out = opt.hooks.postprocess(out);
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
err = e;
|
err = e;
|
||||||
}
|
}
|
||||||
@ -2531,7 +2580,7 @@ function marked(src, opt, callback) {
|
|||||||
opt.highlight = highlight;
|
opt.highlight = highlight;
|
||||||
|
|
||||||
return err
|
return err
|
||||||
? callback(err)
|
? throwError(err)
|
||||||
: callback(null, out);
|
: callback(null, out);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2573,32 +2622,39 @@ function marked(src, opt, callback) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onError(e) {
|
if (opt.async) {
|
||||||
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)
|
||||||
if (opt.silent) {
|
.then(src => lexer(src, opt))
|
||||||
return '<p>An error occurred:</p><pre>'
|
.then(tokens => opt.walkTokens ? Promise.all(marked.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)
|
||||||
+ escape(e.message + '', true)
|
.then(tokens => parser(tokens, opt))
|
||||||
+ '</pre>';
|
.then(html => opt.hooks ? opt.hooks.postprocess(html) : html)
|
||||||
}
|
.catch(throwError);
|
||||||
throw e;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const tokens = Lexer.lex(src, opt);
|
if (opt.hooks) {
|
||||||
if (opt.walkTokens) {
|
src = opt.hooks.preprocess(src);
|
||||||
if (opt.async) {
|
|
||||||
return Promise.all(marked.walkTokens(tokens, opt.walkTokens))
|
|
||||||
.then(() => {
|
|
||||||
return Parser.parse(tokens, opt);
|
|
||||||
})
|
|
||||||
.catch(onError);
|
|
||||||
}
|
}
|
||||||
|
const tokens = lexer(src, opt);
|
||||||
|
if (opt.walkTokens) {
|
||||||
marked.walkTokens(tokens, opt.walkTokens);
|
marked.walkTokens(tokens, opt.walkTokens);
|
||||||
}
|
}
|
||||||
return Parser.parse(tokens, opt);
|
let html = parser(tokens, opt);
|
||||||
} catch (e) {
|
if (opt.hooks) {
|
||||||
onError(e);
|
html = opt.hooks.postprocess(html);
|
||||||
}
|
}
|
||||||
|
return html;
|
||||||
|
} catch (e) {
|
||||||
|
return throwError(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marked
|
||||||
|
*/
|
||||||
|
function marked(src, opt, callback) {
|
||||||
|
return parseMarkdown(Lexer.lex, Parser.parse)(src, opt, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2607,7 +2663,7 @@ function marked(src, opt, callback) {
|
|||||||
|
|
||||||
marked.options =
|
marked.options =
|
||||||
marked.setOptions = function(opt) {
|
marked.setOptions = function(opt) {
|
||||||
merge(marked.defaults, opt);
|
marked.defaults = { ...marked.defaults, ...opt };
|
||||||
changeDefaults(marked.defaults);
|
changeDefaults(marked.defaults);
|
||||||
return marked;
|
return marked;
|
||||||
};
|
};
|
||||||
@ -2625,10 +2681,10 @@ marked.use = function(...args) {
|
|||||||
|
|
||||||
args.forEach((pack) => {
|
args.forEach((pack) => {
|
||||||
// copy options to new object
|
// copy options to new object
|
||||||
const opts = merge({}, pack);
|
const opts = { ...pack };
|
||||||
|
|
||||||
// set async to true if it was set to true before
|
// set async to true if it was set to true before
|
||||||
opts.async = marked.defaults.async || opts.async;
|
opts.async = marked.defaults.async || opts.async || false;
|
||||||
|
|
||||||
// ==-- Parse "addon" extensions --== //
|
// ==-- Parse "addon" extensions --== //
|
||||||
if (pack.extensions) {
|
if (pack.extensions) {
|
||||||
@ -2715,6 +2771,35 @@ marked.use = function(...args) {
|
|||||||
opts.tokenizer = tokenizer;
|
opts.tokenizer = tokenizer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ==-- Parse Hooks extensions --== //
|
||||||
|
if (pack.hooks) {
|
||||||
|
const hooks = marked.defaults.hooks || new Hooks();
|
||||||
|
for (const prop in pack.hooks) {
|
||||||
|
const prevHook = hooks[prop];
|
||||||
|
if (Hooks.passThroughHooks.has(prop)) {
|
||||||
|
hooks[prop] = (arg) => {
|
||||||
|
if (marked.defaults.async) {
|
||||||
|
return Promise.resolve(pack.hooks[prop].call(hooks, arg)).then(ret => {
|
||||||
|
return prevHook.call(hooks, ret);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const ret = pack.hooks[prop].call(hooks, arg);
|
||||||
|
return prevHook.call(hooks, ret);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
hooks[prop] = (...args) => {
|
||||||
|
let ret = pack.hooks[prop].apply(hooks, args);
|
||||||
|
if (ret === false) {
|
||||||
|
ret = prevHook.apply(hooks, args);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
opts.hooks = hooks;
|
||||||
|
}
|
||||||
|
|
||||||
// ==-- Parse WalkTokens extensions --== //
|
// ==-- Parse WalkTokens extensions --== //
|
||||||
if (pack.walkTokens) {
|
if (pack.walkTokens) {
|
||||||
const walkTokens = marked.defaults.walkTokens;
|
const walkTokens = marked.defaults.walkTokens;
|
||||||
@ -2774,35 +2859,7 @@ marked.walkTokens = function(tokens, callback) {
|
|||||||
* Parse Inline
|
* Parse Inline
|
||||||
* @param {string} src
|
* @param {string} src
|
||||||
*/
|
*/
|
||||||
marked.parseInline = function(src, opt) {
|
marked.parseInline = parseMarkdown(Lexer.lexInline, Parser.parseInline);
|
||||||
// throw error in case of non string input
|
|
||||||
if (typeof src === 'undefined' || src === null) {
|
|
||||||
throw new Error('marked.parseInline(): input parameter is undefined or null');
|
|
||||||
}
|
|
||||||
if (typeof src !== 'string') {
|
|
||||||
throw new Error('marked.parseInline(): input parameter is of type '
|
|
||||||
+ Object.prototype.toString.call(src) + ', string expected');
|
|
||||||
}
|
|
||||||
|
|
||||||
opt = merge({}, marked.defaults, opt || {});
|
|
||||||
checkSanitizeDeprecation(opt);
|
|
||||||
|
|
||||||
try {
|
|
||||||
const tokens = Lexer.lexInline(src, opt);
|
|
||||||
if (opt.walkTokens) {
|
|
||||||
marked.walkTokens(tokens, opt.walkTokens);
|
|
||||||
}
|
|
||||||
return Parser.parseInline(tokens, opt);
|
|
||||||
} catch (e) {
|
|
||||||
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
|
||||||
if (opt.silent) {
|
|
||||||
return '<p>An error occurred:</p><pre>'
|
|
||||||
+ escape(e.message + '', true)
|
|
||||||
+ '</pre>';
|
|
||||||
}
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expose
|
* Expose
|
||||||
@ -2815,6 +2872,7 @@ marked.Lexer = Lexer;
|
|||||||
marked.lexer = Lexer.lex;
|
marked.lexer = Lexer.lex;
|
||||||
marked.Tokenizer = Tokenizer;
|
marked.Tokenizer = Tokenizer;
|
||||||
marked.Slugger = Slugger;
|
marked.Slugger = Slugger;
|
||||||
|
marked.Hooks = Hooks;
|
||||||
marked.parse = marked;
|
marked.parse = marked;
|
||||||
|
|
||||||
const options = marked.options;
|
const options = marked.options;
|
||||||
@ -2826,4 +2884,4 @@ const parse = marked;
|
|||||||
const parser = Parser.parse;
|
const parser = Parser.parse;
|
||||||
const lexer = Lexer.lex;
|
const lexer = Lexer.lex;
|
||||||
|
|
||||||
export { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };
|
export { Hooks, Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* marked v4.2.12 - a markdown parser
|
* marked v4.3.0 - a markdown parser
|
||||||
* Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
|
* Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
|
||||||
* https://github.com/markedjs/marked
|
* https://github.com/markedjs/marked
|
||||||
*/
|
*/
|
||||||
@ -102,6 +102,7 @@
|
|||||||
headerIds: true,
|
headerIds: true,
|
||||||
headerPrefix: '',
|
headerPrefix: '',
|
||||||
highlight: null,
|
highlight: null,
|
||||||
|
hooks: null,
|
||||||
langPrefix: 'language-',
|
langPrefix: 'language-',
|
||||||
mangle: true,
|
mangle: true,
|
||||||
pedantic: false,
|
pedantic: false,
|
||||||
@ -256,20 +257,6 @@
|
|||||||
var noopTest = {
|
var noopTest = {
|
||||||
exec: function noopTest() {}
|
exec: function noopTest() {}
|
||||||
};
|
};
|
||||||
function merge(obj) {
|
|
||||||
var i = 1,
|
|
||||||
target,
|
|
||||||
key;
|
|
||||||
for (; i < arguments.length; i++) {
|
|
||||||
target = arguments[i];
|
|
||||||
for (key in target) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
|
||||||
obj[key] = target[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
function splitCells(tableRow, count) {
|
function splitCells(tableRow, count) {
|
||||||
// ensure that every cell-delimiting pipe has a space
|
// ensure that every cell-delimiting pipe has a space
|
||||||
// before it to distinguish it from an escaped pipe
|
// before it to distinguish it from an escaped pipe
|
||||||
@ -2375,30 +2362,83 @@
|
|||||||
return Parser;
|
return Parser;
|
||||||
}();
|
}();
|
||||||
|
|
||||||
|
var Hooks = /*#__PURE__*/function () {
|
||||||
|
function Hooks(options) {
|
||||||
|
this.options = options || exports.defaults;
|
||||||
|
}
|
||||||
|
var _proto = Hooks.prototype;
|
||||||
/**
|
/**
|
||||||
* Marked
|
* Process markdown before marked
|
||||||
*/
|
*/
|
||||||
function marked(src, opt, callback) {
|
_proto.preprocess = function preprocess(markdown) {
|
||||||
// throw error in case of non string input
|
return markdown;
|
||||||
if (typeof src === 'undefined' || src === null) {
|
|
||||||
throw new Error('marked(): input parameter is undefined or null');
|
|
||||||
}
|
}
|
||||||
if (typeof src !== 'string') {
|
|
||||||
throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
|
/**
|
||||||
|
* Process HTML after marked is finished
|
||||||
|
*/;
|
||||||
|
_proto.postprocess = function postprocess(html) {
|
||||||
|
return html;
|
||||||
|
};
|
||||||
|
return Hooks;
|
||||||
|
}();
|
||||||
|
Hooks.passThroughHooks = new Set(['preprocess', 'postprocess']);
|
||||||
|
|
||||||
|
function onError(silent, async, callback) {
|
||||||
|
return function (e) {
|
||||||
|
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
||||||
|
if (silent) {
|
||||||
|
var msg = '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
|
||||||
|
if (async) {
|
||||||
|
return Promise.resolve(msg);
|
||||||
}
|
}
|
||||||
|
if (callback) {
|
||||||
|
callback(null, msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
if (async) {
|
||||||
|
return Promise.reject(e);
|
||||||
|
}
|
||||||
|
if (callback) {
|
||||||
|
callback(e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function parseMarkdown(lexer, parser) {
|
||||||
|
return function (src, opt, callback) {
|
||||||
if (typeof opt === 'function') {
|
if (typeof opt === 'function') {
|
||||||
callback = opt;
|
callback = opt;
|
||||||
opt = null;
|
opt = null;
|
||||||
}
|
}
|
||||||
opt = merge({}, marked.defaults, opt || {});
|
var origOpt = _extends({}, opt);
|
||||||
|
opt = _extends({}, marked.defaults, origOpt);
|
||||||
|
var throwError = onError(opt.silent, opt.async, callback);
|
||||||
|
|
||||||
|
// throw error in case of non string input
|
||||||
|
if (typeof src === 'undefined' || src === null) {
|
||||||
|
return throwError(new Error('marked(): input parameter is undefined or null'));
|
||||||
|
}
|
||||||
|
if (typeof src !== 'string') {
|
||||||
|
return throwError(new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected'));
|
||||||
|
}
|
||||||
checkSanitizeDeprecation(opt);
|
checkSanitizeDeprecation(opt);
|
||||||
|
if (opt.hooks) {
|
||||||
|
opt.hooks.options = opt;
|
||||||
|
}
|
||||||
if (callback) {
|
if (callback) {
|
||||||
var highlight = opt.highlight;
|
var highlight = opt.highlight;
|
||||||
var tokens;
|
var tokens;
|
||||||
try {
|
try {
|
||||||
tokens = Lexer.lex(src, opt);
|
if (opt.hooks) {
|
||||||
|
src = opt.hooks.preprocess(src);
|
||||||
|
}
|
||||||
|
tokens = lexer(src, opt);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return callback(e);
|
return throwError(e);
|
||||||
}
|
}
|
||||||
var done = function done(err) {
|
var done = function done(err) {
|
||||||
var out;
|
var out;
|
||||||
@ -2407,13 +2447,16 @@
|
|||||||
if (opt.walkTokens) {
|
if (opt.walkTokens) {
|
||||||
marked.walkTokens(tokens, opt.walkTokens);
|
marked.walkTokens(tokens, opt.walkTokens);
|
||||||
}
|
}
|
||||||
out = Parser.parse(tokens, opt);
|
out = parser(tokens, opt);
|
||||||
|
if (opt.hooks) {
|
||||||
|
out = opt.hooks.postprocess(out);
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
err = e;
|
err = e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
opt.highlight = highlight;
|
opt.highlight = highlight;
|
||||||
return err ? callback(err) : callback(null, out);
|
return err ? throwError(err) : callback(null, out);
|
||||||
};
|
};
|
||||||
if (!highlight || highlight.length < 3) {
|
if (!highlight || highlight.length < 3) {
|
||||||
return done();
|
return done();
|
||||||
@ -2446,27 +2489,43 @@
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
function onError(e) {
|
if (opt.async) {
|
||||||
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then(function (src) {
|
||||||
if (opt.silent) {
|
return lexer(src, opt);
|
||||||
return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
|
}).then(function (tokens) {
|
||||||
}
|
return opt.walkTokens ? Promise.all(marked.walkTokens(tokens, opt.walkTokens)).then(function () {
|
||||||
throw e;
|
return tokens;
|
||||||
|
}) : tokens;
|
||||||
|
}).then(function (tokens) {
|
||||||
|
return parser(tokens, opt);
|
||||||
|
}).then(function (html) {
|
||||||
|
return opt.hooks ? opt.hooks.postprocess(html) : html;
|
||||||
|
})["catch"](throwError);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
var _tokens = Lexer.lex(src, opt);
|
if (opt.hooks) {
|
||||||
if (opt.walkTokens) {
|
src = opt.hooks.preprocess(src);
|
||||||
if (opt.async) {
|
|
||||||
return Promise.all(marked.walkTokens(_tokens, opt.walkTokens)).then(function () {
|
|
||||||
return Parser.parse(_tokens, opt);
|
|
||||||
})["catch"](onError);
|
|
||||||
}
|
}
|
||||||
|
var _tokens = lexer(src, opt);
|
||||||
|
if (opt.walkTokens) {
|
||||||
marked.walkTokens(_tokens, opt.walkTokens);
|
marked.walkTokens(_tokens, opt.walkTokens);
|
||||||
}
|
}
|
||||||
return Parser.parse(_tokens, opt);
|
var html = parser(_tokens, opt);
|
||||||
} catch (e) {
|
if (opt.hooks) {
|
||||||
onError(e);
|
html = opt.hooks.postprocess(html);
|
||||||
}
|
}
|
||||||
|
return html;
|
||||||
|
} catch (e) {
|
||||||
|
return throwError(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marked
|
||||||
|
*/
|
||||||
|
function marked(src, opt, callback) {
|
||||||
|
return parseMarkdown(Lexer.lex, Parser.parse)(src, opt, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2474,7 +2533,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
marked.options = marked.setOptions = function (opt) {
|
marked.options = marked.setOptions = function (opt) {
|
||||||
merge(marked.defaults, opt);
|
marked.defaults = _extends({}, marked.defaults, opt);
|
||||||
changeDefaults(marked.defaults);
|
changeDefaults(marked.defaults);
|
||||||
return marked;
|
return marked;
|
||||||
};
|
};
|
||||||
@ -2495,10 +2554,10 @@
|
|||||||
}
|
}
|
||||||
args.forEach(function (pack) {
|
args.forEach(function (pack) {
|
||||||
// copy options to new object
|
// copy options to new object
|
||||||
var opts = merge({}, pack);
|
var opts = _extends({}, pack);
|
||||||
|
|
||||||
// set async to true if it was set to true before
|
// set async to true if it was set to true before
|
||||||
opts.async = marked.defaults.async || opts.async;
|
opts.async = marked.defaults.async || opts.async || false;
|
||||||
|
|
||||||
// ==-- Parse "addon" extensions --== //
|
// ==-- Parse "addon" extensions --== //
|
||||||
if (pack.extensions) {
|
if (pack.extensions) {
|
||||||
@ -2608,6 +2667,42 @@
|
|||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ==-- Parse Hooks extensions --== //
|
||||||
|
if (pack.hooks) {
|
||||||
|
(function () {
|
||||||
|
var hooks = marked.defaults.hooks || new Hooks();
|
||||||
|
var _loop3 = function _loop3(prop) {
|
||||||
|
var prevHook = hooks[prop];
|
||||||
|
if (Hooks.passThroughHooks.has(prop)) {
|
||||||
|
hooks[prop] = function (arg) {
|
||||||
|
if (marked.defaults.async) {
|
||||||
|
return Promise.resolve(pack.hooks[prop].call(hooks, arg)).then(function (ret) {
|
||||||
|
return prevHook.call(hooks, ret);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
var ret = pack.hooks[prop].call(hooks, arg);
|
||||||
|
return prevHook.call(hooks, ret);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
hooks[prop] = function () {
|
||||||
|
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
||||||
|
args[_key5] = arguments[_key5];
|
||||||
|
}
|
||||||
|
var ret = pack.hooks[prop].apply(hooks, args);
|
||||||
|
if (ret === false) {
|
||||||
|
ret = prevHook.apply(hooks, args);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
for (var prop in pack.hooks) {
|
||||||
|
_loop3(prop);
|
||||||
|
}
|
||||||
|
opts.hooks = hooks;
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
|
||||||
// ==-- Parse WalkTokens extensions --== //
|
// ==-- Parse WalkTokens extensions --== //
|
||||||
if (pack.walkTokens) {
|
if (pack.walkTokens) {
|
||||||
var _walkTokens = marked.defaults.walkTokens;
|
var _walkTokens = marked.defaults.walkTokens;
|
||||||
@ -2630,7 +2725,7 @@
|
|||||||
|
|
||||||
marked.walkTokens = function (tokens, callback) {
|
marked.walkTokens = function (tokens, callback) {
|
||||||
var values = [];
|
var values = [];
|
||||||
var _loop3 = function _loop3() {
|
var _loop4 = function _loop4() {
|
||||||
var token = _step.value;
|
var token = _step.value;
|
||||||
values = values.concat(callback.call(marked, token));
|
values = values.concat(callback.call(marked, token));
|
||||||
switch (token.type) {
|
switch (token.type) {
|
||||||
@ -2668,7 +2763,7 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
||||||
_loop3();
|
_loop4();
|
||||||
}
|
}
|
||||||
return values;
|
return values;
|
||||||
};
|
};
|
||||||
@ -2677,30 +2772,7 @@
|
|||||||
* Parse Inline
|
* Parse Inline
|
||||||
* @param {string} src
|
* @param {string} src
|
||||||
*/
|
*/
|
||||||
marked.parseInline = function (src, opt) {
|
marked.parseInline = parseMarkdown(Lexer.lexInline, Parser.parseInline);
|
||||||
// throw error in case of non string input
|
|
||||||
if (typeof src === 'undefined' || src === null) {
|
|
||||||
throw new Error('marked.parseInline(): input parameter is undefined or null');
|
|
||||||
}
|
|
||||||
if (typeof src !== 'string') {
|
|
||||||
throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
|
|
||||||
}
|
|
||||||
opt = merge({}, marked.defaults, opt || {});
|
|
||||||
checkSanitizeDeprecation(opt);
|
|
||||||
try {
|
|
||||||
var tokens = Lexer.lexInline(src, opt);
|
|
||||||
if (opt.walkTokens) {
|
|
||||||
marked.walkTokens(tokens, opt.walkTokens);
|
|
||||||
}
|
|
||||||
return Parser.parseInline(tokens, opt);
|
|
||||||
} catch (e) {
|
|
||||||
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
|
||||||
if (opt.silent) {
|
|
||||||
return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
|
|
||||||
}
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expose
|
* Expose
|
||||||
@ -2713,6 +2785,7 @@
|
|||||||
marked.lexer = Lexer.lex;
|
marked.lexer = Lexer.lex;
|
||||||
marked.Tokenizer = Tokenizer;
|
marked.Tokenizer = Tokenizer;
|
||||||
marked.Slugger = Slugger;
|
marked.Slugger = Slugger;
|
||||||
|
marked.Hooks = Hooks;
|
||||||
marked.parse = marked;
|
marked.parse = marked;
|
||||||
var options = marked.options;
|
var options = marked.options;
|
||||||
var setOptions = marked.setOptions;
|
var setOptions = marked.setOptions;
|
||||||
@ -2723,6 +2796,7 @@
|
|||||||
var parser = Parser.parse;
|
var parser = Parser.parse;
|
||||||
var lexer = Lexer.lex;
|
var lexer = Lexer.lex;
|
||||||
|
|
||||||
|
exports.Hooks = Hooks;
|
||||||
exports.Lexer = Lexer;
|
exports.Lexer = Lexer;
|
||||||
exports.Parser = Parser;
|
exports.Parser = Parser;
|
||||||
exports.Renderer = Renderer;
|
exports.Renderer = Renderer;
|
||||||
|
4
marked.min.js
vendored
4
marked.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user