lib/easydoc.js
function compileAndRender(templatePath, content, callback) {
		if (templatePath in templates) {
			return callback(null, templates[templatePath].render(content));
		}
		fs.readFile(templatePath, 'utf8', function(err, template) {
			if (err) {
				return callback(err)
			}
			templates[templatePath] = hogan.compile(template);
			callback(null, templates[templatePath].render(content));
		})
	}
function compileAndRender(templatePath, content, callback) {
		if (templatePath in templates) {
			return callback(null, templates[templatePath].render(content));
		}
		fs.readFile(templatePath, 'utf8', function(err, template) {
			if (err) {
				return callback(err)
			}
			templates[templatePath] = hogan.compile(template);
			callback(null, templates[templatePath].render(content));
		})
	}
function compileAndRender ( templatePath , content , callback ) { if ( templatePath in templates ) { return callback ( null , templates [ templatePath ] . render ( content ) ) ; } fs . readFile ( templatePath , 'utf8' , function ( err , template ) { if ( err ) { return callback ( err ) } templates [ templatePath ] = hogan . compile ( template ) ; callback ( null , templates [ templatePath ] . render ( content ) ) ; } ) }
Render a given template with appropriate content. Use cached pre-compiled template if possible, and populate cache for new templates.  @param templatePath [String] path to rendered template, used as key in cache @param content [Object] object used to be rendered inside the template @param callback [Function] end processing callback, invoked with arguments: @option callback err [Error] an error object, or null if no error occured @option callback html [String] Html rendering for this template
Render a given template with appropriate content . Use cached pre - compiled template if possible and populate cache for new templates .