init-file-loader
Loader for Template, for loading files onto a custom view collection inside a vinyl plugin.
Last updated 11 years ago by jonschlinkert .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install init-file-loader 
SYNC missed versions from official npm registry.

init-file-loader NPM version

Loader for Template, for loading files onto a custom view collection inside a vinyl plugin.

Install with npm

npm i init-file-loader --save

Usage

Register the loader

Register init-file-loader as a custom loader:

app.loader('file', [require('init-file-loader')]);

app is used as a placeholder for Verb, Assemble, Generate, or any application based on Template.

Use the loader

This is used in the built-in init plugin in Assemble and Verb.

  • The .getTask() method is used to get the name (id) of the currently running task.
  • The .create() method uses the id to create a custom template type for that task
  • The file loader is assigned to the template type. This basically means that the file loader will be called on every file that is loaded.

Example usage in a plugin

var through = require('through2');

module.exports = function myPlugin() {
  var app = this;
  var id = this.getTask();

  // create a template type for vinyl files and assign the loader
  if (!app.hasOwnProperty(id)) {
    // `id` is something like `task_foo`
    app.create(id, ['file']);
  }

  return through.obj(function (file, enc, cb) {

    // Here, we call the method we created above, which would 
    // be something like `app.task_foo()`. This is the same exact 
    // thing that `assemble.page()` does, or `verb.docs()`.
    // 
    // Instead of `pages` or `docs`, the loader we're using will 
    // convert the vinyl file to a template and add it to the 
    // `task_foo` collection.
    app[id](file);
    cb();
  }, function (cb) {
    app.pushToStream(id, this);
    cb();
  });
};

Related projects

  • assemble: Static site generator for Grunt.js, Yeoman and Node.js. Used by Zurb Foundation, Zurb Ink, H5BP/Effeckt,… more
  • middleware-utils: Utils for Template middleware.
  • template: Render templates using any engine. Supports, layouts, pages, partials and custom template types. Use template… more
  • template-utils: Utils for Template.
  • verb: Documentation generator for GitHub projects. Extremely powerful, easy to use, can generate anything from API… more

Running tests

Install dev dependencies:

npm i -d && npm test

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue

Author

Jon Schlinkert

github/jonschlinkert twitter/jonschlinkert

License

Copyright (c) 2015 Jon Schlinkert Released under the MIT license.


This file was generated by verb-cli on April 29, 2015.

Current Tags

  • 0.1.1                                ...           latest (11 years ago)

2 Versions

  • 0.1.1                                ...           11 years ago
  • 0.1.0                                ...           11 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (0)
None
Dev Dependencies (2)
Dependents (3)

Copyright 2013 - present © cnpmjs.org | Home |