Skip to content

Latest commit

 

History

History
125 lines (93 loc) · 2.81 KB

.verb.md

File metadata and controls

125 lines (93 loc) · 2.81 KB

Real examples

Example projects that use this plugins:

  • [generate-project][]
  • [generate-engine][]

Install

{%= include('install-npm', {save: true}) %}

Usage

trees(fn[, options]);
  • fn {Function}: generator{generators.md} function ([Generate][], not es6)
  • options {Object|Array}: Options object or array of task names.

Plugin usage

Register as a plugin, where app is an instance of [generate][], [assemble][], [verb][], or [update][]:

app.use(trees(fn[, options]));

Sub-generator

This creates a sub-generator named treeGenerator, along with a few tasks on the sub-generator for controlling flow. The sub-generator tasks probably don't need to be accessed directly though.

"tree" trask

A trees task is added to app for running the sub-generator, which builds the trees for the specified tasks.

Example

app.use(trees(fn, ['foo', 'bar', 'baz']));
app.build('trees', function(err) {
  if (err) console.log(err);
});

Trees

Generated "dest" trees look something like this:

 .
 ├─┬ test
 │ ├─┬ fixtures
 │ │ ├── content.tmpl
 │ │ ├── default.tmpl
 │ │ └── nothing.tmpl
 │ └── test.js
 ├── .editorconfig
 ├── .gitignore
 ├── LICENSE
 ├── package.json
 ├── README.md
 └── index.js

Diffs

When one of the tasks is named default, diffs are generated automatically, and each diff is based on a comparison to the default.

 .
-├─┬ test
-│ ├─┬ fixtures
-│ │ ├── content.tmpl
-│ │ ├── default.tmpl
-│ │ └── nothing.tmpl
-│ └── test.js
-├── .editorconfig
-├── .gitignore
-├── LICENSE
-├── package.json
-├── README.md
 └── index.js

Examples

Basic example

var project = require('generate-project');
var trees = require('verb-trees');

module.exports = function(app) {
  // generate trees for the `default`, `minimal` and `gulp` tasks
  app.use(trees(project, ['default', 'minimal', 'gulp']));
};

Full example

var path = require('path');
var trees = require('verb-trees');
var genFn = require('generate-project');
var del = require('delete');

module.exports = function(app) {
  // register verb-generate-readme as a plugin
  app.use(require('verb-generate-readme'));
  // specify the tasks to run and generate trees for, from `generate-project`
  app.use(trees(genFn, ['default', 'index', 'test']));
  // delete temp files after the build is finished
  app.task('delete', function(cb) {
    del('.temp-trees', cb);
  });
  // run the `trees` task first, so the `readme` generator
  // can use the trees as includes
  app.task('default', ['trees', 'readme', 'delete']);
};