very-small-parser
Version:
A very small Markdown, HTML, and CSS parser.
35 lines (34 loc) • 995 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.MdInlineParser = void 0;
const Parser_1 = require("../../Parser");
class MdInlineParser extends Parser_1.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;
}
}
exports.MdInlineParser = MdInlineParser;
;