You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
946 B
36 lines
946 B
'use strict' |
|
|
|
var content = require('./initialize/content.js') |
|
var document = require('./initialize/document.js') |
|
var flow = require('./initialize/flow.js') |
|
var text = require('./initialize/text.js') |
|
var combineExtensions = require('./util/combine-extensions.js') |
|
var createTokenizer = require('./util/create-tokenizer.js') |
|
var miniflat = require('./util/miniflat.js') |
|
var constructs = require('./constructs.js') |
|
|
|
function parse(options) { |
|
var settings = options || {} |
|
var parser = { |
|
defined: [], |
|
constructs: combineExtensions( |
|
[constructs].concat(miniflat(settings.extensions)) |
|
), |
|
content: create(content), |
|
document: create(document), |
|
flow: create(flow), |
|
string: create(text.string), |
|
text: create(text.text) |
|
} |
|
return parser |
|
|
|
function create(initializer) { |
|
return creator |
|
|
|
function creator(from) { |
|
return createTokenizer(parser, initializer, from) |
|
} |
|
} |
|
} |
|
|
|
module.exports = parse
|
|
|