Sha256: 6f4b752744321834c71cfae20ebf1c9e9021bc52d257903fb3d3a0c0a40f90c0
Contents?: true
Size: 1.27 KB
Versions: 23
Compression:
Stored size: 1.27 KB
Contents
'use strict' var xtend = require('xtend') var entities = require('parse-entities') module.exports = factory // Factory to create an entity decoder. function factory(ctx) { decoder.raw = decodeRaw return decoder // Normalize `position` to add an `indent`. function normalize(position) { var offsets = ctx.offset var line = position.line var result = [] while (++line) { if (!(line in offsets)) { break } result.push((offsets[line] || 0) + 1) } return {start: position, indent: result} } // Decode `value` (at `position`) into text-nodes. function decoder(value, position, handler) { entities(value, { position: normalize(position), warning: handleWarning, text: handler, reference: handler, textContext: ctx, referenceContext: ctx }) } // Decode `value` (at `position`) into a string. function decodeRaw(value, position, options) { return entities( value, xtend(options, {position: normalize(position), warning: handleWarning}) ) } // Handle a warning. // See <https://github.com/wooorm/parse-entities> for the warnings. function handleWarning(reason, position, code) { if (code !== 3) { ctx.file.message(reason, position) } } }
Version data entries
23 entries across 23 versions & 1 rubygems