This commit is contained in:
36
node_modules/remark-parse/lib/unescape.js
generated
vendored
Normal file
36
node_modules/remark-parse/lib/unescape.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
'use strict'
|
||||
|
||||
module.exports = factory
|
||||
|
||||
var backslash = '\\'
|
||||
|
||||
// Factory to de-escape a value, based on a list at `key` in `ctx`.
|
||||
function factory(ctx, key) {
|
||||
return unescape
|
||||
|
||||
// De-escape a string using the expression at `key` in `ctx`.
|
||||
function unescape(value) {
|
||||
var prev = 0
|
||||
var index = value.indexOf(backslash)
|
||||
var escape = ctx[key]
|
||||
var queue = []
|
||||
var character
|
||||
|
||||
while (index !== -1) {
|
||||
queue.push(value.slice(prev, index))
|
||||
prev = index + 1
|
||||
character = value.charAt(prev)
|
||||
|
||||
// If the following character is not a valid escape, add the slash.
|
||||
if (!character || escape.indexOf(character) === -1) {
|
||||
queue.push(backslash)
|
||||
}
|
||||
|
||||
index = value.indexOf(backslash, prev + 1)
|
||||
}
|
||||
|
||||
queue.push(value.slice(prev))
|
||||
|
||||
return queue.join('')
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user