diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2014-04-21 14:26:09 -0700 |
---|---|---|
committer | Aaron O'Mullan <aaron.omullan@gmail.com> | 2014-04-21 14:26:09 -0700 |
commit | 4c90fdb7b27fdf6527b59097d489a9df0a929264 (patch) | |
tree | b00f3196f58ed712dea40dd69a261fc43129a651 /lib/generate/generator.js | |
parent | d1c1d7b75b6e4a304d031c4313cf54ae8aa3a11d (diff) | |
parent | 98c133df3c9077c1b06748c3206bea3ff011ed3a (diff) | |
download | gitbook-4c90fdb7b27fdf6527b59097d489a9df0a929264.zip gitbook-4c90fdb7b27fdf6527b59097d489a9df0a929264.tar.gz gitbook-4c90fdb7b27fdf6527b59097d489a9df0a929264.tar.bz2 |
Merge pull request #123 from GitbookIO/feature/plugins
Fix #65: Plugins Architecture
Diffstat (limited to 'lib/generate/generator.js')
-rw-r--r-- | lib/generate/generator.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/generate/generator.js b/lib/generate/generator.js index 13022a5..e303345 100644 --- a/lib/generate/generator.js +++ b/lib/generate/generator.js @@ -1,9 +1,30 @@ +var _ = require("lodash"); var path = require("path"); var Q = require("q"); var fs = require("./fs"); +var Plugin = require("./plugin"); + var BaseGenerator = function(options) { this.options = options; + + this.options.plugins = Plugin.normalizeNames(this.options.plugins); + this.plugins = []; +}; + +BaseGenerator.prototype.callHook = function(name) { + return this.plugins.hook(name, this); +}; + +BaseGenerator.prototype.loadPlugins = function() { + var that = this; + + return Plugin.fromList(this.options.plugins) + .then(function(_plugins) { + that.plugins = _plugins; + + return that.callHook("init"); + }); }; BaseGenerator.prototype.convertFile = function(content, input) { |