@@ -77,17 +77,22 @@ export class MarkdownParser implements Parser {
77
77
return this . tokenizer . linkify . match ( text ) ;
78
78
}
79
79
80
- parse ( text : string ) {
80
+ parse ( src : string ) : Node ;
81
+ parse ( tokens : Token [ ] ) : Node ;
82
+ parse ( src : string | Token [ ] ) {
81
83
const time = Date . now ( ) ;
82
84
83
85
try {
84
86
this . stack = [ { type : this . schema . topNodeType , content : [ ] } ] ;
85
87
86
88
let mdItTokens ;
87
89
try {
88
- mdItTokens = this . tokenizer . parse ( text , { } ) ;
90
+ mdItTokens = typeof src === 'string' ? this . tokenizer . parse ( src , { } ) : src ;
89
91
if ( this . dynamicModifier ) {
90
- mdItTokens = this . dynamicModifier . processTokens ( mdItTokens , text ) ;
92
+ mdItTokens = this . dynamicModifier . processTokens (
93
+ mdItTokens ,
94
+ typeof src === 'string' ? src : null ,
95
+ ) ;
91
96
}
92
97
} catch ( err ) {
93
98
const e = err as Error ;
@@ -377,7 +382,7 @@ function withoutTrailingNewline(str: string) {
377
382
export type ProcessToken = (
378
383
token : Token ,
379
384
index : number ,
380
- rawMarkup : string ,
385
+ rawMarkup : string | null ,
381
386
allowedAttrs ?: string [ ] ,
382
387
) => Token ;
383
388
export type ProcessNodeAttrs = (
@@ -455,7 +460,7 @@ export class MarkdownParserDynamicModifier {
455
460
this . elementProcessors = new Map ( Object . entries ( config ) ) ;
456
461
}
457
462
458
- processTokens ( tokens : Token [ ] , rawMarkup : string ) : Token [ ] {
463
+ processTokens ( tokens : Token [ ] , rawMarkup : string | null ) : Token [ ] {
459
464
return tokens . map ( ( token , index ) => {
460
465
const processor = this . elementProcessors . get ( cropNodeName ( token . type , openSuffix , '' ) ) ;
461
466
if ( ! processor || ! processor . processToken || processor . processToken . length === 0 ) {
0 commit comments