code: function(text,targets,is_touch) {
  
          var make_link = function(url, link_text, prefix) {
              if (!prefix) {
                  prefix = "";
              }
              var MAX_LINK_TEXT_LENGTH = 30;
              if (link_text && link_text.length > MAX_LINK_TEXT_LENGTH) {
                  link_text = link_text.substring(0,MAX_LINK_TEXT_LENGTH) + "\u2026"; // unicode ellipsis
              }
              return prefix + "<a class='tl-makelink' href='" + url + "' onclick='void(0)'>" + link_text + "</a>";
          }
  		// http://, https://, ftp://
  		var urlPattern = /\b(?:https?|ftp):\/\/([a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|])/gim;
  
  		// www. sans http:// or https://
  		var pseudoUrlPattern = /(^|[^\/>])(www\.[\S]+(\b|$))/gim;
  
  		// Email addresses
  		var emailAddressPattern = /([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)/gim;
  
  
  		return text
  			.replace(urlPattern, function(match, url_sans_protocol, offset, string) {
                  // Javascript doesn't support negative lookbehind assertions, so
                  // we need to handle risk of matching URLs in legit hrefs
                  if (offset > 0) {
                      var prechar = string[offset-1];
                      if (prechar == '"' || prechar == "'" || prechar == "=") {
                          return match;
                      }
                  }
                  return make_link(match, url_sans_protocol);
              })
  			.replace(pseudoUrlPattern, function(match, beforePseudo, pseudoUrl, offset, string) {
                  return make_link('http://' + pseudoUrl, pseudoUrl, beforePseudo);
              })
  			.replace(emailAddressPattern, function(match, email, offset, string) {
                  return make_link('mailto:' + email, email);
              });
  	}
docs: /*	* Turns plain text links into real links
  ==================================================