MediaWiki:Gadget-evidenziaRighe.js

Da Wikisource.

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"));
  }
);