code: function documentConfig(docConfig, project, parent, options) {
  	
  	docConfig = finalizeDocConfig(docConfig, project, parent, options);
  
  	// Use promiseQueue until we can build in parallel
  	var generations = [];
  	// build the sites
  	_.each(docConfig.sites || {}, function(siteConfig, name){
  		console.log("Generating "+name+" at "+path.relative(process.cwd(), siteConfig.dest) );
  		generations.push( generate(siteConfig) );
  	});
  	
  	// get the versions and build them
  	var getAndDocument = require("./get_and_generate_project");
  		
  	_.each(docConfig.versions, function(versionProject, versionName){
  		// relative name from 
  		generations.push( (function(){
  			var newParent = parent || {
  				docConfig: docConfig,
  				path: project.path,
  				sites: versionProject.sites
  			};
  			if(versionProject.skipGet) {
  				return document(versionProject, newParent);
  			} else {
  				return getAndDocument(versionProject, newParent);
  			}
  		})());
  
  	});
  	
  	return Q.all( generations );
  }
docs: @function documentjs.configured.documentConfig documentConfig
  @hide
  
  @param {Object} docConfig A docConfig loaded from `{project.path}/documentjs.json`.
  
  @param {Object} project A [documentjs.configured.projectConfig] object with data about
  the project being documented.
  
  @option {String} path The location of the project being documented.
  
  @param {Object} parentProject A [documentjs.configured.projectConfig] object with data about
  the most parent project being documented.
  
  @option {String} path The location of the most parent project being documented.
  @option {DocumentJS.docConfig} The docConfig loaded from that project.
  
  @param {Object} options command line overwrites.