Cache and load parsers, similiar to consolidate.js engines.
Install with npm
npm i parser-cache --save
var parsers = require('parser-cache');
options
{Object}: Default options to use.
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}: oroptions
returns
{Object}parsers
: to enable chaining.
// Default stack
parsers.register(require('parser-front-matter'));
// Associated with `.hbs` file extension
parsers.register('hbs', require('parser-front-matter'));
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}: oroptions
returns
{Object}parsers
: to enable chaining.
// Default stack
parsers.register(require('parser-front-matter'));
// Associated with `.hbs` file extension
parsers.register('hbs', 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}: Normalizefile
object.
var str = fs.readFileSync('some-file.md', 'utf8');
template.parse({ext: '.md', content: str}, function (err, file) {
console.log(file);
});
Or, explicitly pass an array of parser functions as a section argument.
template.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}: Normalizefile
object.
var str = fs.readFileSync('some-file.md', 'utf8');
template.parseSync({ext: '.md', content: str});
Or, explicitly pass an array of parser functions as a section argument.
template.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.
gulp.src('path/to/files/*.md')
.pipe(template.parseStream({ext: '.md'}))
.pipe(gulp.dest('dist'));
Or, explicitly pass an array of parser functions as a section argument.
gulp.src('path/to/files/*.md')
.pipe(template.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.
parser.get('md')
// => [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:
parsers.clear()
Jon Schlinkert
Copyright (c) 2014 Jon Schlinkert, contributors.
Released under the MIT license
This file was generated by verb-cli on October 01, 2014.