docs: function(descriptor, options) {
    var options = options  || {};
  
    // Extract tagName, defaults to 'div'
    var tagName = /^([a-zA-Z0-9]*)/.exec(descriptor);
    options.tag = tagName && tagName[1] ? tagName[1] : 'div';
  
    // Any occurence of #some_chars
    var id = /#([a-zA-Z0-9_]*)/.exec(descriptor);
    if (id && id[1]) options.id = id[1];
  
    // Any occurence of .some-chars
    // if (!options.class) {
    //   var re = new RegExp(/\.([a-zA-Z0-9_-]*)/g);
    //   var classes = [];
    //   var classMatch;
    //   while (classMatch = re.exec(descriptor)) {
    //     classes.push(classMatch[1]);
    //   }
    //   options.class = classes.join(' ');
    // }
  
    // Any occurence of .some-chars
    var matchClasses = new SRegExp(/\.([a-zA-Z0-9_-]*)/g);
    // options.class = options.class ? options.class+' ' : '';
    if (!options.class) {
      options.class = matchClasses.match(descriptor).map(function(m) {
        return m.match[1];
      }).join(' ');
    }
  
    return new ElementRenderer(options);
  }