123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- (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);
|