You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							134 lines
						
					
					
						
							3.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							134 lines
						
					
					
						
							3.6 KiB
						
					
					
				| (function() { | |
|   var ffSupport, formats, getOrderedMatches, hasMatches, isFF, isIE, isOpera, isSafari, log, makeArray, operaSupport, safariSupport, stringToArgs, _log; | |
|   if (!(window.console && window.console.log)) { | |
|     return; | |
|   } | |
|   log = function() { | |
|     var args; | |
|     args = []; | |
|     makeArray(arguments).forEach(function(arg) { | |
|       if (typeof arg === 'string') { | |
|         return args = args.concat(stringToArgs(arg)); | |
|       } else { | |
|         return args.push(arg); | |
|       } | |
|     }); | |
|     return _log.apply(window, args); | |
|   }; | |
|   _log = function() { | |
|     return console.log.apply(console, makeArray(arguments)); | |
|   }; | |
|   makeArray = function(arrayLikeThing) { | |
|     return Array.prototype.slice.call(arrayLikeThing); | |
|   }; | |
|   formats = [ | |
|     { | |
|       regex: /\*([^\*]+)\*/, | |
|       replacer: function(m, p1) { | |
|         return "%c" + p1 + "%c"; | |
|       }, | |
|       styles: function() { | |
|         return ['font-style: italic', '']; | |
|       } | |
|     }, { | |
|       regex: /\_([^\_]+)\_/, | |
|       replacer: function(m, p1) { | |
|         return "%c" + p1 + "%c"; | |
|       }, | |
|       styles: function() { | |
|         return ['font-weight: bold', '']; | |
|       } | |
|     }, { | |
|       regex: /\`([^\`]+)\`/, | |
|       replacer: function(m, p1) { | |
|         return "%c" + p1 + "%c"; | |
|       }, | |
|       styles: function() { | |
|         return ['background: rgb(255, 255, 219); padding: 1px 5px; border: 1px solid rgba(0, 0, 0, 0.1)', '']; | |
|       } | |
|     }, { | |
|       regex: /\[c\=(?:\"|\')?((?:(?!(?:\"|\')\]).)*)(?:\"|\')?\]((?:(?!\[c\]).)*)\[c\]/, | |
|       replacer: function(m, p1, p2) { | |
|         return "%c" + p2 + "%c"; | |
|       }, | |
|       styles: function(match) { | |
|         return [match[1], '']; | |
|       } | |
|     } | |
|   ]; | |
|   hasMatches = function(str) { | |
|     var _hasMatches; | |
|     _hasMatches = false; | |
|     formats.forEach(function(format) { | |
|       if (format.regex.test(str)) { | |
|         return _hasMatches = true; | |
|       } | |
|     }); | |
|     return _hasMatches; | |
|   }; | |
|   getOrderedMatches = function(str) { | |
|     var matches; | |
|     matches = []; | |
|     formats.forEach(function(format) { | |
|       var match; | |
|       match = str.match(format.regex); | |
|       if (match) { | |
|         return matches.push({ | |
|           format: format, | |
|           match: match | |
|         }); | |
|       } | |
|     }); | |
|     return matches.sort(function(a, b) { | |
|       return a.match.index - b.match.index; | |
|     }); | |
|   }; | |
|   stringToArgs = function(str) { | |
|     var firstMatch, matches, styles; | |
|     styles = []; | |
|     while (hasMatches(str)) { | |
|       matches = getOrderedMatches(str); | |
|       firstMatch = matches[0]; | |
|       str = str.replace(firstMatch.format.regex, firstMatch.format.replacer); | |
|       styles = styles.concat(firstMatch.format.styles(firstMatch.match)); | |
|     } | |
|     return [str].concat(styles); | |
|   }; | |
|   isSafari = function() { | |
|     return /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor); | |
|   }; | |
|   isOpera = function() { | |
|     return /OPR/.test(navigator.userAgent) && /Opera/.test(navigator.vendor); | |
|   }; | |
|   isFF = function() { | |
|     return /Firefox/.test(navigator.userAgent); | |
|   }; | |
|   isIE = function() { | |
|     return /MSIE/.test(navigator.userAgent); | |
|   }; | |
|   safariSupport = function() { | |
|     var m; | |
|     m = navigator.userAgent.match(/AppleWebKit\/(\d+)\.(\d+)(\.|\+|\s)/); | |
|     if (!m) { | |
|       return false; | |
|     } | |
|     return 537.38 <= parseInt(m[1], 10) + (parseInt(m[2], 10) / 100); | |
|   }; | |
|   operaSupport = function() { | |
|     var m; | |
|     m = navigator.userAgent.match(/OPR\/(\d+)\./); | |
|     if (!m) { | |
|       return false; | |
|     } | |
|     return 15 <= parseInt(m[1], 10); | |
|   }; | |
|   ffSupport = function() { | |
|     return window.console.firebug || window.console.exception; | |
|   }; | |
|   if (isIE() || (isFF() && !ffSupport()) || (isOpera() && !operaSupport()) || (isSafari() && !safariSupport())) { | |
|     window.log = _log; | |
|   } else { | |
|     window.log = log; | |
|   } | |
|   window.log.l = _log; | |
| }).call(this); |