This commit is contained in:
87
node_modules/micromark/dist/preprocess.js
generated
vendored
Normal file
87
node_modules/micromark/dist/preprocess.js
generated
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
'use strict'
|
||||
|
||||
var search = /[\0\t\n\r]/g
|
||||
|
||||
function preprocess() {
|
||||
var start = true
|
||||
var column = 1
|
||||
var buffer = ''
|
||||
var atCarriageReturn
|
||||
return preprocessor
|
||||
|
||||
function preprocessor(value, encoding, end) {
|
||||
var chunks = []
|
||||
var match
|
||||
var next
|
||||
var startPosition
|
||||
var endPosition
|
||||
var code
|
||||
value = buffer + value.toString(encoding)
|
||||
startPosition = 0
|
||||
buffer = ''
|
||||
|
||||
if (start) {
|
||||
if (value.charCodeAt(0) === 65279) {
|
||||
startPosition++
|
||||
}
|
||||
|
||||
start = undefined
|
||||
}
|
||||
|
||||
while (startPosition < value.length) {
|
||||
search.lastIndex = startPosition
|
||||
match = search.exec(value)
|
||||
endPosition = match ? match.index : value.length
|
||||
code = value.charCodeAt(endPosition)
|
||||
|
||||
if (!match) {
|
||||
buffer = value.slice(startPosition)
|
||||
break
|
||||
}
|
||||
|
||||
if (code === 10 && startPosition === endPosition && atCarriageReturn) {
|
||||
chunks.push(-3)
|
||||
atCarriageReturn = undefined
|
||||
} else {
|
||||
if (atCarriageReturn) {
|
||||
chunks.push(-5)
|
||||
atCarriageReturn = undefined
|
||||
}
|
||||
|
||||
if (startPosition < endPosition) {
|
||||
chunks.push(value.slice(startPosition, endPosition))
|
||||
column += endPosition - startPosition
|
||||
}
|
||||
|
||||
if (code === 0) {
|
||||
chunks.push(65533)
|
||||
column++
|
||||
} else if (code === 9) {
|
||||
next = Math.ceil(column / 4) * 4
|
||||
chunks.push(-2)
|
||||
|
||||
while (column++ < next) chunks.push(-1)
|
||||
} else if (code === 10) {
|
||||
chunks.push(-4)
|
||||
column = 1
|
||||
} // Must be carriage return.
|
||||
else {
|
||||
atCarriageReturn = true
|
||||
column = 1
|
||||
}
|
||||
}
|
||||
|
||||
startPosition = endPosition + 1
|
||||
}
|
||||
|
||||
if (end) {
|
||||
if (atCarriageReturn) chunks.push(-5)
|
||||
if (buffer) chunks.push(buffer)
|
||||
chunks.push(null)
|
||||
}
|
||||
|
||||
return chunks
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = preprocess
|
||||
Reference in New Issue
Block a user