very-small-parser
Version:
A very small Markdown, HTML, and CSS parser.
38 lines (37 loc) • 1.09 kB
JavaScript
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;
;