User:PerfektesChaos/js/lintHint/r.js
Appearance
From Wikipedia, the free encyclopedia
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump.
This code will be executed when previewing this page.
This code will be executed when previewing this page.
This user script seems to have a documentation page at User:PerfektesChaos/js/lintHint/r.
/// User:PerfektesChaos/js/lintHint/r.js /// 2024年07月04日 PerfektesChaos@de.wikipedia /// Fingerprint:#0#11AC22BC# /// License:CC-by-sa/4.0 ///<nowiki> (function(mw,$){ "use strict"; varVersion=5.8,Signature="lintHint",HINT={cmodels:{"wikitext":true, "proofread-index":true, "proofread-page":true},doc:"en:User:PerfektesChaos/js/"+Signature,drop:false,errors:["bogus-image-options","deletable-table-tag","fostered","html5-misnesting","ignored-table-attr","inline-media-caption","large-tables","misc-tidy-replacement-issues","misnested-tag","missing-end-tag","missing-start-tag","mixed-content","multi-colon-escape","multiline-html-table-in-list","multiple-unclosed-formatting-tags","night-mode-unaware-background-color","obsolete-tag","pwrap-bug-workaround","self-closed-tag","stripped-tag","tidy-font-bug","tidy-whitespace-bug","unclosed-quotes-in-heading","wikilink-in-extlink"],idRev:0,indicators:".mw-indicators",last:true,later:false,launch:false,launched:false,layer:null,lazy:false,live:false,ltr:true,quiet:["large-tables","night-mode-unaware-background-color" ],selMain:"[role='main']",silent:false,source:false,spaces:false,using:["mediawiki.api","mediawiki.storage","mediawiki.util","user.options"],$body:false,$content:false,$main:false,$textarea:false,$widget:false},API={Api:false,errors:false,scream:false,server:"api/rest_v1/",scanner:"transform/wikitext/to/lint",swift:"page/lint"},BOX={bgc:"FFFF00",bgcErr:"FFE4E1",bgcOk:"ADFF2F",bgcRun:"C0C0C0",boc:"808080",fgc:"000000",fgcRun:"A0A0A0",swift:false,$box:false,$collapsed:false,$failure:false,$null:false,$other:false,$pagename:false,$swift:false,$tbody:false,$table:false,$top:false},CODMIRROR={cm:false},EDIT={layer:false,listen:false,live:false,selTextbox:"div[role='textbox']",selVEsrc:".ve-init-mw-desktopArticleTarget-uneditableContent",source:false,sourceVE:"&veaction=editsource",$source:false},GUIDER={last:false,live:false,reTrim:false,suitable:String.fromCharCode(0x2714),using:["jquery.textSelection","mediawiki.ui.button","mediawiki.ui.input"],$pagename:false},INFO={},LINTER={live:false},PREGO={app:false,live:false,maxage:604813,pars:[["last","boolean"],["later","boolean"],["launch","boolean"],["lazy","boolean"],["silent","string"],["spaces","string"]],signature:"preferencesGadgetOptions",site:"w:en",store:"User:PerfektesChaos/js/",sub:"/r.js"},REPOS={},TMPLXPAND={live:false},UPDATE={},WIKED={}; HINT.texts={ "desc":{"en":"Show LintErrors analysis live.", "de":"Zeige LintErrors-Analyse live.", "it":"Mostra analisi degli errori di Lint in diretta."}, "domain":{"en":"en.wikipedia.org", "de":"de.wikipedia.org"}, "howTo":{"en":"Fill balanced wikitext into first input area and press adjacent submit button, or enter page name into second input field (might be followed by revision ID).", "de":"Füge ausgeglichenen Wikitext in das obere Eingabefeld ein, oder einen Seitennamen in das untere (ggf. gefolgt von einer Versionsnummer), und betätige die jeweilige Schaltfläche.", "it":"Inserisci il wikitesto nella prima area di input e premi il tasto di invio adiacente, oppure scrivi il titolo della pagina nel secondo campo (potrebbe essere seguito dall’ID della revisione)."}, "mark":{"en":"select problem in source text", "de":"Problem im Quelltext selektieren", "it":"Seleziona un problema nel testo sorgente"}, "noPage":{"en":"Wikitext page not found", "de":"Wikitext-Seite nicht gefunden", "it":"Pagina di wikitesto non trovata"}, "other":{"en":"Future problems detected.", "de":"Zukünftige Probleme detektiert.", "it":"Futuri problemi individuati."}, "^suffix":{"en":"– linter error analysis support", "de":"– Unterstützung der Analyse von Linter-Fehlern", "it":"– Supporto per l’analisi degli errori di Lint"}, "^^last":{"en":"Analyze previous revisions, too.", "de":"Analysiere auch frühere Seitenversionen.", "it":"Analizza anche le revisioni precedenti."}, "^^launch":{"en":"Run analysis automatically in namespaces on visit rather than manually triggered by button.", "de":"Löse die Analyse automatisch beim Seitenbesuch in den Namensräumen aus, statt sie manuell über den angebotenen Knopf zu starten.", "it":"Esegui automaticamente l’analisi nei namespace all’accesso, piuttosto che avviandola manualmente tramite bottone."}, "^^lazy":{"en":"Suppress small label if no error detected.", "de":"Unterdrücke das kleine grüne Feld, falls bei einer Seitendarstellung kein Problem gefunden wurde.", "it":"Nascondi l’etichetta in assenza di errori rilevati."}, "^^spaces":{"en":"Space separated list of namespace numbers, for automatized analysis or - for none or * for all", "de":"Namensraum-Nummern für automatische Analyse, durch Leerzeichen getrennt, oder - für keine oder * für alle", "it":"Lista di namespace, in formato numerico separati da spazi, dove effettuare l’analisi. Usare - per la lista vuota e * per indicarli tutti."}, "^^silent":{"en":"Suppress these error types (space separated list), or - for all shown or * for auto default", "de":"Unterdrücke diese Fehlertypen (Leerzeichen-getrennte Liste), oder - für alle zeigen oder * für Vorgabe"} }; functionface(){ if(!HINT.$body){ HINT.$body=$("body"); HINT.ltr=($("html").attr("dir")!=="rtl");}} functionfair(action){ if(mw.config.get("skin")!=="minerva"){ if(action){ mw.loader.using(["jquery.tablesorter"],action); }else{ HINT.using.push("jquery.tablesorter");}}} functionfeatures(apply){ vari,live,s; if(typeofapply==="object"&&apply){ if(typeofapply.rooms==="object"&&apply.rooms&&typeofapply.rooms.length==="number"){ live=false; if(HINT.nsn>=0){ for(i=0;i<apply.rooms.length;i++){ if(apply.rooms[i]===HINT.nsn){ live=true; break;}}} }elseif(typeofapply.rooms==="string"&&apply.rooms==="*"){ live=(HINT.nsn>=0); }else{ live=false;} if(typeofapply.later==="boolean"){ HINT.later=apply.later;} if(typeofapply.launch==="boolean"){ HINT.launch=apply.launch;} if(typeofapply.lazy==="boolean"){ HINT.lazy=apply.lazy; if(HINT.lazy){ BOX.flat();}} if(live&&!HINT.last){ live=false; if(typeofapply.oldid==="boolean"&&apply.oldid){ live=true;}} if(live&&!HINT.live){ HINT.live=true; if(HINT.launch&&!HINT.launched){ mw.loader.using(HINT.using,API.full); }else{ mw.loader.using(HINT.using,BOX.feed);} }elseif(HINT.live&&!live){ BOX.flat();} if(typeofapply.quiet==="object"&&apply.quiet&&typeofapply.quiet.length==="number"){ HINT.drop=[]; for(i=0;i<apply.quiet.length;i++){ s=apply.quiet[i]; if(typeofs==="string"){ s=s.trim(); if(s){ HINT.drop.push(s);}}} if(HINT.drop.length>0){ HINT.silent=HINT.drop.join(" "); }else{ HINT.silent="-";}}}} functionfirst(){ vari,later,listen,live,re,rls,s; HINT.signature="ext.gadget."+Signature; if(mw.loader.getState(HINT.signature)!=="ready"){ rls={}; rls[HINT.signature]="ready"; mw.loader.state(rls); HINT.selector=Signature.toLowerCase(); switch(mw.config.get("wgAction")){ case"view": HINT.nsn=mw.config.get("wgNamespaceNumber"); switch(HINT.nsn){ case-1: s=mw.config.get("wgCanonicalSpecialPageName"); switch(s){ case"Blankpage": s=mw.config.get("wgTitle"); i=s.indexOf("/"); if(i>1){ switch(s.substr(i+1)){ caseSignature: GUIDER.first(); listen=true; break; casePREGO.signature: PREGO.live=true; PREGO.fire(); break;}} break; case"ExpandTemplates": PREGO.fire(); EDIT.live=true; EDIT.selector="textarea#output"; fair(TMPLXPAND.first); break; case"Info": $(INFO.first); break; case"LintErrors": LINTER.live=true; PREGO.fire(); fair(LINTER.first); break;} break; case102: case104: case106: case108: case110: case112: s=mw.config.get("wgPageContentModel"); if(typeofHINT.cmodels[s]==="boolean"){ HINT.source=s;} default: HINT.idRev=mw.config.get("wgRevisionId"); s=window.location.search; if(HINT.idRev<=0){ live=false; }elseif(s){ re="\\b(diff|history|printable)="; re=newRegExp(re); live=!re.test(s); if(live){ if(s.indexOf("&oldid=")>0){ if(mw.config.get("wgCurRevisionId")!==HINT.idRev){ HINT.last=false; HINT.live=false;} }elseif(s.indexOf("&lintid=")>0){ HINT.launch=true;} if(s.indexOf(EDIT.sourceVE)>0){ later=true; EDIT.layer=true; EDIT.live=true; EDIT.selector=EDIT.selTextbox;}} }else{ live=true;}} break; case"edit": case"submit": EDIT.live=true; HINT.nsn=mw.config.get("wgNamespaceNumber"); HINT.using.push("jquery.textSelection"); live=true; if(HINT.nsn>=100){ s=mw.config.get("wgPageContentModel"); if(s==="proofread-page"){ HINT.source=s;}} break; case"info": $(INFO.first); break;} if(live){ if(!HINT.source){ HINT.source=mw.config.get("wgPageContentModel"); live=(HINT.source==="wikitext");} listen=live;} if(listen){ mw.hook(Signature+".config").add(features);} if(live){ if(later){ mw.loader.using(HINT.using,EDIT.fading); }else{ fair(); PREGO.fire();}} HINT.pub={doc:"[["+HINT.doc+"]]",type:Signature,vsn:Version}; mw.hook(Signature+".ready").fire(HINT.pub);}} API.fault=function(jqXHR,textStatus,errorThrown){ if(textStatus){ switch(typeoftextStatus){ case"object": if(typeoftextStatus.textStatus==="string"){ API.scream=textStatus.textStatus; }else{ API.scream="";} if(typeoftextStatus.exception==="string"&&textStatus.exception){ API.scream=API.scream+" ("+textStatus.exception+")";} break; case"string": API.scream=textStatus; break;}} if(errorThrown){ if(API.scream){ API.scream=API.scream+" -- Error: ";} API.scream=API.scream+errorThrown;} if(!API.scream){ API.scream="???";} if(typeofwindow.console==="object"&&typeofwindow.console.log==="function"){ window.console.log(Signature+" * "+API.scream); if(typeoftextStatus==="object"&&textStatus&&typeofwindow.console.dir==="function"){ window.console.dir(textStatus);}} API.errors=false; mw.hook("wikipage.content").add(BOX.fault); }; API.fine=function(arrived){ vare,i,s; API.scream=false; API.errors=false; if(typeofarrived==="object"&&arrived&&typeofarrived.length==="number"&&arrived.length){ if(HINT.quiet){ for(i=0;i<arrived.length;i++){ e=arrived[i]; if($.inArray(e.type,HINT.quiet)<0){ API.errors=API.errors||[]; API.errors.push(e);}} }else{ API.errors=arrived;}} s=(API.errors?"fill":"flat"); mw.hook("wikipage.content").add(BOX[s]); }; API.fire=function(ask){ varlocal=(typeofask==="string"); if(typeofAPI.query!=="object"){ API.query={ dataType:"json" }; if(local){ API.first(); API.query.type="POST"; API.query.url=API.site+API.server+API.scanner;}} if(local){ API.query.data={wikitext:ask};} $.ajax(API.query).done(API.fine).fail(API.fault); }; API.first=function(){ if(!API.Api){ API.Api=newmw.Api();} if(typeofAPI.site!=="string"){ API.site=window.location.protocol+"//"+window.location.hostname+"/";} }; API.full=function(access,actual){ varidRev=actual,subject=access/*,f*/; HINT.launched=true; if(typeofsubject==="string"){ subject=subject.trim(); }else{ if(!API.single){ API.single=mw.config.get("wgPageName");} subject=API.single; if(!HINT.idRev){ HINT.idRev=mw.config.get("wgRevisionId");} idRev=HINT.idRev;} if(typeofAPI.page!=="object"){ API.first(); API.page={/*beforeSend:f,*/ dataType:"json" }; API.solver=API.site+API.server+API.swift+"/";} if(subject.indexOf(" ")>0){ if(typeofAPI.reSpace!=="object"){ API.reSpace=newRegExp(" +","g");} subject=subject.replace(API.reSpace,"_");} API.page.url=API.solver+encodeURIComponent(subject); if(idRev){ API.page.url=API.page.url+"/"+idRev;} $.ajax(API.page).done(API.fine).fail(API.fault); }; BOX.facet=function($activate){ if($activate){ $activate.css({"display":"block", "float":(HINT.ltr?"right":"left")}); BOX.$box.append($activate);} }; BOX.factory=function($area){ var$a,$e; if(HINT.live){ BOX.first($area); if(BOX.$box){ if(BOX.$failure){ BOX.$failure.hide();} BOX.$box.show(); }else{ face(); BOX.$box=$("<div>"); $e=$("<div>"); if(HINT.nsn<0){ $a=$("<span>"); }else{ $a=$("<a>"); $a.attr({href:"/wiki/Special:Blankpage/"+Signature,target:Signature});} $a.css({"font-weight":"bold", "font-size":"larger"}).text(Signature+"@PerfektesChaos"); $e.append($a).css({"float":(HINT.ltr?"left":"right")}); BOX.$box.append($e).addClass(HINT.selector+"-box").attr({id:HINT.selector,role:"alert"}).css({"background-color":"#"+BOX.bgc, "border-color":"#"+BOX.boc, "border-style":"solid", "border-width":"1px", "color":"#"+BOX.fgc, "margin-bottom":"1em", "padding":"0.5em", "pointer-events":"all"}); $e=$("<button>"); $e.click(BOX.flip).css({"color":"#FF0000", "cursor":"pointer", "display":"block", "float":(HINT.ltr?"right":"left"), "font-weight":"bolder", "pointer-events":"all"}).css("margin-"+(HINT.ltr?"right":"left"), "6px").text("X"); BOX.$box.append($e); BOX.focus(BOX.$box); if(!GUIDER.live){ mw.hook(PREGO.signature+".$button").fire(BOX.facet,Signature);}} }else{ BOX.flat();} BOX.firing(Version,false); }; BOX.fault=function($area){ BOX.flat(); BOX.factory($area); if(API.scream&&BOX.$box){ if(BOX.$table){ BOX.$table.hide();} if(!BOX.$failure){ BOX.$failure=$("<div>"); BOX.$failure.css({"clear":"both", "color":"#FF0000", "font-weight":"bold"}); BOX.$box.append(BOX.$failure);} BOX.$failure.text(API.scream).show();} GUIDER.fine(false); }; BOX.feed=function(){ UPDATE.fetch(); if(HINT.launch&&!HINT.launched&&!EDIT.live){ API.full(); }else{ API.errors=true; mw.hook("wikipage.content").add(BOX.flip);} }; BOX.fill=function($area){ vari,req,$th,$thead,$tr; BOX.factory($area); if(BOX.$collapsed&&!HINT.$widget){ BOX.$collapsed.hide();} if(BOX.$box){ if(BOX.$table){ if(HINT.$textarea){ if(GUIDER.last){ BOX.$swift.hide(); }else{ BOX.$swift.show();}} BOX.$tbody.empty(); BOX.filler(); }else{ BOX.$table=$("<table>"); $thead=$("<thead>"); if(HINT.nsn<0){ BOX.$pagename=$("<caption>"); BOX.$pagename.css({"font-weight":"normal", "white-space":"nowrap"}); BOX.$table.append(BOX.$pagename);} $tr=$("<tr>"); $th=$("<th>"); $th.text("lint"); $tr.append($th); $th=$("<th>"); $th.text("+"); $tr.append($th); if(HINT.$textarea){ BOX.$swift=$("<th>"); BOX.$swift.data("sort-type","number").text("⇓"); mw.hook(PREGO.signature+".ready").add(BOX.flag); if(GUIDER.last){ BOX.$swift.hide();} $tr.append(BOX.$swift);} $thead.append($tr); BOX.$tbody=$("<tbody>"); BOX.$table.addClass("wikitable "+HINT.selector+"-table").attr({id:HINT.selector+"-table"}) .append($thead,BOX.$tbody).css({"clear":"both", "overflow":"scroll"}); if(HINT.errors.length>1||HINT.nsn<0){ BOX.$table.addClass("sortable");} BOX.$box.append(BOX.$table); req=[]; for(i=0;i<HINT.errors.length;i++){ req.push("linter-category-"+HINT.errors[i]);} if(!API.Api){ API.Api=newmw.Api();} API.Api.loadMessagesIfMissing(req).done(BOX.filler).fail(API.fault);} GUIDER.fine(false);} }; BOX.filler=function(){ varn=0,e,i,k,loc,par,s,$e,$e2,$e3,$td,$tr; for(i=0;i<API.errors.length;i++){ e=API.errors[i]; s="linter-category-"+e.type; if(mw.messages.exists(s)){ s=mw.message(s).text(); }else{ UPDATE.feed(e.type); if(HINT.later){ s=e.type; }else{ s=false;}} if(s){ $tr=$("<tr>"); $tr.addClass(HINT.selector+"-"+e.type); $td=$("<td>"); $e=$("<a>"); $e.attr({href:"/wiki/Special:LintErrors/"+e.type,target:Signature+"SP",title:"Special:LintErrors/"+e.type}) .text(s); $td.append($e).css({"background-color":"#"+BOX.bgcErr}); $tr.append($td); $td=$("<td>"); $td.css({"background-color":"#FFFFFF"}); if(typeofe.params==="object"){ par=e.params; if(typeofpar.name==="string"){ $td.text(par.name); }elseif(typeofpar.subtype==="string"){ $td.text(par.subtype); }elseif(typeofpar.root==="string"&&typeofpar.child==="string"){ $e=$("<code>"); $e.text(par.root); $e2=$("<span>"); $e2.css({"padding-left":"1em", "padding-right":"1em"}).html(">"); $e3=$("<code>"); $e3.text(par.child); $td.append($e,$e2,$e3).css({"white-space":"nowrap"}); }elseif(typeofpar.items==="object"&&typeofpar.items.length==="number"){ for(k=0;k<par.items.length;k++){ s=par.items[k]; if(s.length>50){ $e=$("<span>"); }else{ $e=$("<code>"); $e.css({"margin-right":"6px", "white-space":"nowrap"});} $e.text(s); $td.append($e);}}} $tr.append($td); if(HINT.$textarea&&!GUIDER.last&&typeofe.dsr==="object"&&e.dsr&&typeofe.dsr[0]==="number"&&typeofe.dsr[1]==="number"){ $td=$("<td>"); $td.click(BOX.find).css({"background-color":"#FFFFFF"}).data("range",e.dsr) .data("sort-value",i).attr({"data-beg":""+e.dsr[0], "data-end":""+e.dsr[1], "data-type":e.type}).text(" ↓ "); if(typeofBOX.swift==="string"){ $td.attr({title:BOX.swift});} $tr.append($td); loc=true;} BOX.$tbody.append($tr); n++;}} if(n){ if(BOX.$other){ BOX.$other.hide();} if(n>1&&typeofBOX.$table.tablesorter==="function"){ BOX.$table.tablesorter();} BOX.$table.show(); if(loc){ mw.hook(Signature+".table-range").fire(BOX.$table);} }else{ BOX.$table.hide(); if(BOX.$other){ BOX.$other.show(); }else{ if(PREGO.app){ BOX.future(); }else{ mw.hook(PREGO.signature+".ready").add(BOX.future);}}} }; BOX.find=function(event){ var$item=$(event.target),range=$item.data("range"); HINT.$textarea.focus().textSelection("setSelection",{start:range[0],end:range[1]}); }; BOX.fine=function(){ if(BOX.$collapsed&&!API.errors){ BOX.firing("+"); BOX.$collapsed.addClass(HINT.selector+"-fine").css({"background-color":"#"+BOX.bgcOk});} }; BOX.firing=function(about,active,attach){ varsignal; if(BOX.$collapsed){ if(active){ BOX.$collapsed.click(BOX.full).css({"color":"#"+BOX.fgc}); signal="pointer"; }else{ BOX.$collapsed.css({"background-color":"#"+BOX.bgcRun, "color":"#"+BOX.fgcRun }).off("click",BOX.full); signal="default";} BOX.$collapsed.attr({"aria-disabled":!active, "title":about}).css({"cursor":attach||signal}) .removeClass([HINT.selector+"-fine",HINT.selector+"-progress"]).show();} }; BOX.first=function($area){ var$main,$top; if($area){ HINT.$content=$area;} if(!HINT.$main){ $top=$(HINT.selMain); switch($top.length){ case0: if($area){ HINT.$main=HINT.$content;} break; case1: $main=$top; break; default: $main=$top.eq(0);} if($main){ HINT.$main=$main.children().eq(0); if(EDIT.layer&&!$main.find(EDIT.selVEsrc).length){ EDIT.layer=false; EDIT.live=false;}}} }; BOX.flag=function(application){ if(application){ PREGO.app=application;} BOX.swift=PREGO.app.translation(HINT.texts.mark); BOX.$swift.attr({title:BOX.swift}); }; BOX.flat=function($area,alive){ BOX.first($area); if(BOX.$box){ BOX.$box.hide();} if(API.errors){ BOX.firing("?"); }else{ BOX.fine();} if(EDIT.live){ if(!alive){ BOX.flip();} }elseif(!API.errors&&!API.scream&&HINT.live&&GUIDER.live){ GUIDER.fine(true);} }; BOX.flip=function($area){ BOX.first($area); face(); BOX.flat($area,true); if(!GUIDER.live){ if(BOX.$collapsed){ BOX.$collapsed.show(); }else{ BOX.$collapsed=$("<div>"); BOX.$collapsed.addClass(HINT.selector+"-collapsed").attr({id:HINT.selector+"-collapsed",role:"button"}).css({/*"clear":(HINT.ltr?"right": "left"),*/ "padding-left":"2px", "padding-right":"2px", "padding-top":"2px", "pointer-events":"all"}).text(Signature); BOX.focus(BOX.$collapsed,true,true);} BOX.firing(Version,true); BOX.$collapsed.css({"background-color":"#"+BOX.bgc});} if(TMPLXPAND.live&&!EDIT.$source){ EDIT.fetch();} if(EDIT.live&&!API.errors&&!TMPLXPAND.live){ EDIT.fine();} if(GUIDER.$pagename){ GUIDER.$pagename.hide();} }; BOX.focus=function($apply,another,around){ varlearn,light,s,$e; $apply.addClass("noprint"); if(another){ if(HINT.$widget===false){ HINT.$widget=$(HINT.indicators); switch(HINT.$widget.length){ case0: HINT.$widget=null; break; case1: break; default: HINT.$widget=HINT.$widget.eq(0);} learn=true;} if(HINT.$widget){ $apply.css({"display":"inline-block", "line-height":"1.2em", "margin-left":"3px", "margin-right":"3px", "padding":"1px"}); HINT.$widget.append($apply); light=true; }else{ $apply.css({"float":(HINT.ltr?"right":"left")});}} if(!light){ if(!BOX.$top){ BOX.$top=$("<div>"); BOX.$top.addClass("noprint "+HINT.selector+"-top").attr({id:HINT.selector+"-top"}) .css({"clear":"both", "width":"100%"}); $e=$("<div>"); $e.css({"clear":"both"}); HINT.$main.before(BOX.$top,$e); learn=true;} if(around){ s="#E0E0E0 #E0E0E0 #707070 #707070"; }else{ s="transparent";} $apply.css({"border-color":s, "border-style":"solid", "border-width":"2px", "margin-bottom":"3px"}); BOX.$top.prepend($apply);} if(learn&&window.document.location.hash){ window.document.location=window.document.location.href;} }; BOX.full=function(){ varidRev; if(HINT.live){ if(BOX.$box){ if(EDIT.live){ API.errors=false; }elseif(HINT.$widget){ BOX.firing("?");} if(API.errors){ BOX.$box.show(); }else{ BOX.$box.hide();}} BOX.firing("...",false,"progress"); BOX.$collapsed.addClass(HINT.selector+"-progress"); if(!GUIDER.live){ if(!API.single){ API.single=mw.config.get("wgPageName");} if(HINT.idRev&&HINT.idRev>0){ idRev=HINT.idRev;}} if(EDIT.live){ EDIT.fire(); }else{ HINT.launch=true; API.full(API.single,idRev); BOX.firing("?",false,"progress");} }elseif(HINT.$widget){ BOX.firing("?",false,"progress");} }; BOX.future=function(application){ var$e; if(application){ PREGO.app=application;} if(PREGO.app){ $e=$("<span>"); $e.css({"border-color":"#"+BOX.boc, "border-style":"solid", "border-width":"1px", "padding":"0.4em"}).html(PREGO.app.translation(HINT.texts.other)); BOX.$other=$("<div>"); BOX.$other.addClass(HINT.selector+"-future").attr({id:HINT.selector+"-future"}) .css({"clear":"both", "padding-bottom":"1em", "padding-top":"1em"}).append($e); BOX.$box.append(BOX.$other);} }; CODMIRROR.fetch=function(){ varr; if(CODMIRROR.first()){ r=CODMIRROR.cm.doc.getValue();} returnr; }; CODMIRROR.first=function(){ varr,uo; if(!CODMIRROR.cm&&typeofwindow.CodeMirror==="function"&&typeofwindow.CodeMirror.doc==="object"){ CODMIRROR.cm=window.CodeMirror;} if(CODMIRROR.cm){ uo=mw.user.options.get("usecodemirror"); if(typeofuo==="number"&&uo>0){ r=CODMIRROR.cm;}} returnr; }; EDIT.fading=function(){ vardom; BOX.first(); if(EDIT.layer){ dom=mw.util.addPortletLink("p-tb","#",Signature,HINT.selector+"-portlet",Version); HINT.$widget=$(dom); if(dom.nodeName.toLowerCase()!=="li"){ HINT.$widget=HINT.$widget.parent();} HINT.$widget.empty();} fair(); PREGO.fire(); }; EDIT.fetch=function(){ varr,$div; if(!EDIT.$source){ if(EDIT.layer){ EDIT.selector=EDIT.selTextbox; }elseif(!EDIT.selector){ switch(HINT.source){ case"wikitext": case"proofread-page": EDIT.selector="#wpTextbox1"; break;}} if(EDIT.selector){ if(EDIT.layer){ $div=HINT.$main; }else{ $div=HINT.$content;} EDIT.$source=$div.find(EDIT.selector); if(EDIT.$source.length){ if(EDIT.$source.find(":hidden").length){ EDIT.live=false;} }else{ EDIT.live=false;} }else{ EDIT.live=false;}} if(EDIT.live&&EDIT.$source&&EDIT.$source.length){ if(EDIT.layer){ r=EDIT.$source.text(); }else{ HINT.$textarea=EDIT.$source; r=EDIT.$source.val();}} returnr; }; EDIT.fine=function(){ if(EDIT.$source){ EDIT.listen=true; EDIT.$source.focusin(EDIT.focus);} BOX.fine(); }; EDIT.fire=function(){ varsource; if(!TMPLXPAND.live){ source=CODMIRROR.fetch(); if(!source){ WIKED.fetch();}} if(!source){ source=EDIT.fetch();} if(source){ EDIT.listen=false; API.fire(source);} }; EDIT.focus=function(){ if(EDIT.listen){ BOX.firing(Version,true); BOX.$collapsed.css({"background-color":"#"+BOX.bgc}); EDIT.listen=false;} }; LINTER.fire=function(){ LINTER.live=true; mw.hook("wikipage.content").add(LINTER.form); }; LINTER.first=function(){ if(mw.config.get("wgTitle").indexOf("/")>0&&!LINTER.live){ fair(LINTER.fire);} }; LINTER.form=function($area){ var$table=$area.find(".mw-datatable, .TablePager"); if($table.length){ if(typeof$table.tablesorter==="function"){ $table.tablesorter();}} }; GUIDER.facet=function($activate){ if($activate){ $activate.css({"float":(HINT.ltr?"right":"left"), "margin-top":"1em"}); GUIDER.$desc.before($activate);} }; GUIDER.figure=function(){ vars=GUIDER.$rev.val().trim(); if(!GUIDER.reNaN){ GUIDER.reNaN=newRegExp("[^0-9]","g");} s=s.replace(GUIDER.reNaN,""); GUIDER.$rev.val(s); }; GUIDER.filled=function(){ vars=GUIDER.$input.val().trim(); GUIDER.$rev.attr({disabled:(s?false:true)}); }; GUIDER.find=function(){ vars=GUIDER.$input.val().trim(); GUIDER.$input.val(s); GUIDER.fired(); GUIDER.last=true; if(s){ API.single=s; API.full(s,GUIDER.$rev.val());} GUIDER.$startPage.css({"cursor":"progress"}); }; GUIDER.fine=function(action){ varlapsus,$e; if(GUIDER.live){ lapsus=(action!==true); if((!API.single||lapsus)&&GUIDER.$pagename){ GUIDER.$pagename.hide();} if(lapsus){ GUIDER.$okay.hide(); GUIDER.$textarea.css({"background-color":"transparent"}).off("focusin",GUIDER.fine); GUIDER.$input.off("focusin",GUIDER.fine); }else{ if(API.single){ $e=GUIDER.$pagename.children(); if(!$e.length){ $e=$("<a>"); $e.attr({target:"_blank"}); GUIDER.$pagename.append($e);} $e.attr({href:mw.util.getUrl(API.single)}).text(API.single); GUIDER.$pagename.show(); }else{ GUIDER.$okay.show(); GUIDER.$textarea.css({"background-color": "#"+BOX.bgcOk}).focusin(GUIDER.fine); GUIDER.$input.focusin(GUIDER.fine);}} GUIDER.$startText.css({"cursor":"pointer"}); GUIDER.$startPage.css({"cursor":"pointer"});} }; GUIDER.finish=function(application){ var$e=$("<div>"); PREGO.app=application; GUIDER.$desc.html(PREGO.app.translation(HINT.texts.desc)); $e.css({"clear":"both", "margin-top":"8em"}).html(PREGO.app.translation(HINT.texts.howTo)); HINT.$content.append($e); $e=$("<a>"); $e.attr({href:"https://"+PREGO.app.translation(HINT.texts.domain)+"/wiki/User:PerfektesChaos/js/"+Signature,target:Signature}).text(GUIDER.$doc.text()); GUIDER.$doc.text("").append($e); }; GUIDER.fire=function(){ vars=GUIDER.$textarea.val(); GUIDER.fired(); GUIDER.last=false; if(!GUIDER.reTrim.test(s)){ API.single=false; API.fire(s); HINT.launched=true;} GUIDER.$startText.css({"cursor":"progress"}); }; GUIDER.fired=function(){ GUIDER.flat(); if(!GUIDER.reTrim){ GUIDER.reTrim=newRegExp("^\\s*$");} }; GUIDER.first=function(){ vari; PREGO.fire(); for(i=0;i<GUIDER.using.length;i++){ HINT.using.push(GUIDER.using[i]);} fair(); mw.loader.load(HINT.using); HINT.live=true; GUIDER.live=true; mw.hook("wikipage.content").add(GUIDER.furnish); }; GUIDER.flat=function(){ if(BOX.$box){ BOX.$box.hide();} GUIDER.fine(false); }; GUIDER.foreign=function(){ varreq=["general-form-reset","go"],i; if(!API.Api){ API.Api=newmw.Api();} UPDATE.fetch(); for(i=0;i<HINT.errors.length;i++){ req.push("linter-category-"+HINT.errors[i]);} API.Api.loadMessagesIfMissing(req).done(GUIDER.form).fail(API.fault); }; GUIDER.form=function(){ varsubmit=mw.message("go").text(),$div=$("<div>"),$x=$("<span>"),$b; $x.css({"color":"#FF0000", "font-weight":"bolder"}).text("X"); GUIDER.$startText=$("<span>"); GUIDER.$startText.addClass("mw-ui-button mw-ui-progressive").click(GUIDER.fire).css({"color":"#FFFFFF"}) .text(submit); GUIDER.$formText.append(GUIDER.$startText); GUIDER.$okay=$("<span>"); GUIDER.$okay.css({"background-color":"#"+BOX.bgcOk, "margin-left":"1em", "margin-right":"1em", "padding":"0.2em 0.5em"}).hide().text(GUIDER.suitable); GUIDER.$formText.append(GUIDER.$okay); $b=$("<input>"); $b.addClass("mw-ui-button").append($x).attr({type:"reset"}) .click(GUIDER.flat).css({"display":"block", "float":(HINT.ltr?"right":"left")}); GUIDER.$formText.append($b); $div.css({"clear":"both"}); GUIDER.$formPage.append($div); $b=$("<input>"); $b.addClass("mw-ui-button").append($x.clone()).attr({type:"reset"}) .click(GUIDER.flat).click(GUIDER.filled).css({"float":(HINT.ltr?"right":"left")}); GUIDER.$formPage.append($b); GUIDER.$startPage=$("<span>"); GUIDER.$startPage.addClass("mw-ui-button mw-ui-progressive").click(GUIDER.find).css({"color":"#FFFFFF"}) .text(submit); GUIDER.$formPage.append(GUIDER.$startPage); mw.hook(PREGO.signature+".ready").add(GUIDER.finish); }; GUIDER.furnish=function($area){ var$v=$("head"),$e=$v.find("title"); $e.remove(); $e=$("<title>"); $e.text(Signature); $v.prepend($e); HINT.$content=$area; HINT.$content.empty(); face(); $v=HINT.$body.find("#firstHeading,#section_0"); if(!$v.length){ $v=$("h1");} $v.eq(0).text(Signature); $v=$("<div>"); $v.css({"clear":"both"}); GUIDER.$doc=$("<span>"); GUIDER.$doc.text(Signature+"@PerfektesChaos"); $e=$("<span>"); $e.css({"font-size":"smaller"}).css("margin-"+(HINT.ltr?"left":"right"),"2em").text(Version); $v.append(GUIDER.$doc,$e); GUIDER.$desc=$("<div>"); GUIDER.$desc.css({"font-size":"111%"}).text(" "); $v.append($v,GUIDER.$desc); HINT.$content.append($v); GUIDER.$formText=$("<form>"); GUIDER.$textarea=$("<textarea>"); GUIDER.$textarea.addClass("mw-ui-input").attr({name:"wikitext"}) .css({"background-color":"transparent", "margin-top":"2em", "max-width":"100%", "width":"100%"}); GUIDER.$formText.append(GUIDER.$textarea); GUIDER.$formPage=$("<form>"); GUIDER.$formPage.css({"clear":"both", "margin-top":"3em"}); GUIDER.$input=$("<input>"); GUIDER.$input.addClass("mw-ui-input").attr({maxlength:255,name:"pagename",size:50,type:"text"}).css({"float":(HINT.ltr?"left":"right"), "width":"auto", "max-width":"auto"}).keyup(GUIDER.filled).mouseup(GUIDER.filled); GUIDER.$formPage.append(GUIDER.$input); GUIDER.$rev=$("<input>"); GUIDER.$rev.addClass("mw-ui-input").attr({disabled:true,inputmode:"numeric",maxlength:12,name:"revision",placeholder:"oldid",size:8,type:"text"}).css({"display":"inline-block", "margin-left":"1.5em", "margin-right":"1.5em", "width":"auto", "max-width":"auto"}).keyup(GUIDER.figure).mouseup(GUIDER.figure); GUIDER.$formPage.append(GUIDER.$rev); HINT.$content.append(GUIDER.$formText,GUIDER.$formPage); GUIDER.$pagename=$("<div>"); GUIDER.$pagename.addClass([HINT.selector+"-pagename",HINT.selector+"-fine"]).attr({id:HINT.selector+"-pagename"}) .css({"background-color":"#"+BOX.bgcOk, "float":(HINT.ltr?"left":"right"), "margin-bottom":"1em", "padding":"4px", "pointer-events":"all"}).hide(); HINT.$content.before(GUIDER.$pagename); HINT.$textarea=GUIDER.$textarea; mw.loader.using(HINT.using,GUIDER.foreign); mw.hook(PREGO.signature+".$button").fire(GUIDER.facet,Signature); }; INFO.fiat=function(){ vars=mw.config.get("wgRelevantPageName"),$a=$("<a>"); $a.attr({href:mw.util.getUrl("Special:LintErrors",{pagename:s})}).text(INFO.$h.text()); INFO.$h.empty().append($a); }; INFO.first=function(){ INFO.$h=$("#mw-pageinfo-linter"); if(INFO.$h.length&&!INFO.$h.find("a").length){ mw.loader.using(["mediawiki.util"],INFO.fiat);} }; PREGO.features=function(applied){ vari,n,s,v,vals; if(typeofapplied==="object"&&applied){ n=PREGO.pars.length; for(i=0;i<n;i++){ v=PREGO.pars[i]; s=v[0]; if(typeofapplied[s]===v[1]){ HINT[s]=applied[s];}} if(typeofapplied.layer==="boolean"){ deleteapplied.layer; mw.hook(PREGO.signature+".forward").fire(Signature,applied);}} if(HINT.spaces){ HINT.spaces=HINT.spaces.trim();} if(PREGO.live){ if(!HINT.drop){ HINT.silent="*";} PREGO.form(); }elseif(LINTER.live){ LINTER.live=false; LINTER.first(); }else{ if(HINT.spaces){ if(HINT.spaces==="*"){ HINT.live=true; }elseif(HINT.spaces!=="-"){ vals=HINT.spaces.split(" "); s=HINT.nsn+""; for(i=0;i<vals.length;i++){ if(s===vals[i]){ HINT.live=true; break;}}} }elseif(HINT.nsn===0){ HINT.live=true;} if(HINT.live&&HINT.nsn>=0){ switch(HINT.silent){ casefalse: case"*": break; case"-": HINT.quiet=false; break; default: HINT.quiet=HINT.silent.split(" ");} mw.loader.using(HINT.using,BOX.feed);}} }; PREGO.feed=function(){ varsign="ext.gadget."+PREGO.signature,rls; if(!mw.loader.getState(sign)){ rls={}; rls[sign]="loading"; mw.loader.state(rls); REPOS.fire(PREGO.site,PREGO.store+PREGO.signature+PREGO.sub,false,{action:"raw",ctype:"text/javascript",bcache:1,maxage:PREGO.maxage});} }; PREGO.fiat1=function(){ vars=PREGO.$spaces.val(),i,k,got,rooms; if(s.indexOf("-")>=0){ s="-"; }elseif(s.indexOf("*")>=0){ s="*"; }else{ got=s.trim().split(" "); s=""; if(got.length>0){ if(typeofPREGO.rooms!=="object"){ PREGO.follow=function(a,b){ return(a<b?-1:1); }; PREGO.reNum=newRegExp("^[0-9]+$"); PREGO.rooms=mw.config.get("wgFormattedNamespaces");} rooms=[]; for(i=0;i<got.length;i++){ if(PREGO.reNum.test(got[i])){ k=parseInt(got[i],10); if((k===0||PREGO.rooms[k])&&$.inArray(k,rooms)<0){ rooms.push(k);}}} if(rooms.length>0){ rooms.sort(PREGO.follow); s=rooms.join(" ");}}} PREGO.$spaces.val(s); }; PREGO.fiat2=function(){ vars=PREGO.$silent.val(),got,i,quiet,single; if(s.indexOf("*")>=0){ s="*"; }else{ got=s.trim().split(" "); if(got.length>0){ quiet=[]; if(typeofPREGO.reID!=="object"){ PREGO.reID=newRegExp("^[a-z][a-z-]*[a-z]$");} for(i=0;i<got.length;i++){ single=got[i]; if(PREGO.reID.test(single)&&$.inArray(single,quiet)<0){ quiet.push(single); }elseif(single==="-"){ quiet=[]; break;}} if(quiet.length>0){ s=quiet.join(" "); }else{ s="-";} }else{ s="*";}} PREGO.$silent.val(s); }; PREGO.field1=function($applying){ PREGO.$spaces=$applying; PREGO.$spaces.change(PREGO.fiat1); }; PREGO.field2=function($applying){ PREGO.$silent=$applying; PREGO.$silent.change(PREGO.fiat2); }; PREGO.fire=function(){ PREGO.feed(); mw.hook(PREGO.signature+".fetch").fire(Signature,PREGO.features); }; PREGO.form=function(){ varsupport=".wikipedia.org/wiki/"+HINT.doc.substr(3),docs={"en":"//en"+support, "de":"//de"+support}, dialog,opts; opts=[{signature:"spaces",type:"text",show:HINT.texts["^^spaces"],val:(HINT.spaces?HINT.spaces:""),field:PREGO.field1},{signature:"launch",type:"checkbox",show:HINT.texts["^^launch"],val:HINT.launch},{signature:"last",type:"checkbox",show:HINT.texts["^^last"],val:HINT.last},{signature:"lazy",type:"checkbox",show:HINT.texts["^^lazy"],val:HINT.lazy},{signature:"silent",type:"text",show:HINT.texts["^^silent"],val:(HINT.silent?HINT.silent:"*"),field:PREGO.field2}]; dialog={script:Signature,support:docs,suffix:HINT.texts["^suffix"],opts:opts}; mw.hook(PREGO.signature+".form").fire(dialog); }; REPOS.fire=function(at,access,append,alter){ varsource,syntax; if(typeofREPOS.requests!=="object"){ REPOS.requests={};} if(typeofREPOS.requests[access]!=="boolean"){ REPOS.requests[access]=true; if(append){ source=access+append; }else{ source=access;} if(at){ source=REPOS.foundation(at,source,alter); if(typeofalter==="object"&&alter&&typeofalter.ctype==="string"){ syntax=alter.ctype;} }else{ syntax=alter;} mw.loader.load(source,syntax);} }; REPOS.foundation=function(at,access,alter){ vars=access,r=encodeURI(s); if(typeofalter==="object"&&alter){ r="/w/index.php?title="+r; if(access.substr(-3)===".js"){ alter.ctype="text/javascript"; }elseif(access.substr(-4)===".css"){ alter.ctype="text/css";} alter.action="raw"; for(sinalter){ r=r+"&"+s+"="+encodeURI(alter[s]);} }else{ r="/wiki/"+r;} if(typeofat==="string"&&at){ switch(at){ case"meta": r="meta.wikimedia.org"+r; break; case"mw": r="www.mediawiki.org"+r; break; case"w:en": r="en.wikipedia.org"+r; break; default: r=window.location.host+r;} r="https://"+r;} returnr; }; TMPLXPAND.first=function(){ TMPLXPAND.live=true; HINT.live=true; EDIT.live=true; EDIT.selector="#output"; mw.loader.using(HINT.using,TMPLXPAND.further); }; TMPLXPAND.further=function(){ mw.hook("wikipage.content").add(BOX.flip); }; UPDATE.feed=function(apply){ if(typeofUPDATE.o!=="object"){ UPDATE.o={};} if(typeofUPDATE.o.unknown!=="object"){ UPDATE.o.unknown=[];} if($.inArray(apply,HINT.errors)<0){ HINT.errors.push(apply); UPDATE.o.unknown.push(apply);} UPDATE.flush(); }; UPDATE.fetch=function(){ varstorage=mw.storage.get(Signature),i,k,parsed,s,unknown; if(typeofstorage==="string"){ try{ parsed=JSON.parse(storage); if(typeofparsed==="object"&&parsed){ if(typeofparsed.translations==="object"&&parsed.translations){ UPDATE.o={translations:parsed.translations};} if(typeofparsed.unknown==="object"&&parsed.unknown&&typeofparsed.unknown.length==="number"&&parsed.unknown.length){ unknown=[]; for(i=0;i<parsed.unknown.length;i++){ s=parsed.unknown[i]; if(typeofs==="string"){ s=s.trim(); if(s){ k=$.inArray(s,HINT.errors); if(k<0){ HINT.errors.push(s); unknown.push(s);}}}} if(unknown.length){ if(typeofUPDATE.o==="object"){ UPDATE.o.unknown=unknown; }else{ UPDATE.o={unknown:unknown};}} if(unknown.length!==parsed.unknown.length){ UPDATE.flush();}}} }catch(e){ } if(typeofUPDATE.o!=="object"){ UPDATE.flush();}} }; UPDATE.flush=function(){ varstorage; if(typeofUPDATE.o==="object"){ storage=JSON.stringify(UPDATE.o);} if(storage){ mw.storage.set(Signature,storage); }else{ mw.storage.remove(Signature);} }; WIKED.fetch=function(){ if(!WIKED.wikEd&&(typeofwindow.wikEd==="function"||(typeofwindow.wikEd==="object"&&window.wikEd))&&typeofwindow.wikEd.disabled==="boolean"&&typeofwindow.wikEd.highlightSyntax==="boolean"&&typeofwindow.wikEd.turnedOn==="boolean"&&typeofwindow.wikEd.useWikEd==="boolean"){ WIKED.wikEd=window.wikEd;} if(WIKED.wikEd&&!WIKED.wikEd.disabled&&WIKED.wikEd.useWikEd&&WIKED.wikEd.turnedOn&&WIKED.wikEd.highlightSyntax){ WIKED.wikEd.UpdateTextarea();} }; first(); }(window.mediaWiki,window.jQuery)); /// EOF</nowiki>lintHint/r.js