This commit is contained in:
58
node_modules/remark-parse/lib/decode.js
generated
vendored
Normal file
58
node_modules/remark-parse/lib/decode.js
generated
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
'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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user