UNPKG

very-small-parser

Version:

A very small Markdown, HTML, and CSS parser.

31 lines (30 loc) 839 B
import { Parser } from '../../Parser'; export class MdInlineParser extends Parser { // biome-ignore lint: keep constructor for typing constructor(opts) { super(opts); } parse(src) { const tokens = super.parse(src); // Merge adjacent text tokens. const merged = []; const length = tokens.length; let text; for (let i = 0; i < length; i++) { const tok = tokens[i]; if (tok.type === 'text') { if (text) { text.value += tok.value; text.len += tok.len; } else merged.push((text = tok)); } else { merged.push(tok); text = void 0; } } return merged; } }