This commit is contained in:
42
node_modules/remark-parse/lib/parse.js
generated
vendored
Normal file
42
node_modules/remark-parse/lib/parse.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
'use strict'
|
||||
|
||||
var xtend = require('xtend')
|
||||
var removePosition = require('unist-util-remove-position')
|
||||
|
||||
module.exports = parse
|
||||
|
||||
var lineFeed = '\n'
|
||||
var lineBreaksExpression = /\r\n|\r/g
|
||||
|
||||
// Parse the bound file.
|
||||
function parse() {
|
||||
var self = this
|
||||
var value = String(self.file)
|
||||
var start = {line: 1, column: 1, offset: 0}
|
||||
var content = xtend(start)
|
||||
var node
|
||||
|
||||
// Clean non-unix newlines: `\r\n` and `\r` are all changed to `\n`.
|
||||
// This should not affect positional information.
|
||||
value = value.replace(lineBreaksExpression, lineFeed)
|
||||
|
||||
// BOM.
|
||||
if (value.charCodeAt(0) === 0xfeff) {
|
||||
value = value.slice(1)
|
||||
|
||||
content.column++
|
||||
content.offset++
|
||||
}
|
||||
|
||||
node = {
|
||||
type: 'root',
|
||||
children: self.tokenizeBlock(value, content),
|
||||
position: {start: start, end: self.eof || xtend(start)}
|
||||
}
|
||||
|
||||
if (!self.options.position) {
|
||||
removePosition(node, true)
|
||||
}
|
||||
|
||||
return node
|
||||
}
|
||||
Reference in New Issue
Block a user