UNPKG

very-small-parser

Version:

A very small Markdown, HTML, and CSS parser.

38 lines (37 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MdBlockParser = void 0; const Parser_1 = require("../../Parser"); class MdBlockParser extends Parser_1.Parser { 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); } } exports.MdBlockParser = MdBlockParser;