index.js
function renderTemplate(contents, data, filename) {
    if (!templateCache.hasOwnProperty(contents)) {
      var jadeOptions = merge.recursive({}, options.jadeOptions, {filename: filename});
      templateCache[contents] = options.jade.compile(contents, jadeOptions);
    }
    var locals = merge.recursive({}, data, {locals: locals});
    return templateCache[contents](data);
  }
function renderTemplate(contents, data, filename) {
    if (!templateCache.hasOwnProperty(contents)) {
      var jadeOptions = merge.recursive({}, options.jadeOptions, {filename: filename});
      templateCache[contents] = options.jade.compile(contents, jadeOptions);
    }
    var locals = merge.recursive({}, data, {locals: locals});
    return templateCache[contents](data);
  }
function renderTemplate ( contents , data , filename ) { if ( ! templateCache . hasOwnProperty ( contents ) ) { var jadeOptions = merge . recursive ( { } , options . jadeOptions , { filename : filename } ) ; templateCache [ contents ] = options . jade . compile ( contents , jadeOptions ) ; } var locals = merge . recursive ( { } , data , { locals : locals } ) ; return templateCache [ contents ] ( data ) ; }
render a template string with optional data
@param  {string} contents template
@param  {object} data     optional template data
@param  {object} filename optional template path for importing/mergeing
@return {string}          rendered template
render a template string with optional data