Cache and load parsers, similiar to consolidate.js engines.
npm install parser-cache> Cache and load parsers, similiar to consolidate.js engines.
``bash`
npm i parser-cache --save
`js`
var parsers = require('parser-cache');
* options {Object}: Default options to use.
`js`
var Parsers = require('parser-cache');
var parsers = new Parsers();
Register the given parser callback fn as ext. If ext is not given, the parser fn will be pushed into the default parser stack.
* ext {String} fn
* {Function|Object}: or options returns
* {Object} parsers: to enable chaining.
`js
// Push the parser into the default stack
parsers.register(require('parser-front-matter'));
// Or push the parser into the foo stack`
parsers.register('foo', require('parser-front-matter'));
Run a stack of async parsers for the given file. If file is an object with an ext property, then ext is used to get the parser stack. If ext doesn't have a stack, the default noop parser will be used.
* file {Object|String}: Either a string or an object. stack
* {Array}: Optionally pass an array of functions to use as parsers. options
* {Object} returns
* {Object}: Normalize file object.
`js`
var str = fs.readFileSync('some-file.md', 'utf8');
parsers.parse({ext: '.md', content: str}, function (err, file) {
console.log(file);
});
Or, explicitly pass an array of parser functions as a section argument.
`js`
parsers.parse(file, [a, b, c], function (err, file) {
console.log(file);
});
Run a stack of sync parsers for the given file. If file is an object with an ext property, then ext is used to get the parser stack. If ext doesn't have a stack, the default noop parser will be used.
* file {Object|String}: Either a string or an object. stack
* {Array}: Optionally pass an array of functions to use as parsers. options
* {Object} returns
* {Object}: Normalize file object.
`js`
var str = fs.readFileSync('some-file.md', 'utf8');
parsers.parseSync({ext: '.md', content: str});
Or, explicitly pass an array of parser functions as a section argument.
`js`
parsers.parseSync(file, [a, b, c]);
Run a stack of stream parsers for input files.
* stack {Array}: Optionally pass an array of functions to use as parsers. options
* {Object} returns
* {Stream}: Stream pipeline used to parse files in a stream.
`js`
gulp.src('path/to/files/*.md')
.pipe(parsers.parseStream({ext: '.md'}))
.pipe(gulp.dest('dist'));
Or, explicitly pass an array of parser functions as a section argument.
`js`
gulp.src('path/to/files/*.md')
.pipe(parsers.parseStream([a, b, c], {ext: '.md'}))
.pipe(gulp.dest('dist'));
Return the parser stored by ext. If no ext is passed, the entire parsers is returned.
* ext {String}: The parser to get. returns
* {Object}: The specified parser.
`js`
parser.get('md')
// => { parse[function]}
Remove the parser stack for the given ext, or if no value is specified the entire parsers object is clear.
* ext {String}: The stack to remove.
Example:
`js``
parsers.clear()
Jon Schlinkert
+ github/jonschlinkert
+ twitter/jonschlinkert
*
_This file was generated by verb-cli on October 14, 2014._