UNPKG

very-small-parser

Version:

A very small Markdown, HTML, and CSS parser.

35 lines (34 loc) 954 B
import { Parser } from '../../Parser'; export class MdBlockParser extends Parser { inline; constructor(opts) { super(opts); this.inline = opts.inline; } parsef(src) { const tokens = this.parse(src); const token = { type: 'root', children: tokens, len: src.length, }; // Merge adjacent "list" tokens. const length = tokens.length; for (let i = 0; i < length - 1; i++) { const tok1 = tokens[i]; if (tok1?.type === 'list') { const tok2 = tokens[i + 1]; if (tok2?.type === 'list') { tok1.spread = true; tok1.children.push(...tok2.children); tokens.splice(i + 1, 1); i--; } } } return token; } parsei(src) { return this.inline.parse(src); } }