/verb-trees

Verb plugin for generating files trees for documentation.

Primary LanguageJavaScriptMIT LicenseMIT

verb-trees NPM version NPM downloads Build Status

Verb plugin for generating files trees for documentation.

Table of Contents

(TOC generated by verb using markdown-toc)

Real examples

Example projects that use this plugins:

Install

Install with npm:

$ npm install --save verb-trees

Usage

trees(fn[, options]);
  • fn {Function}: generator 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']);
};

About

Contributing

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

Running tests

Install dev dependencies:

$ npm install -d && npm test

Author

Jon Schlinkert

License

Copyright © 2016, Jon Schlinkert. Released under the MIT license.


This file was generated by verb-generate-readme, v0.1.28, on July 31, 2016.