MediaWiki:Gadget-evidenziaRighe.js
Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.
- Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
- Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
- Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
- Opera: premi Ctrl-F5.
// Funzione di somiglianza fra stringhe (ricerca di s1 all'interno di s2)
/* disabilito (versione corrente in RegexmenuFramework)
function simil(s1,s2,nc) {
if (nc==undefined) nc=4;
var cont1=0;
for (var i=0;i<(s1.length-nc);i+=1)
{if (s2.indexOf(s1.substring(i,i+nc))!=-1) cont1+=1;}
return cont1/i;} */
// All'interno di una lista di stringhe, scegliere la più simile a una stringa data
function bestMatch(s1,lista) {
var best=0;
var bestEl=0;
for (var i=0;i<lista.length;i+=1) {
similCor=simil(s1,lista[i]); if (similCor>best) {best=similCor; bestEl=i;}
}
return bestEl;}
// restituisce l'intorno del puntatore (browser tipo Genko)
function getIntorno() {boxTesto=$("textarea")[1]; var intorno=$(boxTesto).val().substring(boxTesto.selectionStart-10,boxTesto.selectionStart+10); return intorno;}
// Adattamento per datiPagina
function evidenziaRiga() {
var s1=getIntorno();
var best=0;
var bestEl=0;
for (var i=0;i<datiPagina["righe"].length;i+=1) {
similCor=simil(s1,datiPagina["righe"][i][4]); if (similCor>best) {best=similCor; bestEl=i;}
}
highlightLine(bestEl);}
// Line highlighting
function highlightLine(riga) {
$("#lineHighlighting").remove();
if (datiPagina["righe"][riga]==undefined) {alert("Numero riga fuori scala o datiPagina non caricati"); return;}
fattoreScala=$('#ProofReadImage').attr("width")/datiPagina["xypagina"][0];
altezzaImmagine=datiPagina["xypagina"][1]*fattoreScala;
posizioneX=datiPagina["righe"][riga][0]*fattoreScala;
posizioneY=(datiPagina["xypagina"][1]-datiPagina["righe"][riga][3])*fattoreScala;
larghezzaRiga=(datiPagina["righe"][riga][2]-datiPagina["righe"][riga][0])*fattoreScala;
altezzaRiga=(datiPagina["righe"][riga][3]-datiPagina["righe"][riga][1])*fattoreScala;
$('<div id="lineHighlighting" style="position:absolute;top:'+posizioneY+'px;left:'+posizioneX+'px;width:'+larghezzaRiga+'px;height:'+altezzaRiga+'px; background-color: #aaaaff; opacity:0.3; filter:alpha(opacity=30); /* For IE8 and earlier */"></div>').appendTo('#pr_container');
}
$(document).ready(function() {if (mw.config.get("wgCanonicalNamespace") == "Pagina" && mw.config.get("wgAction") == "edit" /* && datiPagina["righe"]!=undefined */ )
$('<div style="position:absolute;top:50px;right:0px;z-index:500;"><a href="javascript:evidenziaRiga()"><img src="//upload.wikimedia.org/wikipedia/commons/7/73/Arrow_green.svg" /></a></div>').appendTo($(".wikiEditor-ui-text"));
}
);