window.Rainbow=function(){function G(f){var d,j=f.getAttribute&&f.getAttribute("data-language")||0;if(!j){f=f.attributes;for(d=0;d<f.length;++d){if("data-language"===f[d].nodeName){return f[d].nodeValue}}}return j}function F(f){var d=G(f)||G(f.parentNode);if(!d){var j=/\blang(?:uage)?-(\w+)/;(f=f.className.match(j)||f.parentNode.className.match(j))&&(d=f[1])}return d}function u(f,d){for(var j in O[P]){j=parseInt(j,10);if(f==j&&d==O[P][j]?0:f<=j&&d>=O[P][j]){delete O[P][j],delete N[P][j]}if(f>=j&&f<O[P][j]||d>j&&d<O[P][j]){return !0}}return !1}function E(f,d){return'<span class="'+f.replace(/\./g," ")+(M?" "+M:"")+'">'+d+"</span>"}function i(t,s,r,n){var q=t.exec(r);if(q){++h;!s.name&&"string"==typeof s.matches[0]&&(s.name=s.matches[0],delete s.matches[0]);var j=q[0],p=q.index,v=q[0].length+p,o=function(){function l(){i(t,s,r,n)}h%100>0?l():setTimeout(l,0)};if(u(p,v)){o()}else{var d=g(s.matches),f=function(l,B,w){if(l>=B.length){w(j)}else{var A=q[B[l]];if(A){var y=s.matches[B[l]],z=y.language,x=y.name&&y.matches?y.matches:y,m=function(C,S,Q){var R;R=0;var D;for(D=1;D<B[l];++D){q[D]&&(R=R+q[D].length)}S=Q?E(Q,S):S;j=j.substr(0,R)+j.substr(R).replace(C,S);f(++l,B,w)};z?K(A,z,function(C){m(A,C)}):typeof y==="string"?m(A,A,y):e(A,x.length?x:[x],function(C){m(A,C,y.matches?y.name:0)})}else{f(++l,B,w)}}};f(0,d,function(l){s.name&&(l=E(s.name,l));if(!N[P]){N[P]={};O[P]={}}N[P][p]={replace:q[0],"with":l};O[P][p]=v;o()})}}else{n()}}function g(f){var d=[],j;for(j in f){f.hasOwnProperty(j)&&d.push(j)}return d.sort(function(m,l){return l-m})}function e(f,d,l){function j(m,n){n<m.length?i(m[n].pattern,m[n],f,function(){j(m,++n)}):k(f,function(o){delete N[P];delete O[P];--P;l(o)})}++P;j(d,0)}function k(f,d){function l(o,m,p,r){if(p<m.length){++c;var q=m[p],n=N[P][q],o=o.substr(0,q)+o.substr(q).replace(n.replace,n["with"]),q=function(){l(o,m,++p,r)};0<c%250?q():setTimeout(q,0)}else{r(o)}}var j=g(N[P]);l(f,j,0,d)}function K(j,f,n){var m=L[f]||[],l=L[b]||[],f=a[f]?m:m.concat(l);e(j.replace(/</g,"<").replace(/>/g,">").replace(/&(?![\w\#]+;)/g,"&"),f,n)}function J(j,f,n){if(f<j.length){var m=j[f],l=F(m);return !(-1<(" "+m.className+" ").indexOf(" rainbow "))&&l?(l=l.toLowerCase(),m.className+=m.className?" rainbow":"rainbow",K(m.innerHTML,l,function(d){m.innerHTML=d;N={};O={};H&&H(m,l);setTimeout(function(){J(j,++f,n)},0)})):J(j,++f,n)}n&&n()}function I(l,j){var l=l&&"function"==typeof l.getElementsByTagName?l:document,q=l.getElementsByTagName("pre"),p=l.getElementsByTagName("code"),o,n=[],m=[];for(o=0;o<q.length;++o){q[o].getElementsByTagName("code").length?q[o].innerHTML=q[o].innerHTML.replace(/^\s+/,"").replace(/\s+$/,""):n.push(q[o])}for(o=0;o<p.length;++o){m.push(p[o])}J(m.concat(n),0,j)}var N={},O={},L={},a={},P=0,b=0,h=0,c=0,M,H;return{extend:function(f,d,j){1==arguments.length&&(d=f,f=b);a[f]=j;L[f]=d.concat(L[f]||[])},b:function(d){H=d},a:function(d){M=d},color:function(f,d,j){if("string"==typeof f){return K(f,d,j)}if("function"==typeof f){return I(0,f)}I(f,d)}}}();document.addEventListener?document.addEventListener("DOMContentLoaded",Rainbow.color,!1):window.attachEvent("onload",Rainbow.color);Rainbow.onHighlight=Rainbow.b;Rainbow.addClass=Rainbow.a;Rainbow.extend("html",[{name:"source.php.embedded",matches:{2:{language:"php"}},pattern:/<\?=?(?!xml)(php)?([\s\S]*?)(\?>)/gm},{name:"source.css.embedded",matches:{"0":{language:"css"}},pattern:/<style(.*?)>([\s\S]*?)<\/style>/gm},{name:"source.js.embedded",matches:{"0":{language:"javascript"}},pattern:/<script(?! src)(.*?)>([\s\S]*?)<\/script>/gm},{name:"comment.html",pattern:/<\!--[\S\s]*?-->/g},{matches:{1:"support.tag.open",2:"support.tag.close"},pattern:/(<)|(\/?\??>)/g},{name:"support.tag",matches:{1:"support.tag",2:"support.tag.special",3:"support.tag-name"},pattern:/(<\??)(\/|\!?)(\w+)/g},{matches:{1:"support.attribute"},pattern:/([a-z-]+)(?=\=)/gi},{matches:{1:"support.operator",2:"string.quote",3:"string.value",4:"string.quote"},pattern:/(=)('|")(.*?)(\2)/g},{matches:{1:"support.operator",2:"support.value"},pattern:/(=)([a-zA-Z\-0-9]*)\b/g},{matches:{1:"support.attribute"},pattern:/\s(\w+)(?=\s|>)(?![\s\S]*<)/g}],!0);Rainbow.extend("css",[{name:"comment",pattern:/\/\*[\s\S]*?\*\//gm},{name:"constant.hex-color",pattern:/#([a-f0-9]{3}|[a-f0-9]{6})(?=;|\s|,|\))/gi},{matches:{1:"constant.numeric",2:"keyword.unit"},pattern:/(\d+)(px|em|cm|s|%)?/g},{name:"string",pattern:/('|")(.*?)\1/g},{name:"support.css-property",matches:{1:"support.vendor-prefix"},pattern:/(-o-|-moz-|-webkit-|-ms-)?[\w-]+(?=\s?:)(?!.*\{)/g},{matches:{1:[{name:"entity.name.sass",pattern:/&/g},{name:"direct-descendant",pattern:/>/g},{name:"entity.name.class",pattern:/\.[\w\-_]+/g},{name:"entity.name.id",pattern:/\#[\w\-_]+/g},{name:"entity.name.pseudo",pattern:/:[\w\-_]+/g},{name:"entity.name.tag",pattern:/\w+/g}]},pattern:/([\w\ ,:\.\#\&\;\-_]+)(?=.*\{)/g},{matches:{2:"support.vendor-prefix",3:"support.css-value"},pattern:/(:|,)\s*(-o-|-moz-|-webkit-|-ms-)?([a-zA-Z-]*)(?=\b)(?!.*\{)/g},{matches:{1:"support.tag.style",2:[{name:"string",pattern:/('|")(.*?)(\1)/g},{name:"entity.tag.style",pattern:/(\w+)/g}],3:"support.tag.style"},pattern:/(<\/?)(style.*?)(>)/g}],!0);
0 commit comments