Skip to content

Commit f9d08cc

Browse files
authored
fix: fix instance options sent to lexer and parser (#3073)
1 parent daa24ee commit f9d08cc

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

src/Instance.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,9 @@ export class Marked {
2424
parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);
2525

2626
Parser = _Parser;
27-
parser = _Parser.parse;
2827
Renderer = _Renderer;
2928
TextRenderer = _TextRenderer;
3029
Lexer = _Lexer;
31-
lexer = _Lexer.lex;
3230
Tokenizer = _Tokenizer;
3331
Hooks = _Hooks;
3432

@@ -232,6 +230,14 @@ export class Marked {
232230
return this;
233231
}
234232

233+
lexer(src: string, options?: MarkedOptions) {
234+
return _Lexer.lex(src, options ?? this.defaults);
235+
}
236+
237+
parser(tokens: Token[], options?: MarkedOptions) {
238+
return _Parser.parse(tokens, options ?? this.defaults);
239+
}
240+
235241
#parseMarkdown(lexer: (src: string, options?: MarkedOptions) => TokensList | Token[], parser: (tokens: Token[], options?: MarkedOptions) => string) {
236242
return (src: string, options?: MarkedOptions | undefined | null): string | Promise<string> => {
237243
const origOpt = { ...options };

test/unit/instance-spec.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,19 @@ describe('Marked', () => {
7272
expect(marked2.parse('# header')).toBe('im marked2');
7373
expect(marked.parse('# header')).toBe('<h1>header</h1>\n');
7474
});
75+
76+
it('should pass defaults to lexer and parser', () => {
77+
const marked1 = new Marked();
78+
marked1.use({
79+
renderer: {
80+
heading() {
81+
return 'test';
82+
}
83+
}
84+
});
85+
const tokens = marked1.lexer('# hi');
86+
const html = marked1.parser(tokens);
87+
88+
expect(html).toBe('test');
89+
});
7590
});

0 commit comments

Comments
 (0)