User:PerfektesChaos/js/WikiSyntaxTextMod/rC.js

/// PerfektesChaos/js/WikiSyntaxTextMod/rC.js /// 2019-01-01 PerfektesChaos@de.wikipedia /// Fingerprint:#0#2FEC6ED1# /// if(typeof mediaWiki!=="object"){ mw={config:false,libs:{WikiSyntaxTextMod:{} },log:function{"use strict";} };} (function(mw){ "use strict"; var version=7.11,sign="WikiSyntaxTextMod",sub="C",rls,self,WSTM; if(typeof mw.loader==="object"){ rls={}; self="user:PerfektesChaos/"+sign+"/"+sub; rls[self]="loading"; mw.loader.state(rls);} if(typeof mw.libs[sign]!=="object"){ mw.libs[sign]={};} WSTM=mw.libs[sign]; if(typeof WSTM.w!=="object"){ WSTM.w={};} if(typeof WSTM.w.chr!=="object"){ WSTM.w.chr={};} WSTM.w.chr.vsn=version; WSTM.w.chr.self=self; if(typeof WSTM.bb!=="object"){ WSTM.bb={};} if(typeof WSTM.debugging!=="object"){ WSTM.debugging={};} }(mw)); mw.libs.WikiSyntaxTextMod.bb.bbC=function(WSTM){ "use strict"; if(typeof(WSTM.util)!=="object"){ WSTM.util={};} if(typeof(WSTM.util.fiatObjects)!=="function"){ WSTM.util.fiatObjects=function(adult,activate,assign){ var elt,obj,s; if(typeof(adult[activate])!=="object"){ adult[activate]=(assign?assign:{});} if(assign){ obj=adult[activate]; for(s in assign){ elt=assign[s]; if(typeof(elt)==="object"){ WSTM.util.fiatObjects(obj,s,elt);}}} };} WSTM.util.fiatObjects(WSTM,"debugging",{loud:false}); }; mw.libs.WikiSyntaxTextMod.bb.bbC(mw.libs.WikiSyntaxTextMod); delete mw.libs.WikiSyntaxTextMod.bb.bbC; mw.libs.WikiSyntaxTextMod.bb.chr=function(WSTM){ "use strict"; WSTM.util.fiatObjects(WSTM,"w",{chr:{lang:{},re:{}} }); if(!WSTM.w.chr.detected){ WSTM.w.chr.detected={ampersand:false,exchange:0,nbHyphen:false,ordMasc:false,tab:false,tabEOL:false,white:false };} WSTM.w.chr.fallback=function(adjust){ var r=false; if(adjust>=8544){ r=((adjust>=8544&&adjust<=8575)||(adjust>=10005&&adjust<=10015)||(adjust>=12288&&adjust<=12301)||(adjust>=65279&&adjust<=65374));} return r; }; WSTM.w.chr.fashion=function(adjust,address){ var r=false,s=adjust,c,i,x; for(i=address;i>=0;i--){ c=s.charCodeAt(i); if(c>=this.detected.exchange){ if((c>=8544&&c<=8575)||(c>=12288&&c<=12301)||(c>=65281&&c<=65374)){ x=this.format(c,s,i); if(x!==c){ r=typeof(x); if(r==="number"){ s=WSTM.str.setChar(s,x,i); }else if(r==="string"){ s=WSTM.str.setString(s,i,1,x); }else{ s=r;} r=s;} }else if(c>=10005&&c<=10015){ switch(c){ case 10005: case 10006: c=215; break; case 10013: case 10014: case 10015: c=8224; break;} if(c<10000){ s=WSTM.str.setChar(s,c,i); r=s;}}}} return r; }; WSTM.w.chr.filter=function(all){ var d=false,l=false,s=all.source,c,i,k; for(i=s.length-1;i>=0;i--){ c=s.charCodeAt(i); if(c<128){ if(c<32){ switch(c){ case 10: if(s.charCodeAt(k+1)===10){ WSTM.w.encountered.indent=true;} for(k=i-1;k>=0;k--){ c=s.charCodeAt(k); if(c>32||c===10){ if(c===61){ k++; if(s.charCodeAt(k)===9){ k--;}} break; }else if(c===9){ this.detected.tabEOL=true;}} if(k<i-1){ this.detected.white=true; k++; s=WSTM.str.setString(s,k,i-k,""); i=k;} break; case 13: break; case 9: this.detected.tab=true; break; case 11: case 12: s=WSTM.str.setChar(s,10,i); l=true; break; default: s=WSTM.str.setChar(s,"",i); l=true; break;} }else if(c===38){ if(s.substr(i+1,5)!=="nbsp;"){ this.detected.ampersand=true;}} }else{ if(c<=160){ s=WSTM.str.setChar(s,"&#"+c+";",i); l=true; }else if(c<8193){ switch(c){ case 186: this.detected.ordMasc=true; break; case 847: c=this.form(c); s=WSTM.str.setChar(s,c,i); l=true; break;} }else if(c>8193&&c<8289){ switch(c){ case 8194: case 8195: case 8196: case 8197: case 8200: s=WSTM.str.setChar(s,32,i); l=true; break; case 8198: case 8201: s=WSTM.str.setChar(s,"&thinsp;",i); d=true; break; case 8239: s=WSTM.str.setChar(s,"&#8239;",i); d=true; break; case 8203: s=WSTM.str.setChar(s,"&#x200A;",i); d=true; break; case 8204: s=WSTM.str.setChar(s,"&zwnj;",i); d=true; break; case 8205: s=WSTM.str.setChar(s,"&zwj;",i); d=true; break; case 8209: this.detected.nbHyphen=true; break; case 8206: case 8207: case 8234: case 8235: case 8236: case 8237: case 8238: WSTM.w.encountered.bidichar=true; case 8202: case 8232: case 8233: case 8287: case 8288: c=this.form(c); s=WSTM.str.setChar(s,c,i); l=true; break;} }else if(c===8960){ s=WSTM.str.setChar(s,248,i); l=true; }else if((c>=57344&&c<=63743)||(c>=983040&&c<=1114111)){ s=WSTM.str.setChar(s,"&#"+c+";",i); l=true; }else if(this.fallback(c)){ if(this.detected.exchange){ if(this.detected.exchange>c){ this.detected.exchange=c;} }else{ this.detected.exchange=c;}}}} if(WSTM.warn.char){ this.fishing(s);} c=s.charCodeAt(0); while(c===10){ s=s.substr(1); c=s.charCodeAt(0); this.detected.white=true;} k=s.length-1; c=s.charCodeAt(k); while(c===10){ s=s.substr(0,k); k--; c=s.charCodeAt(k); this.detected.white=true;} this.whitespace=(this.detected.tab?" \n\t":" \n"); if(d){ this.detected.ampersand=true; all.learnt=true; }else if(l){ all.learnt=true;} all.source=s; }; WSTM.w.chr.fishing=function(analyse){ var wch=WSTM.warn.char,m=wch.length,max=0,min=4294967295,n=analyse.length,c,got,i,k; for(k=0;kmax){ max=c;}} for(i=0;i=min&&c<=max){ for(k=0;k<m;k++){ if(c===wch[k]){ if(!got){ got={};} if(typeof got[c]!=="number"){ got[c]=0;} got[c]++; break;}}}} if(got){ for(c in got){ WSTM.warn.found("char",got[c]+"&times; "+c);}} }; WSTM.w.chr.fixed=function(adjust){ var r=false; if(adjust&&adjust<65534){ r=adjust; switch(r){ case 8206: case 8207: WSTM.w.encountered.bidichar=true; case 34: case 38: case 39: case 60: case 62: case 160: case 710: case 732: case 8201: case 91: case 93: case 123: case 124: case 125: r=false; break; case 8203: case 8204: case 8205: r=0; break; case 8194: case 8195: r=32; break;}} return r; }; WSTM.w.chr.fixTab=function(adjust){ var r=false; if(adjust.indexOf("\t")>=0){ r=adjust.replace(/\t/g," ");} return r; }; WSTM.w.chr.flat=function(adjust,assign,alert){ var r; if(assign){ r=WSTM.str.charEntityHTML5single(adjust); if(alert&&WSTM.warn.entity&&WSTM.warn.entity.indexOf(adjust)>=0){ WSTM.warn.found("entity","&amp;"+adjust.substr(1));} }else{ r=WSTM.str.charEntityCode(adjust); if(alert&&WSTM.warn.entity&&WSTM.warn.entity.indexOf("#"+r)>=0){ WSTM.warn.found("entity","&amp;#"+r+";");}} if(r){ switch(r){ case 32: r="&#32;"; break; case 34: case 38: case 39: case 60: case 62: case 32: case 35: case 42: case 58: case 59: case 61: case 91: case 93: case 95: case 123: case 124: case 125: case 96: case 160: case 168: case 175: case 180: case 184: case 710: case 711: case 728: case 730: case 731: case 732: case 733: case 173: case 8201: case 8202: case 8209: case 8239: r=false; break; case 8194: case 8195: case 8196: case 8197: case 8200: r=32; break; case 8198: case 8201: r="&thinsp;"; break; case 8204: case 8205: r=false; break; case 8232: case 8233: case 847: case 8203: case 8287: case 8288: r=this.form(r); break; case 8206: case 8207: case 8234: case 8235: case 8236: case 8237: case 8238: r=this.form(r); WSTM.w.encountered.bidichar=true; break; case 8960: r=248; break; case 65279: r=""; break; default: if(r>=10240){ if(WSTM.w.chr.lang.cjk){ r=(r>=11904&&r<=65131); }else{ r=false;} }else if(r>8193){ r=this.form(r); }else if(r<160){ r=false;} break;}} if(r){ if(typeof(r)==="number"){ r=String.fromCharCode(r);} if(adjust===r){ r=false;}} return r; }; WSTM.w.chr.flip=function(all){ var got,i,s,shift; if(this.detected.ampersand){ this.re.fiat; if(WSTM.warn.entity){ s=""; for(i=0;i<WSTM.warn.entity.length;i++){ s=s+"&"+WSTM.warn.entity[i]+";";} WSTM.warn.entity=s;} if(WSTM.warn.char){ if(typeof WSTM.warn.entity!=="string"){ WSTM.warn.entity="";} for(i=0;i<WSTM.warn.char.length;i++){ WSTM.warn.entity=WSTM.warn.entity+"&#"+WSTM.warn.char[i]+";";}} got={i:0,k:0}; do{ got=all.find("&",got.i,got.k,true,false); if(got){ s=all.fetch(got.k,got.i); if(s){ shift=this.flipper(s); if(shift){ all.flip(got.k,got.i,s.length,shift);}} got.i=0; got.k++;} }while(got);} }; WSTM.w.chr.flipper=function(adjust){ var m=false,r=false,s=adjust,c,e,f,j,k,l; for(k=0;k<2;k++){ l=(k===1); r=this.re.entities[k]; r.lastIndex=0; do{ j=r.lastIndex; f=r.exec(s); if(f){ e=f[0]; if(e!==" "){ c=this.flat(e,l,false); if(typeof c==="string"){ m=true; j=f.index; s=s.substr(0,j)+c+s.substr(j+e.length); r.lastIndex=j+1;}}} }while(f);} return(m?s:false); }; WSTM.w.chr.flushChars=function(adjust){ var c,i,n,s; if(adjust.children){ n=adjust.children.length; for(i=0;i=0;i--){ c=s.charCodeAt(i); if(c>=WSTM.w.chr.detected.exchange){ s=WSTM.w.chr.fashion(s,i); n=true; break;}} if(n){ if(adjust.source!==s){ adjust.fresh(s);}}}}} }; WSTM.w.chr.flushEntities=function(adjust){ var c,e,f,i,j,k,l,m,n,s,r; if(adjust.children){ n=adjust.children.length; for(i=0;i=0){ this.re.fiat; for(k=0;k<2;k++){ l=(k===1); r=this.re.entities[k]; r.lastIndex=0; do{ j=r.lastIndex; f=r.exec(s); if(f){ e=f[0]; if(e!==" "){ c=this.flat(e,l,true); if(typeof c==="string"){ j=f.index; m=j+e.length; s=s.substr(0,j)+c+s.substr(m); r.lastIndex=j+1;}}} }while(f);}} if(m){ if(adjust.source!==s){ adjust.fresh(s);}}}}} }; WSTM.w.chr.form=function(adjust){ var c=adjust; switch(adjust){ case 8194: case 8195: case 8200: c=32; break; case 8206: WSTM.w.encountered.bidichar=true; c="&lrm;"; break; case 8207: WSTM.w.encountered.bidichar=true; c="&rlm;"; break; case 847: case 8196: case 8197: case 8198: case 8203: case 8232: case 8233: case 8234: case 8235: case 8236: case 8237: case 8238: c="&#x"+WSTM.str.hexcode(adjust,4,false)+";"; break; case 8202: c=""; break; case 8287: c="&#8239;"; break; case 8288: c=""; break; case 8960: c=248; break; default: if(this.fallback(c)){ if(this.detected.exchange){ if(this.detected.exchange>adjust){ this.detected.exchange=adjust;} }else{ this.detected.exchange=adjust;}}} return c; }; WSTM.w.chr.format=function(adjust,around,address){ var cb=0,cf=0,r=adjust,c,i,n; if(around){ n=around.length; if(address>0){ cb=around.charCodeAt(address-1); if(cb===59){ if(address>4){ i=around.lastIndexOf("&",address-2); if(i>=0){ c=around.substr(i,address-i); if(around.charCodeAt(i+1)===35){ c=WSTM.str.charEntityCode(c); }else{ c=WSTM.str.charEntityHTML5single(c); if(c){ c=this.fixed(c);}} if(c){ cb=c;}}}}} if(addressaddress){ c=around.substr(address+1,i-address); if(around.charCodeAt(address+2)===35){ c=WSTM.str.charEntityCode(c); }else{ c=WSTM.str.charEntityHTML5single(c); if(c){ c=this.fixed(c);}} if(c){ cf=c;}}}}}} if(cb!==32||(cf!==10&&cf!==32)){ if(adjust>=8544&&adjust<=8575){ if(cb<11904&&cf<11904){ switch(adjust){ case 8544: r=73; break; case 8545: r="II"; break; case 8546: r="III"; break; case 8547: r="IV"; break; case 8548: r=86; break; case 8549: r="VI"; break; case 8550: r="VII"; break; case 8551: r="VIII"; break; case 8552: r="IX"; break; case 8553: r=88; break; case 8554: r="XI"; break; case 8555: r="XII"; break; case 8556: r=76; break; case 8557: r=67; break; case 8558: r=68; break; case 8559: r=77; break; case 8560: r=105; break; case 8561: r="ii"; break; case 8562: r="iii"; break; case 8563: r="iv"; break; case 8564: r=118; break; case 8565: r="vi"; break; case 8566: r="vii"; break; case 8567: r="viii"; break; case 8568: r="ix"; break; case 8569: r=120; break; case 8570: r="xi"; break; case 8571: r="xii"; break; case 8572: r=108; break; case 8573: r=99; break; case 8574: r=100; break; case 8575: r=109; break;}} }else if(adjust===65279){ r="";}} return r; }; WSTM.w.chr.re.fiat=function{ var s0,s1; if(!this.entities){ s0="&#(x?[0-9A-Fa-f]+|[0-9]+);"; s1="&[A-Za-z]+[A-Za-z123]+;"; this.entities=[new RegExp(s0,"g"),new RegExp(s1,"g")];} }; }; mw.libs.WikiSyntaxTextMod.bb.chr(mw.libs.WikiSyntaxTextMod); delete mw.libs.WikiSyntaxTextMod.bb.chr; (function(WSTM){ "use strict"; var sub="C",self=WSTM.w.chr.self,version=WSTM.w.chr.vsn,rls; if(typeof WSTM.main!=="object"){ WSTM.main={};} if(!WSTM.main.bb){ WSTM.main.bb={};} WSTM.main.bb[sub]={load:true,vsn:version}; if(typeof WSTM.main.wait==="function"){ WSTM.main.wait(sub,version);} if(typeof mw.loader==="object"&&typeof mw.hook!=="undefined"){ rls={}; rls[self]="ready"; mw.loader.state(rls); mw.hook("WikiSyntaxTextMod/"+sub+".ready") .fire([sub,version]);} }(mw.libs.WikiSyntaxTextMod)); /// EOF WikiSyntaxTextMod/rC.js