docs: function resolvePartials(template) {
  
          var keys = {};
          if (template.partials) {    // Hogan 3
              var p = template.partials;
              Object.keys(p).forEach(function(i) {
                  keys[ p[i].name ] = 1;
              });
          } else if (template.text) { // Hogan < 3
              Hogan.scan(template.text, hoganOptions.delimiters).forEach(function(token) {
                  if (token.tag === '>') {
                      keys[ token.n ] = 1;
                  }
              });
          }
  
          Object.keys(keys).forEach(function(key) {
              if (key in partials) return;
  
              if (typeof options.partials === 'object' && key in options.partials) {
                  template = options.partials[key];
              } else if (typeof settings.partials === 'object' && key in settings.partials) {
                  template = settings.partials[key];
              } else {
                  var path = view.lookup(key + view.ext);
                  template = fs.existsSync(path) ?
                      fcompile(path, hoganOptions, options.cache) : null;
              }
  
              if (template) {
  
                  if (template instanceof Hogan.Template) {
                  } else {
                      // FYI, Hogan.compile does its own caching
                      template = Hogan.compile(template, hoganOptions);
                  }
  
                  partials[key] = template;
                  resolvePartials(template);
              } else {
                  partials[key] = template;
              }
          });
      }