export default function remarkAllowHtmlEntities() { this.Parser.prototype.inlineTokenizers.text = text; /** * This is a port of the `remark-parse` text tokenizer, adapted to exclude * HTML entity decoding. */ function text(eat, value, silent) { var self = this; var methods; var tokenizers; var index; var length; var subvalue; var position; var tokenizer; var name; var min; /* istanbul ignore if - never used (yet) */ if (silent) { return true; } methods = self.inlineMethods; length = methods.length; tokenizers = self.inlineTokenizers; index = -1; min = value.length; while (++index < length) { name = methods[index]; if (name === 'text' || !tokenizers[name]) { continue; } tokenizer = tokenizers[name].locator; if (!tokenizer) { eat.file.fail('Missing locator: `' + name + '`'); } position = tokenizer.call(self, value, 1); if (position !== -1 && position < min) { min = position; } } subvalue = value.slice(0, min); eat(subvalue)({ type: 'text', value: subvalue, }); } }