docs: function parseJavascript(content) {
      var _return = {},
        parts = content.split("\n"),
        keys = [
          "name",
          "namespace",
          "type",
          "description",
          "example",
          "param",
          "event",
          "return",
          "main",
          "dependency"
        ];
  
      for (var pi in parts) {
        var p = parts[pi];
  
        for (var ki in keys) {
          var key = keys[ki];
  
          if (p.indexOf("@"+key) > -1 && p.indexOf("@events") < 0) {
            var pset = p.split("@"+key),
            part = pset[ pset.length - 1 ].trim();
  
            // Split down params, events and returns
            if ( ["param","event","return"].indexOf(key) > -1 ) {
              var parray = [];
  
              if (key !== "return") {
                parray = part.split(" ", 1);
                parray.push( part.replace(parray[0]+" ", "") );
                part = {
                  "name": parray[0].trim()
                };
              } else {
                parray[0] = ''
                parray[1] = part;
                part = {};
              }
  
              if (parray[1]) {
                // 0 - all
                // 1 - type
                // 2 - default
                // 3 - description
  
                // Patterns: \[([^\]]*)\]|\<([^\]]*)\>|\"([^\]]*)\"
                var matches = parray[1].match(/\[([^\]]*)\]|\<([^\]]*)\>|\"([^\]]*)\"/g);
  
                for (var mi in matches) {
                  var match = matches[mi];
  
                  if (match.indexOf("[") === 0) {
                    part.type = match.replace("[", "").replace("]", "");
                  }
                  if (match.indexOf("<") === 0) {
                    part.default = match.replace("<", "").replace(">", "");
                  }
                  if (match.indexOf('"') === 0) {
                    part.description = match.replace(/"/g, "");
                  }
                }
              }
            }
  
            if (key === "param") {
              if (!_return.params) {
                _return["params"] = [];
              }
              _return["params"].push(part);
            } else if (key === "example") {
              if (!_return.examples) {
                _return["examples"] = [];
              }
              _return["examples"].push(part);
            } else if (key === "event") {
              if (!_return.events) {
                _return["events"] = [];
              }
              _return["events"].push(part);
            } else if (key === "main") {
              if (!_return.main) {
                _return["main"] = [];
              }
              _return["main"].push(part);
            } else if (key === "dependency") {
              if (!_return.dependencies) {
                _return["dependencies"] = [];
              }
              _return["dependencies"].push(part);
            } else {
              _return[key] = part;
            }
          }
        }
      }
  
      return _return;
    }