@@ -77,17 +77,22 @@ export class MarkdownParser implements Parser {
7777 return this . tokenizer . linkify . match ( text ) ;
7878 }
7979
80- parse ( text : string ) {
80+ parse ( src : string ) : Node ;
81+ parse ( tokens : Token [ ] ) : Node ;
82+ parse ( src : string | Token [ ] ) {
8183 const time = Date . now ( ) ;
8284
8385 try {
8486 this . stack = [ { type : this . schema . topNodeType , content : [ ] } ] ;
8587
8688 let mdItTokens ;
8789 try {
88- mdItTokens = this . tokenizer . parse ( text , { } ) ;
90+ mdItTokens = typeof src === 'string' ? this . tokenizer . parse ( src , { } ) : src ;
8991 if ( this . dynamicModifier ) {
90- mdItTokens = this . dynamicModifier . processTokens ( mdItTokens , text ) ;
92+ mdItTokens = this . dynamicModifier . processTokens (
93+ mdItTokens ,
94+ typeof src === 'string' ? src : null ,
95+ ) ;
9196 }
9297 } catch ( err ) {
9398 const e = err as Error ;
@@ -377,7 +382,7 @@ function withoutTrailingNewline(str: string) {
377382export type ProcessToken = (
378383 token : Token ,
379384 index : number ,
380- rawMarkup : string ,
385+ rawMarkup : string | null ,
381386 allowedAttrs ?: string [ ] ,
382387) => Token ;
383388export type ProcessNodeAttrs = (
@@ -455,7 +460,7 @@ export class MarkdownParserDynamicModifier {
455460 this . elementProcessors = new Map ( Object . entries ( config ) ) ;
456461 }
457462
458- processTokens ( tokens : Token [ ] , rawMarkup : string ) : Token [ ] {
463+ processTokens ( tokens : Token [ ] , rawMarkup : string | null ) : Token [ ] {
459464 return tokens . map ( ( token , index ) => {
460465 const processor = this . elementProcessors . get ( cropNodeName ( token . type , openSuffix , '' ) ) ;
461466 if ( ! processor || ! processor . processToken || processor . processToken . length === 0 ) {
0 commit comments