marked 13.0.0 → 13.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/marked.cjs +25 -22
- package/lib/marked.cjs.map +1 -1
- package/lib/marked.d.cts +5 -5
- package/lib/marked.d.ts +5 -5
- package/lib/marked.esm.js +25 -22
- package/lib/marked.esm.js.map +1 -1
- package/lib/marked.umd.js +25 -22
- package/lib/marked.umd.js.map +1 -1
- package/man/marked.1 +1 -1
- package/marked.min.js +2 -2
- package/package.json +11 -8
package/lib/marked.d.cts
CHANGED
|
@@ -396,15 +396,15 @@ export interface RendererExtension {
|
|
|
396
396
|
export type TokenizerAndRendererExtension = TokenizerExtension | RendererExtension | (TokenizerExtension & RendererExtension);
|
|
397
397
|
export type HooksApi = Omit<_Hooks, "constructor" | "options">;
|
|
398
398
|
export type HooksObject = {
|
|
399
|
-
[K in keyof HooksApi]?: (...args: Parameters<HooksApi[K]>) => ReturnType<HooksApi[K]> | Promise<ReturnType<HooksApi[K]>>;
|
|
399
|
+
[K in keyof HooksApi]?: (this: _Hooks, ...args: Parameters<HooksApi[K]>) => ReturnType<HooksApi[K]> | Promise<ReturnType<HooksApi[K]>>;
|
|
400
400
|
};
|
|
401
401
|
export type RendererApi = Omit<_Renderer, "constructor" | "options" | "parser">;
|
|
402
402
|
export type RendererObject = {
|
|
403
|
-
[K in keyof RendererApi]?: (...args: Parameters<RendererApi[K]>) => ReturnType<RendererApi[K]> | false;
|
|
403
|
+
[K in keyof RendererApi]?: (this: _Renderer, ...args: Parameters<RendererApi[K]>) => ReturnType<RendererApi[K]> | false;
|
|
404
404
|
};
|
|
405
405
|
export type TokenizerApi = Omit<_Tokenizer, "constructor" | "options" | "rules" | "lexer">;
|
|
406
406
|
export type TokenizerObject = {
|
|
407
|
-
[K in keyof TokenizerApi]?: (...args: Parameters<TokenizerApi[K]>) => ReturnType<TokenizerApi[K]> | false;
|
|
407
|
+
[K in keyof TokenizerApi]?: (this: _Tokenizer, ...args: Parameters<TokenizerApi[K]>) => ReturnType<TokenizerApi[K]> | false;
|
|
408
408
|
};
|
|
409
409
|
export interface MarkedExtension {
|
|
410
410
|
/**
|
|
@@ -636,7 +636,7 @@ export declare namespace marked {
|
|
|
636
636
|
var defaults: MarkedOptions;
|
|
637
637
|
var use: (...args: MarkedExtension[]) => typeof marked;
|
|
638
638
|
var walkTokens: (tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) => MaybePromise[];
|
|
639
|
-
var parseInline: (src: string, options?: MarkedOptions |
|
|
639
|
+
var parseInline: (src: string, options?: MarkedOptions | undefined | null) => string | Promise<string>;
|
|
640
640
|
var Parser: typeof _Parser;
|
|
641
641
|
var parser: typeof _Parser.parse;
|
|
642
642
|
var Renderer: typeof _Renderer;
|
|
@@ -651,7 +651,7 @@ export declare const options: (options: MarkedOptions) => typeof marked;
|
|
|
651
651
|
export declare const setOptions: (options: MarkedOptions) => typeof marked;
|
|
652
652
|
export declare const use: (...args: MarkedExtension[]) => typeof marked;
|
|
653
653
|
export declare const walkTokens: (tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) => MaybePromise[];
|
|
654
|
-
export declare const parseInline: (src: string, options?: MarkedOptions |
|
|
654
|
+
export declare const parseInline: (src: string, options?: MarkedOptions | undefined | null) => string | Promise<string>;
|
|
655
655
|
export declare const parse: typeof marked;
|
|
656
656
|
export declare const parser: typeof _Parser.parse;
|
|
657
657
|
export declare const lexer: typeof _Lexer.lex;
|
package/lib/marked.d.ts
CHANGED
|
@@ -396,15 +396,15 @@ export interface RendererExtension {
|
|
|
396
396
|
export type TokenizerAndRendererExtension = TokenizerExtension | RendererExtension | (TokenizerExtension & RendererExtension);
|
|
397
397
|
export type HooksApi = Omit<_Hooks, "constructor" | "options">;
|
|
398
398
|
export type HooksObject = {
|
|
399
|
-
[K in keyof HooksApi]?: (...args: Parameters<HooksApi[K]>) => ReturnType<HooksApi[K]> | Promise<ReturnType<HooksApi[K]>>;
|
|
399
|
+
[K in keyof HooksApi]?: (this: _Hooks, ...args: Parameters<HooksApi[K]>) => ReturnType<HooksApi[K]> | Promise<ReturnType<HooksApi[K]>>;
|
|
400
400
|
};
|
|
401
401
|
export type RendererApi = Omit<_Renderer, "constructor" | "options" | "parser">;
|
|
402
402
|
export type RendererObject = {
|
|
403
|
-
[K in keyof RendererApi]?: (...args: Parameters<RendererApi[K]>) => ReturnType<RendererApi[K]> | false;
|
|
403
|
+
[K in keyof RendererApi]?: (this: _Renderer, ...args: Parameters<RendererApi[K]>) => ReturnType<RendererApi[K]> | false;
|
|
404
404
|
};
|
|
405
405
|
export type TokenizerApi = Omit<_Tokenizer, "constructor" | "options" | "rules" | "lexer">;
|
|
406
406
|
export type TokenizerObject = {
|
|
407
|
-
[K in keyof TokenizerApi]?: (...args: Parameters<TokenizerApi[K]>) => ReturnType<TokenizerApi[K]> | false;
|
|
407
|
+
[K in keyof TokenizerApi]?: (this: _Tokenizer, ...args: Parameters<TokenizerApi[K]>) => ReturnType<TokenizerApi[K]> | false;
|
|
408
408
|
};
|
|
409
409
|
export interface MarkedExtension {
|
|
410
410
|
/**
|
|
@@ -636,7 +636,7 @@ export declare namespace marked {
|
|
|
636
636
|
var defaults: MarkedOptions;
|
|
637
637
|
var use: (...args: MarkedExtension[]) => typeof marked;
|
|
638
638
|
var walkTokens: (tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) => MaybePromise[];
|
|
639
|
-
var parseInline: (src: string, options?: MarkedOptions |
|
|
639
|
+
var parseInline: (src: string, options?: MarkedOptions | undefined | null) => string | Promise<string>;
|
|
640
640
|
var Parser: typeof _Parser;
|
|
641
641
|
var parser: typeof _Parser.parse;
|
|
642
642
|
var Renderer: typeof _Renderer;
|
|
@@ -651,7 +651,7 @@ export declare const options: (options: MarkedOptions) => typeof marked;
|
|
|
651
651
|
export declare const setOptions: (options: MarkedOptions) => typeof marked;
|
|
652
652
|
export declare const use: (...args: MarkedExtension[]) => typeof marked;
|
|
653
653
|
export declare const walkTokens: (tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) => MaybePromise[];
|
|
654
|
-
export declare const parseInline: (src: string, options?: MarkedOptions |
|
|
654
|
+
export declare const parseInline: (src: string, options?: MarkedOptions | undefined | null) => string | Promise<string>;
|
|
655
655
|
export declare const parse: typeof marked;
|
|
656
656
|
export declare const parser: typeof _Parser.parse;
|
|
657
657
|
export declare const lexer: typeof _Lexer.lex;
|
package/lib/marked.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* marked v13.0.
|
|
2
|
+
* marked v13.0.2 - a markdown parser
|
|
3
3
|
* Copyright (c) 2011-2024, Christopher Jeffrey. (MIT Licensed)
|
|
4
4
|
* https://github.com/markedjs/marked
|
|
5
5
|
*/
|
|
@@ -415,12 +415,12 @@ class _Tokenizer {
|
|
|
415
415
|
}
|
|
416
416
|
// Get next list item
|
|
417
417
|
const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\t ][^\\n]*)?(?:\\n|$))`);
|
|
418
|
-
let raw = '';
|
|
419
|
-
let itemContents = '';
|
|
420
418
|
let endsWithBlankLine = false;
|
|
421
419
|
// Check if current bullet point can start a new List Item
|
|
422
420
|
while (src) {
|
|
423
421
|
let endEarly = false;
|
|
422
|
+
let raw = '';
|
|
423
|
+
let itemContents = '';
|
|
424
424
|
if (!(cap = itemRegex.exec(src))) {
|
|
425
425
|
break;
|
|
426
426
|
}
|
|
@@ -431,19 +431,22 @@ class _Tokenizer {
|
|
|
431
431
|
src = src.substring(raw.length);
|
|
432
432
|
let line = cap[2].split('\n', 1)[0].replace(/^\t+/, (t) => ' '.repeat(3 * t.length));
|
|
433
433
|
let nextLine = src.split('\n', 1)[0];
|
|
434
|
+
let blankLine = !line.trim();
|
|
434
435
|
let indent = 0;
|
|
435
436
|
if (this.options.pedantic) {
|
|
436
437
|
indent = 2;
|
|
437
438
|
itemContents = line.trimStart();
|
|
438
439
|
}
|
|
440
|
+
else if (blankLine) {
|
|
441
|
+
indent = cap[1].length + 1;
|
|
442
|
+
}
|
|
439
443
|
else {
|
|
440
444
|
indent = cap[2].search(/[^ ]/); // Find first non-space char
|
|
441
445
|
indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent
|
|
442
446
|
itemContents = line.slice(indent);
|
|
443
447
|
indent += cap[1].length;
|
|
444
448
|
}
|
|
445
|
-
|
|
446
|
-
if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line
|
|
449
|
+
if (blankLine && /^ *$/.test(nextLine)) { // Items begin with at most one blank line
|
|
447
450
|
raw += nextLine + '\n';
|
|
448
451
|
src = src.substring(nextLine.length + 1);
|
|
449
452
|
endEarly = true;
|
|
@@ -539,8 +542,8 @@ class _Tokenizer {
|
|
|
539
542
|
list.raw += raw;
|
|
540
543
|
}
|
|
541
544
|
// Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic
|
|
542
|
-
list.items[list.items.length - 1].raw = raw.trimEnd();
|
|
543
|
-
|
|
545
|
+
list.items[list.items.length - 1].raw = list.items[list.items.length - 1].raw.trimEnd();
|
|
546
|
+
list.items[list.items.length - 1].text = list.items[list.items.length - 1].text.trimEnd();
|
|
544
547
|
list.raw = list.raw.trimEnd();
|
|
545
548
|
// Item child tokens handled here at end because we needed to have the final item to trim it first
|
|
546
549
|
for (let i = 0; i < list.items.length; i++) {
|
|
@@ -2356,7 +2359,7 @@ class Marked {
|
|
|
2356
2359
|
// eslint-disable-next-line prefer-rest-params
|
|
2357
2360
|
return func.apply(this, arguments);
|
|
2358
2361
|
}
|
|
2359
|
-
return func(renderer.parser.parseInline(token.tokens), token.depth, unescape(renderer.parser.parseInline(token.tokens, renderer.parser.textRenderer)));
|
|
2362
|
+
return func.call(this, renderer.parser.parseInline(token.tokens), token.depth, unescape(renderer.parser.parseInline(token.tokens, renderer.parser.textRenderer)));
|
|
2360
2363
|
};
|
|
2361
2364
|
case 'code':
|
|
2362
2365
|
return function (token) {
|
|
@@ -2365,7 +2368,7 @@ class Marked {
|
|
|
2365
2368
|
// eslint-disable-next-line prefer-rest-params
|
|
2366
2369
|
return func.apply(this, arguments);
|
|
2367
2370
|
}
|
|
2368
|
-
return func(token.text, token.lang, !!token.escaped);
|
|
2371
|
+
return func.call(this, token.text, token.lang, !!token.escaped);
|
|
2369
2372
|
};
|
|
2370
2373
|
case 'table':
|
|
2371
2374
|
return function (token) {
|
|
@@ -2400,7 +2403,7 @@ class Marked {
|
|
|
2400
2403
|
}
|
|
2401
2404
|
body += this.tablerow({ text: cell });
|
|
2402
2405
|
}
|
|
2403
|
-
return func(header, body);
|
|
2406
|
+
return func.call(this, header, body);
|
|
2404
2407
|
};
|
|
2405
2408
|
case 'blockquote':
|
|
2406
2409
|
return function (token) {
|
|
@@ -2410,7 +2413,7 @@ class Marked {
|
|
|
2410
2413
|
return func.apply(this, arguments);
|
|
2411
2414
|
}
|
|
2412
2415
|
const body = this.parser.parse(token.tokens);
|
|
2413
|
-
return func(body);
|
|
2416
|
+
return func.call(this, body);
|
|
2414
2417
|
};
|
|
2415
2418
|
case 'list':
|
|
2416
2419
|
return function (token) {
|
|
@@ -2459,7 +2462,7 @@ class Marked {
|
|
|
2459
2462
|
tokens: item.tokens
|
|
2460
2463
|
});
|
|
2461
2464
|
}
|
|
2462
|
-
return func(body, ordered, start);
|
|
2465
|
+
return func.call(this, body, ordered, start);
|
|
2463
2466
|
};
|
|
2464
2467
|
case 'html':
|
|
2465
2468
|
return function (token) {
|
|
@@ -2468,7 +2471,7 @@ class Marked {
|
|
|
2468
2471
|
// eslint-disable-next-line prefer-rest-params
|
|
2469
2472
|
return func.apply(this, arguments);
|
|
2470
2473
|
}
|
|
2471
|
-
return func(token.text, token.block);
|
|
2474
|
+
return func.call(this, token.text, token.block);
|
|
2472
2475
|
};
|
|
2473
2476
|
case 'paragraph':
|
|
2474
2477
|
return function (token) {
|
|
@@ -2477,7 +2480,7 @@ class Marked {
|
|
|
2477
2480
|
// eslint-disable-next-line prefer-rest-params
|
|
2478
2481
|
return func.apply(this, arguments);
|
|
2479
2482
|
}
|
|
2480
|
-
return func(this.parser.parseInline(token.tokens));
|
|
2483
|
+
return func.call(this, this.parser.parseInline(token.tokens));
|
|
2481
2484
|
};
|
|
2482
2485
|
case 'escape':
|
|
2483
2486
|
return function (token) {
|
|
@@ -2486,7 +2489,7 @@ class Marked {
|
|
|
2486
2489
|
// eslint-disable-next-line prefer-rest-params
|
|
2487
2490
|
return func.apply(this, arguments);
|
|
2488
2491
|
}
|
|
2489
|
-
return func(token.text);
|
|
2492
|
+
return func.call(this, token.text);
|
|
2490
2493
|
};
|
|
2491
2494
|
case 'link':
|
|
2492
2495
|
return function (token) {
|
|
@@ -2495,7 +2498,7 @@ class Marked {
|
|
|
2495
2498
|
// eslint-disable-next-line prefer-rest-params
|
|
2496
2499
|
return func.apply(this, arguments);
|
|
2497
2500
|
}
|
|
2498
|
-
return func(token.href, token.title, this.parser.parseInline(token.tokens));
|
|
2501
|
+
return func.call(this, token.href, token.title, this.parser.parseInline(token.tokens));
|
|
2499
2502
|
};
|
|
2500
2503
|
case 'image':
|
|
2501
2504
|
return function (token) {
|
|
@@ -2504,7 +2507,7 @@ class Marked {
|
|
|
2504
2507
|
// eslint-disable-next-line prefer-rest-params
|
|
2505
2508
|
return func.apply(this, arguments);
|
|
2506
2509
|
}
|
|
2507
|
-
return func(token.href, token.title, token.text);
|
|
2510
|
+
return func.call(this, token.href, token.title, token.text);
|
|
2508
2511
|
};
|
|
2509
2512
|
case 'strong':
|
|
2510
2513
|
return function (token) {
|
|
@@ -2513,7 +2516,7 @@ class Marked {
|
|
|
2513
2516
|
// eslint-disable-next-line prefer-rest-params
|
|
2514
2517
|
return func.apply(this, arguments);
|
|
2515
2518
|
}
|
|
2516
|
-
return func(this.parser.parseInline(token.tokens));
|
|
2519
|
+
return func.call(this, this.parser.parseInline(token.tokens));
|
|
2517
2520
|
};
|
|
2518
2521
|
case 'em':
|
|
2519
2522
|
return function (token) {
|
|
@@ -2522,7 +2525,7 @@ class Marked {
|
|
|
2522
2525
|
// eslint-disable-next-line prefer-rest-params
|
|
2523
2526
|
return func.apply(this, arguments);
|
|
2524
2527
|
}
|
|
2525
|
-
return func(this.parser.parseInline(token.tokens));
|
|
2528
|
+
return func.call(this, this.parser.parseInline(token.tokens));
|
|
2526
2529
|
};
|
|
2527
2530
|
case 'codespan':
|
|
2528
2531
|
return function (token) {
|
|
@@ -2531,7 +2534,7 @@ class Marked {
|
|
|
2531
2534
|
// eslint-disable-next-line prefer-rest-params
|
|
2532
2535
|
return func.apply(this, arguments);
|
|
2533
2536
|
}
|
|
2534
|
-
return func(token.text);
|
|
2537
|
+
return func.call(this, token.text);
|
|
2535
2538
|
};
|
|
2536
2539
|
case 'del':
|
|
2537
2540
|
return function (token) {
|
|
@@ -2540,7 +2543,7 @@ class Marked {
|
|
|
2540
2543
|
// eslint-disable-next-line prefer-rest-params
|
|
2541
2544
|
return func.apply(this, arguments);
|
|
2542
2545
|
}
|
|
2543
|
-
return func(this.parser.parseInline(token.tokens));
|
|
2546
|
+
return func.call(this, this.parser.parseInline(token.tokens));
|
|
2544
2547
|
};
|
|
2545
2548
|
case 'text':
|
|
2546
2549
|
return function (token) {
|
|
@@ -2549,7 +2552,7 @@ class Marked {
|
|
|
2549
2552
|
// eslint-disable-next-line prefer-rest-params
|
|
2550
2553
|
return func.apply(this, arguments);
|
|
2551
2554
|
}
|
|
2552
|
-
return func(token.text);
|
|
2555
|
+
return func.call(this, token.text);
|
|
2553
2556
|
};
|
|
2554
2557
|
// do nothing
|
|
2555
2558
|
}
|