MediaWiki:Gadget-Tools.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.
// <nowiki>
$(document).ready(function() {
// pone sal0 e salva la pagina con un click; chiede se azzerare il testo eventualmente presente
sal0 = function() {
var testo = leggiBox();
if ($.trim(testo) !== "") {
var remove = prompt("Cancello il contenuto? s=SI, n=NO");
if (remove === "s") testo="";
}
scriviBox(testo);
$(".quality0 input").click();
$("#wpSave").click();
$("#handle button[title='Salva le modifiche']").click();
};
// funzione per aggiungere colonne a colonne
append = function() {
if (selection()[1].length > 0) {
mw.a=selection(); // si memorizza in a gli elementi da aggiungere
scriviBox(mw.a[0]+mw.a[2]);
return;
}
else {
mw.b=selection();
mw.a[1]=mw.a[1].split("\n");
mw.b[2]=mw.b[2].split("\n");
$.each(mw.a[1],function(index,value) {
mw.b[2][index]=mw.b[2][index]+"||"+value;
});
mw.b[2]=mw.b[2].join("\n");
scriviBox(mw.b.join(""));
}
};
/*
// restituisce document.activeElement e una lista di tre stringhe che rappresentano il testo dell'elemento
// suddiviso in base alla selezione (pre, selezione, post)
function sel() {
var elemento=document.activeElement;
var ss=elemento.selectionStart;
var se=elemento.selectionEnd;
var contenuto=elemento.value;
var s=[contenuto.substring(0,ss),contenuto.substring(ss,se),contenuto.substring(se)];
return [elemento, s];
}
*/
// funzione di "incapsulamento" basata su sel()
incaps = function(pre,post) {
var s=sel();
var testo=s[1][0]+pre+s[1][1]+post+s[1][2];
s[0].value=testo;
};
// divide la pagina in due section s1 e s2, oppure una section s2 in una s2 e s3, usando come punto di separazione
// la posizione del puntatore. Usa sel()
newSections = function() {
var s=sel();
if (s[1][2].indexOf('<section end="s2" />')===-1) {
s[1][0]='<section begin="s1" />'+s[1][0]+'<section end="s1" />';
s[1][2]='<section begin="s2" />'+s[1][2]+'<section end="s2" />';
}
else {
s[1][0]=s[1][0]+'<section end="s2" />';
s[1][2]='<section begin="s3" />'+s[1][2].replace('<section end="s2" />','<section end="s3" />');
}
s[0].value=s[1][0]+s[1][1]+s[1][2];
return;
};
/* conta il numero di occorrenze di stringa dentro testo*/
count = function(testo, stringa) {
n = 0;
while (testo.indexOf(stringa) > -1) {
n = n + 1;
testo = testo.replace(stringa, "");
}
return n;
};
find_stringa = function(testo, idi, idf, dc, x) {
idip = testo.indexOf(idi);
idfp = testo.indexOf(idf, idip + idi.length) + idf.length;
if (idip > -1 && idfp > -1) {
if (x !== "") {
while (count(testo.slice(idip, idfp), x) > count(testo.slice(idip, idfp), idf)) {
idfp = testo.indexOf(idf, idfp) + idf.length;
}
}
if (dc === 0) {
vvalore = testo.slice(idip + idi.length, idfp - idf.length);
} else {
vvalore = testo.slice(idip, idfp);
}
} else {
vvalore = "";
}
return vvalore;
};
produciLista = function(testo, s1, s2, delim, x) {
lista = [];
while (find_stringa(testo, s1, s2, true, x) > "") {
elemento = find_stringa(testo, s1, s2, true, x);
testo = testo.replace(elemento, "");
if (delim) {
lista.push(elemento);
} else {
lista.push(elemento.slice(s1.length, - s2.length));
}
}
return lista;
};
/*
In questa pagina saranno raccolti sperimentalmente tutti gli script utilizzati dai vari tool a "chiamata libera",
da collegare a un pulsante, a un link, a un tattoo a scelta dell'utente. Le funzioni attivate in Preferenze
caricheranno solo il sistema di richiamo di default; la funzione sarà comunque attiva anche se non sarà collegata
a un sistema di richiamo.
I tools opera-specifici superati saranno raccolti in MediaWiki:ToolsSuperati.js
*/
/* importazione dei link da wikidata a showbox
function wikidatalinks() {
var dati = $("body").data("wikidata").entities[$("body").data("wikidataID")], testo = "";
testo += '<p>Link a it.wikipedia: <a href="http://it.wikipedia.org/wiki/' + dati.sitelinks.itwiki.title.replace(/ /g, "_") + '">' + dati.sitelinks.itwiki.title + "</a></p>";
testo += '<p>Link a en.wikipedia: <a href="http://en.wikipedia.org/wiki/' + dati.sitelinks.enwiki.title.replace(/ /g, "_") + '">' + dati.sitelinks.enwiki.title + "</a></p>";
testo += '<p>Link a fr.wikipedia: <a href="http://fr.wikipedia.org/wiki/' + dati.sitelinks.frwiki.title.replace(/ /g, "_") + '">' + dati.sitelinks.frwiki.title + "</a></p>";
$("#showboxContent").html(testo);
$("#showbox").show();
}*/
dpFont = function() {
if ($("#wpTextbox1").css("font-family") === "DPCustomMono2") $("#wpFooterTextbox,#wpHeaderTextbox,#wpTextbox1").css("font-family", "Courier");
else {
$("#wpFooterTextbox,#wpHeaderTextbox,#wpTextbox1").css("font-family", "DPCustomMono2");
}
};
// creazione di una div .ourData
($("<div class='ourDiv' style='display:none;'></div>")).appendTo($("body"));
// importazione funzioni parsing di Information/Book + Creator
// importScript("Utente:Alex brollo/ParsingHproduct.js");
// Trasforma una stringa in una riga tabella (v. Trattato di archeologia - Gentile)
// Apporre un carattere nella posizione della separazione delle celle, selezionare e cliccare
rmak = function() {
var t = selection();
riga = t[1];
riga = riga.replace("\n", " ").replace("\n", " ");
cella = '|-\n|width="85%" class="dotted"|<span class="opaque">##</span>||align="right"|##';
riga = cella.replace("##", riga.split("|")[0]).replace("##", riga.split("|")[1]);
t[1] = riga;
//scriviBox(sel.join(""));
scriviSel(t);
};
// R-
excludeR = function() {
t = selection();
t[1] = "::::::{"+"{R-}}" + t[1];
scriviSel(t);
//scriviBox(t.join(""));
};
// Elimina righe vuote. Se esiste selezione agisce solo sulla selezione (modifica 15.06.2015 Alex)
eliminaRigheVuote = function() {
if (selection()[1]==="") {
t = leggiBox().split("\n");
t1 = [];
for (i = 0; i < t.length; i += 1) {
if ($.trim(t[i]).length > 0) t1.push(t[i]);
}
scriviBox(t1.join("\n"));
} else {
selezione=selection();
t=selezione[1].split("\n");
t1 = [];
for (i = 0; i < t.length; i += 1) {
if ($.trim(t[i]).length > 0) t1.push(t[i]);
}
selezione[1]=t1.join("\n");
scriviBox(selezione.join(""));
}
return;
};
// Funzioni per gesione maiuscole/minuscole
capitalize = function(testo) {
testo = testo.split(" ");
for (var i = 0; i < testo.length; i += 1) {
testo[i] = testo[i].substring(0, 1).toLocaleUpperCase() + testo[i].substring(1).toLocaleLowerCase();
}
return testo.join(" ");
};
changeCase = function(testo) {
if (testo === testo.toLocaleUpperCase()) testo = testo.toLocaleLowerCase();
else testo = testo.toLocaleUpperCase();
return testo;
};
capit = function() {
var t = selection();
t[1] = capitalize(t[1]);
//scriviBox(t.join(""));
scriviSel(t);
};
up_low = function() {
var t = selection();
t[1] = changeCase(t[1]);
scriviSel(t);
//scriviBox(t.join(""), "", t[0].length, t[0].length + t[1].length);
};
// Funzioni per indentaVersi
indentSelection = function() {
t = selection();
if (t[0].indexOf("\n") === -1) {
t[1] = t[0] + t[1];
t[0] = "";
} else {
pn = t[0].lastIndexOf("\n");
t[1] = t[0].substring(pn + 1) + t[1];
t[0] = t[0].substring(0, pn + 1);
}
var t1 = t[1].split("\n");
for (var i = 0; i < t1.length; i += 1) {
t1[i] = " " + t1[i];
}
t[1] = t1.join("\n");
//scriviBox(t.join(""), "", t[0].length, t[0].length + t[1].length);
scriviSel(t);
};
deIndentSelection = function() {
t = selection();
if (t[0].indexOf("\n") === -1) {
t[1] = t[0] + t[1];
t[0] = "";
} else {
pn = t[0].lastIndexOf("\n");
t[1] = t[0].substring(pn + 1) + t[1];
t[0] = t[0].substring(0, pn + 1);
}
var t1 = t[1].split("\n");
for (var i = 0; i < t1.length; i += 1) {
for (j = 0; j < 5; j += 1) {
if (t1[i].substring(0, 1) === " ") t1[i] = t1[i].substring(1);
else break;
}
}
t[1] = t1.join("\n");
//scriviBox(t.join(""), "", t[0].length, t[0].length + t[1].length);
scriviSel(t);
};
// Funzioni scovate da Samuele, "toppa" per il layout
pr_fill_table = function() {
while (self.table.firstChild) {
self.table.removeChild(self.table.firstChild);
}
if (!pr_horiz) {
var t_table = document.createElement('table');
var t_body = document.createElement('tbody');
var cell_left = document.createElement('td');
var cell_right = document.createElement('td');
t_table.appendChild(t_body);
var t_row = document.createElement('tr');
t_row.setAttribute('valign', 'top');
cell_left.style.cssText = 'width:50%; padding-right:0.5em;vertical-align:top;';
cell_right.setAttribute('rowspan', '3');
cell_right.style.cssText = 'vertical-align:top;';
t_row.appendChild(cell_left);
t_row.appendChild(cell_right);
t_body.appendChild(t_row);
cell_right.appendChild(pr_container_parent);
cell_left.appendChild(self.text_container);
self.table.appendChild(t_table);
} else {
self.table.appendChild(self.text_container);
form = document.getElementById('editform');
tb = document.getElementById('toolbar');
if (tb) {
tb.parentNode.insertBefore(pr_container_parent, tb);
} else if (form) {
form.parentNode.insertBefore(pr_container_parent, form);
} else {
self.table.insertBefore(pr_container_parent, self.table.firstChild);
}
}
if (proofreadPageIsEdit) {
if (!pr_horiz) {
self.DisplayHeight = Math.ceil(pr_height * 0.85);
self.DisplayWidth = parseInt(pr_width / 2 - 70);
css_wh = 'width:' + self.DisplayWidth + 'px; height:' + self.DisplayHeight + 'px;';
pr_container_parent.style.cssText = 'position:relative;width:' + self.DisplayWidth + 'px;';
} else {
self.DisplayHeight = Math.ceil(pr_height * 0.4);
css_wh = 'width:100%; height:' + self.DisplayHeight + 'px;';
pr_container_parent.style.cssText = 'position:relative;height:' + self.DisplayHeight + 'px;';
}
self.container_css = 'position:absolute;top:0px;cursor:default; background:#000000; overflow:auto; ' + css_wh;
pr_container.style.cssText = self.container_css;
}
pr_zoom(0);
};
if (typeof (window.innerWidth) === 'number') {
pr_width = window.innerWidth;
pr_height = window.innerHeight;
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
pr_width = document.documentElement.clientWidth;
pr_height = document.documentElement.clientHeight;
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
pr_width = document.body.clientWidth;
pr_height = document.body.clientHeight;
}
acd_add = {};
ac_plus = function() {
var t = selection();
var autore = t[1];
if (acd[autore] === undefined) {
if (acd_add[autore] !== undefined) {
acd[autore] = acd_add[autore];
} else {
autoreCompleto = prompt("Autore ignoto. Inserisci cognome e nome:", autore);
autoreCompleto = autoreCompleto.trim();
if (autoreCompleto === "") return;
acd_add[autore] = autoreCompleto;
acd[autore] = autoreCompleto;
saveCookAcd();
}
}
t[1] = "{"+"{AutoreCitato|" + acd[autore] + "|" + autore + "}}";
//scriviBox(t.join(""));
scriviSel(t);
};
pr_toggle_layout = function() {
self.pr_horiz = !self.pr_horiz;
pr_fill_table();
pr_reset_size();
pr_zoom(0);
};
pr_reset_size = function() {
var box = document.getElementById('wpTextbox1');
var h = document.
getElementById('prp_header');
var f = document.getElementById('prp_footer');
if (h.style.cssText === 'display:none;') {
box.style.cssText = 'height:' + (self.DisplayHeight - 6) + 'px';
} else {
if (self.pr_horiz) {
box.style.cssText = 'height:' + (self.DisplayHeight - 6) + 'px';
} else {
box.style.cssText = 'height:' + (self.DisplayHeight - 6 - h.offsetHeight - f.offsetHeight) + 'px';
}
}
};
// Fine funzioni toggle layout
// Crea il testo del template Intestazione (richiesto da Barbaforcuta)
intestazione = function() {
scriviBox("{"+"{Intestazione\n| Nome e cognome dell'autore =\n| Titolo = \n| Anno di pubblicazione =\n| Lingua originale del testo = \n| Nome e cognome del traduttore = \n| Anno di traduzione = \n| Progetto = \n| Argomento =\n| URL della versione cartacea a fronte =\n}}");
};
// Ideato da Luigi62. Produce la lista delle istanze di AutoreIgnoto nelle pagine Pagina.
autoreIgnoto = function() {
testo = leggiBox() + "\n<pre>\n";
puntanoQui = JSON.parse($.ajax({
url: "/w/api.php?action=query&format=json&list=embeddedin&eititle=Template:AutoreIgnoto&einamespace=108&eilimit=500",
async: false
}).responseText);
for (i = 0; i < puntanoQui.query.embeddedin.length; i += 1) {
pagina = puntanoQui.query.embeddedin[i].title;
$.ajax({
url: mw.config.get("wgServer")+"/w/index.php?action=raw&title=" + pagina,
}).done(function(rawText) {
l = produciLista(rawText, "{"+"{AutoreIgnoto|", "}}", 0);
for (j = 0; j < l.length; j += 1) {
testo += pagina + "\t" + l[j] + "\n";
scriviBox(testo);
}
scriviBox(testo + "</pre>");
});
}
};
// Gestisce l'inserimento di note
note = function() {
var t = selection();
if (t[1].length <5) {
t[1] = "<sup>nota</sup>";
} else {
t[1] = "<ref>" + t[1] + "</ref>";
}
//scriviBox(t.join(""));
scriviSelAlt(t);
};
// Crea il codice thumbnail per una serie di pagine
// Istruzioni: andare su una pagina sandbox, scrivere il nome base della pagina, il numero iniziale, il numero finale
// separati da caratteri "|", selezionare e premere il pulsante
thumbs = function() {
t = selection();
lista = t[1].split("|");
lista[1] = lista[1] * 1;
lista[2] = lista[2] * 1;
base = "[[File:#base|200px|page=#page|link=Pagina:#base/#page]] ".replace(/#base/g, lista[0]);
t[1] = t[1] + "\n\n";
for (i = lista[1]; i <= lista[2]; i += 1) {
t[1] += base.replace(/#page/g, i);
}
//scriviBox(t[1]);
scriviSel(t);
};
// trasforma la selezione di un copiaincolla di tabella excel
// (campi: nome, titolo, from, delta) in serie di template Indice sommario
tabSomMaker = function() {
t = selection(2);
tab = t[1].split("\n");
var base = "{"+"{Indice sommario|nome=§1|titolo=§2|from=§3|delta=§4}}";
var testo = [];
for (i = 0; i < tab.length; i++) {
tab[i] = tab[i].split("\t");
testo.push(base.replace("§1", tab[i][0]).replace("§2", tab[i][1]).replace("§3", tab[i][2]).replace("§4", tab[i][3]));
}
t[1] = testo.join("\n");
scriviBox(t.join("\n"), 2);
};
noImg1 = function() {
cella = $(".prp-page-image");
cellaDisplay = $(cella).css("display");
if (cellaDisplay === "none") {
$(cella).css("display", "block");
$("div.prp-page-content").css("width","50%");
} else {
$(cella).css("display", "none");
$("div.prp-page-content").css("width","100%");
}
};
ThPurge = function() {
window.open("//commons.wikimedia.org/w/thumb.php?f=#base#&w=#width#&page=#page#".replace("#base#", mw.config.get("wgPageName").split("/")[0].replace("Pagina:", "")).replace("#page#", mw.config.get("wgPageName").split("/")[1]).replace("#width#", $("#ProofReadImage").attr("width")));
window.open("//commons.wikimedia.org/w/thumb.php?f=#base#&w=#width#&page=#page#".replace("#base#", mw.config.get("wgPageName").split("/")[0].replace("Pagina:", "")).replace("#page#", mw.config.get("wgPageName").split("/")[1]).replace("#width#", "1024"));
};
/*
incapsula = function(pre, post) {
mw.toolbar.insertTags(pre,post);
};
function incapsula(pre, post) {
t = sel()[1];
t[0] = t[0] + pre.replace(/"e;/g, '"');
t[2] = post.replace(/"e;/g, '"') + t[2];
scriviSel(t);
}
function incapsula(pre, post) {
t = selection();
t[0] = t[0] + pre.replace(/"e;/g, '"');
t[2] = post.replace(/"e;/g, '"') + t[2];
scriviBox(t.join(""));
}
*/
preOCR = function() {
testo = leggiBox();
testo = testo.replace(/<poem>/g, "#poem#")
.replace(/<\/poem>/g, "#/poem#")
.replace(/</g, "")
.replace(/\>/g, "")
.replace(/\{/g, "")
.replace(/\}/g, "")
.replace(/\[/g, "")
.replace(/\]/g, "")
.replace(/\#poem\#/g, "<poem>")
.replace(/\#\/poem\#/g, "</poem>");
scriviBox(testo);
};
splitPagina = function(tpp) {
var testo = ["", "", ""];
testo[0] = tpp.substring(0, tpp.indexOf("</noinclude>") + 12);
testo[2] = tpp.substring(tpp.lastIndexOf("<noinclude>"));
testo[1] = tpp.substring(testo[0].length, tpp.length - testo[2].length);
return testo;
};
testoPagCorr = ["","",""];
// se siamo in nsPage carico comunque testoPagCorr
if (mw.config.get("wgCanonicalNamespace") === "Page" && mw.config.get("wgAction")==="view") {
// solo se siamo in view esamina se la pagina può essere portata a SAL 100%
testoPagCorr=splitPagina(mw.getWikitext(mw.config.get("wgPageName")));
if (mw.config.get("wgUserName")!==null
&& find_stringa(testoPagCorr[0],'user="','"',0)!==mw.config.get("wgUserName")
&& find_stringa(testoPagCorr[0],'level="','"',0)==="3") {
var html= $(".prp-page-content .quality-msg-text").html();
var msg=" <b>Tu puoi rileggerla</b>.";
if (html.indexOf(msg)===-1) {
$(".prp-page-content .quality-msg-text").html(html+msg);
}
}
}
testoPagPrec = ["", "", ""];
testo2PagPrec = ["", "", ""];
var npp
lpp = function() {
var pn = mw.config.get("wgPageName").split("/");
if (pn[1] > 1) {
npp = pn[0] + "/" + (pn[1] - 1);
$.ajax({
url: "/w/api.php?action=parse&page="+npp+"&prop=wikitext&format=json",
}).done(function(response) {
if (response.parse !== undefined) {
contenuto = response.parse.wikitext["*"];
testoPagPrec = splitPagina(contenuto);
}
});
}
if (pn[1] > 2) {
npp = pn[0] + "/" + (pn[1] - 2);
$.ajax({
url: "/w/api.php?action=parse&page="+npp+"&prop=wikitext&format=json",
}).done(function(response) {
if (response.parse !== undefined) {
contenuto = response.parse.wikitext["*"];
testo2PagPrec = splitPagina(contenuto);
}
});
npd = pn[0].replace("Pagina:", "Discussioni indice:");
$.ajax({
url: mw.config.get("wgServer")+"/w/index.php?action=raw&title=" + npd + "&" + Math.random(),
}).done(function(testoPagDati) {
var x = $.trim(find_stringa(testoPagDati, '<pre class="abbreviazioni">', '</pre', 0)).split("\n");
$.each(x, function(index) {
x[index] = x[index].split("==");
});
var d = {};
for (i = 0; i < x.length; i += 1) {
d[x[i][0]] = x[i].slice(1);
}
$(".ourDiv").data("abbrOpera", d);
// qui inserire gestione memoRegex
});
}
};
if (mw.config.get("wgAction") === "edit" &&
(mw.config.get("wgCanonicalNamespace") === "Pagina" ||
mw.config.get("wgCanonicalNamespace") === "Page")) {
$(document).ready(lpp);
}
tableMaker = function() {
var t = selection();
tabella = selection()[1];
tabella=tabella.replace(/\|\|/g,"\t");
tabella=tabella.split("\n");
for (i = 0; i < tabella.length; i += 1) {
tabella[i] = "|-\n|" + tabella[i].replace(/\t/g, "||")
}
t[1] = "{|\n" + tabella.join("\n") + "\n|}\n";
//scriviBox(t.join(""));
scriviSel(t);
};
ottavaGl = function() {
t = selection();
if (t[0].indexOf("\n") === -1) {
t[1] = t[0] + t[1];
t[0] = "";
} else {
pn = t[0].lastIndexOf("\n");
t[1] = t[0].substring(pn + 1) + t[1];
t[0] = t[0].substring(0, pn + 1);
}
t[1] = t[1].replace(/ú/g, "ù").replace(/í/g, "ì").replace(/é/g, "è").replace(/\'/g, "’").replace("{"+"{o|", "{"+"{O|");
not = find_stringa(t[1], "{"+"{O|", "}}", 1);
t[1] = t[1].replace(not, "");
not = find_stringa(not, "{"+"{O|", "}}", 0);
var t1 = t[1].split("\n");
for (i = 0; i < t1.length; i += 1) {
//trimmo
t1[i] = t1[i].trim();
// maiuscolizzo
t1[i] = t1[i].substring(0, 1).toLocaleUpperCase() + t1[i].substring(1);
//versifico
if (i === 3 || i === 7) {
nv = (not - 1) * 8 + i + 1;
t1[i] = "{"+"{R|nv}}".replace("nv", nv) + t1[i]
}
// aggiungo nr in testa e indento verso 1
if (i === 0) {
t1[i] = "{"+"{Centrato|l=18em|{"+"{§|" + n2r(not * 1) + "|" + n2r(not * 1) + ".}}}}\n " + t1[i];
}
}
t[1] = t1.join("\n");
//scriviBox(t.join(""));
scriviSel(t);
};
r2n = function(numeroRomano) {
// minuscolizzo
nr = numeroRomano.toLocaleLowerCase();
cv = {
"m": 1000,
"d": 500,
"c": 100,
"l": 50,
"x": 10,
"v": 5,
"i": 1
};
n = 0;
// per ognuna delle lettere incremento l'accumulatore sulla base del dizionario cv
for (i = 0; i < nr.length; i += 1) {
n += cv[nr.substring(i, i + 1)];
}
// sporco trucco per la gestione di ix, xc, cm :-) (l'algoritmo precedente conteggia 21 in caso di xix...)
if (nr.indexOf("ix") > -1 || nr.indexOf("iv") > -1) n -= 2;
if (nr.indexOf("xc") > -1 || nr.indexOf("xl") > -1) n -= 20;
if (nr.indexOf("cm") > -1 || nr.indexOf("cd") > -1) n -= 200;
return n;
};
// accetta un numero arabo
n2r = function(n) {
var narr = ["1000000", "900000", "500000", "400000", "100000", "90000", "50000", "40000", "10000", "9000", "5000", "4000", "1000", "900", "500", "400", "100", "90", "50", "40", "10", "9", "5", "4", "1"];
var rarr = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];
var num = n;
var result = "";
var chk = num;
while (chk > 0) {
var i;
for (i = 0; i < narr.length; i++) {
if (chk >= narr[i]) {
result += rarr[i];
chk -= narr[i];
break;
}
}
}
return result; // restituisce il numero romano
};
// Rimuove dalla selezione corrente i tags wiki ''' e '' e tutti i tag html
// da fare: organizzare rimozione di alcuni comuni template salvando il testo passato come parametro
rtg = function() {
var t = selection();
var tagsHtml = produciLista(t[1], "<", ">", 1);
for (i = 0; i < tagsHtml.length; i += 1) {
t[1] = t[1].replace(tagsHtml[i], "");
}
t[1] = t[1].replace(/\'\'\'/g, "").replace(/\'\'/g, "", "");
//scriviBox(t.join(""));
scriviSel(t);
}
verificaNote = function() {
serie = "a,b,c,d,e,f,g,h,i,l,m,n,o,p,q,r,s,t,u,v,x,y,z,aa,bb,cc,dd,ee,ff,gg,hh,ii,ll,mm".split(",");
var editbox = document.getElementsByName('wpTextbox1')[0];
var testo = editbox.value;
n = testo.count("<sup>");
alert("Ultima nota: " + serie[n - 1]);
};
eraseWl = function() {
t = leggiBox().split("\n");
t1 = [];
for (i = 0; i < t.length; i += 1) {
if (t[i].length > 3) t1.push(t[i]);
}
scriviBox(t1.join("\n"));
};
tq = function() {
$.ajax({
url: mw.config.get("wgServer")+"/w/index.php?action=render&title=" + mw.config.get("wgPageName"),
}).done(function(html) {
q = "0%";
if ($("a.quality4", html).length > 0 || $('span.ws-noexport a img[alt^="100%"]', html).length > 0) q = "100%";
if ($("a.quality3", html).length > 0 || $('span.ws-noexport a img[alt^="75%"]', html).length > 0) q = "75%";
if ($("a.quality2", html).length > 0 || $('span.ws-noexport a img[alt^="50%"]', html).length > 0) q = "50%";
if ($("a.quality1", html).length > 0 || $('span.ws-noexport a img[alt^="25%"]', html).length > 0) q = "25%";
scriviBox(leggiBox().replace(/(\|avz=)\d+%(\|)/, "$1" + q + "$2"));
if (/SAL \d+%/.test(wpSummary.value)) wpSummary.value = wpSummary.value.replace(/SAL \d+%/, "SAL " + q);
});
};
oggi = function() {
var d = new Date();
return d.getDate() + " " + ["gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"][d.getMonth()] + " " + d.getFullYear();
};
/*
// rimuove il box di visualizzazione
function delShow() {
$("#showCode").remove();
}
//apre un box fixed in cui visualizzare il wikicode e ci aggiunge una barra e il wikicode
metadati = {};
function show(option) {
if (option === undefined) option = "wiki text";
if (option === "wiki text") {
var wt = acchiappaWikicode(mw.config.get("wgPageName"));
$("#showboxContent").html("");
if (wt[0] != "") $('<div style="white-space:pre-wrap; width:97%; padding:5px; background-color:#D9FFFF;">' + wt[0] + '</div>').appendTo($("#showboxContent"));
$('<div style="white-space:pre-wrap; width:97%; padding:5px; background-color:#FCFCFC;">' + wt[1] + '</div>').appendTo($("#showboxContent"));
if (wt[2] != "") $('<div style="white-space:pre-wrap; width:97%; padding:5px; background-color:#CCFFFF;">' + wt[2] + ' </div>').appendTo($("#showboxContent"));
$("#showbox").show();
}
if (option === "metadata") {
parseMetadata();
$("#showboxContent").html("");
$(".hproduct").clone().appendTo($("#showboxContent"));
$("#showbox").show();
}
if (option === "lista") {
// la funzione viene chiamata dentro un callback di getPage e dispone di una variabile lista
// che contiene un oggetto jQuery lista
$("#showboxContent").html("");
$(lista).appendTo($("#showboxContent"));
$("#showbox").show();
}
if (option === "wikidata") {
// la funzione viene chiamata dentro un callback di getPage e dispone di una variabile lista
// che contiene un oggetto jQuery lista
$("#showboxContent").html("");
wikidatalinks();
$("#showbox").show();
}
}
*/
//SEZIONE BIBBIA
//Seguono tutti gli script dedicati al Progetto Bibbia
findchapter = function(n, from, to) {
z = 0
found = []
for (i = from; i <= to; i++) {
testo = acchiappaWikicode('Pagina:La_Sacra_Bibbia_(Diodati_1885).djvu/' + i);
arraymatched = testo[1].match(/section \D+(\d+)/g);
arraymatched2 = []
for (e = 0; e <= arraymatched.length - 1; e++) {
arraymatched2[e] = arraymatched[e].replace(/section end\D/, '')
}
if (arraymatched2.indexOf('' + n + '') != -1) {
found[z] = i
z = z + 1
}
}
return '<pages index="La Sacra Bibbia (Diodati 1885).djvu" from=' + found[0] + ' to=' + found[z - 1] + ' fromsection="' + n + '" tosection="' + n + '" />';
};
setpageBibbia = function(cap, from, to) {
testo = '{'+'{Qualità|avz=75%|data=26 febbraio 2012|arg=Da definire}}{"+"{IncludiIntestazione|sottotitolo=|prec=../capitolo_' + (cap - 1) + '|succ=../capitolo_' + (parseInt(cap) + 1) + '}}'
testo += '\n'
testo += findchapter(cap, from, to)
testo += '\n'
testo += '{'+'{Sezione note}}'
scriviBox(testo)
$('#bibbiatransbox').find('*').each(function() {
$(this).remove()
}).remove();
$('#bibbiatransbox').remove();
};
BibbiaTrasBox = function() {
$('body').append('<div id="bibbiatransbox"></div>');
$('#bibbiatransbox').append('<label for="from">From:</label>');
$('#bibbiatransbox').append('<input type="text" id="from" />');
$('#bibbiatransbox').append('<br><label for="to">To:</label>');
$('#bibbiatransbox').append('<input type="text" id="to" />');
$('#bibbiatransbox').append('<br><label for="cap">Capitolo:</label>');
$('#bibbiatransbox').append('<input type="text" id="cap" />');
$('#bibbiatransbox').append('<input type="submit" id="bibbiaboxsub" value="Trova e fai" />');
$('#bibbiatransbox').dialog();
$('#bibbiaboxsub').on('click', function() {
setpageBibbia($('#bibbiatransbox').children('#cap').val(), $('#bibbiatransbox').children('#from').val(), $('#bibbiatransbox').children('#to').val());
});
};
bibbia3 = function() {
var editbox = document.getElementsByName('wpTextbox1')[0];
var testo = editbox.value;
// Cattura elementi BibLink da OCR grezzo
patt2 = /(\w+)\s*\.\s*(\d+)\s*\.\s*(\d+)/;
while (patt2.test(testo)) {
elemento = patt2.exec(testo)[0]; // elemento Biblink
newElemento = elemento.replace(patt2, "{"+"{BibLink|$1|$2|$3}}");
testo = testo.replace(elemento, newElemento);
}
// normalizzazione del contenuto dei template BibLink (sostituzione punti con |)
var lista = produciLista(testo, "{"+"{BibLink|", "}}", 1);
var patt1 = /(\{\{BibLink\|\d*\s*\w+)[\.\| ]*(\d+)[\.\| ]*(\d+)[\.\| ]*(.*\}\})/;
for (i = 0; i < lista.length; i += 1) {
elemento1 = lista[i];
elemento2 = lista[i].replace(patt1, "$1|$2|$3|$4").replace("|}}", "}}");
testo = testo.replace(elemento1, elemento2);
}
// Cattura di eventuali numeri d'ordine del libro (1,2,3)
patt3 = /([123]\ )(\{\{BibLink\|)(\w+)/;
while (patt3.test(testo)) {
elemento = patt3.exec(testo)[0];
newElemento = elemento.replace(patt3, "$2$1$3");
testo = testo.replace(elemento, newElemento);
}
editbox.value = testo;
return;
};
/*
== bibbia4 ==
ìP*/
bibbia4 = function() {
var editbox = document.getElementsByName('wpTextbox1')[0];
var testo = editbox.value;
var note = produciLista(testo, "\n{"+"{BibLink|", "\n", 1);
for (i = 0; i < lista.length; i += 1) {
riga = lista[i].trim()
testo = testo.replace(lista[i], "\n<ref>" + riga + "</ref>\n");
}
editbox.value = testo;
return;
};
/* cerca le evenienze {{BibLink|xxx|999|999}}; 77. 88. e le trasforma in {{BibLink|xxx|999|999}}; {{BibLink|xxx|77|88|77. 88}}.;
cerca le evenienze {{BibLink|xxx|999|999}}, 77 e le trasforma in {{BibLink|xxx|999|999}}, {{BibLink|xxx|999|77|77}}.
ìP*/
/*
== bibbia5 ==
ìP*/
bibbia5 = function() {
var editbox = document.getElementsByName('wpTextbox1')[0];
var testo = editbox.value;
// pattern di un elemento tipo 2 CORRETTO
patt = /(\{\{BibLink\|\d?\ ?\w*\|).{1,10}(\}\});\s*(\d+)\.\s*(\d+)\./;
ps = /\{\{.+\}\}/;
while (patt.test(testo)) {
elemento = patt.exec(testo)[0]; // elemento Biblink; capitolo. versetto
newElemento = elemento.replace(patt, elemento.match(ps)[0] + "; $1$3|$4|$3. $4$2");
testo = testo.replace(elemento, newElemento);
}
// elemento Biblink, versetto (lista o intervallo)
patt = /(\{\{BibLink\|\d?\ ?\w*\|\d+\|)(\d+)(\}\})\s*(-)\s*(\d+)/;
while (patt.test(testo)) {
elemento = patt.exec(testo)[0];
newElemento = elemento.replace(patt, elemento.match(ps)[0] + "$4$1$5|$5$3");
testo = testo.replace(elemento, newElemento);
}
patt = /(\{\{BibLink\|\d?\ ?\w*\|\d+\|)(\d+)(\}\})\s*(,)\s*(\d+)/;
while (patt.test(testo)) {
elemento = patt.exec(testo)[0];
newElemento = elemento.replace(patt, elemento.match(ps)[0] + "$4 $1$5|$5$3");
testo = testo.replace(elemento, newElemento);
}
editbox.value = testo;
};
bibbia6 = function() {
var t = selection();
t[1] = "{"+"{Centrato|{"+"{smaller|''" + t[1] + "''}}}}";
//scriviBox(t.join(""));
scriviSel(t);
};
NewPP = function() {
var newpp1=find_stringa($("html").html(), "<!--\nNewPP", "-->", 1);
var newpp0=find_stringa($("html").html(), "<!-- Served", "-->", 1);
if (newpp1.length>0) newpp0=newpp0+"\n"+newpp1;
alert(newpp0);
};
// funzioni per autoNs0
parseSommario = function(basePagina) {
if (basePagina === undefined && (mw.config.get("wgCanonicalNamespace") === "Pagina" || mw.config.get("wgCanonicalNamespace") === "Page")) {
var basePagina = mw.config.get("wgPageName").substring(0, mw.config.get("wgPageName").indexOf("/"));
}
var s=getWikitext("Indice:"+basePagina+"&r=" + Math.random())
var mdwTemplate=find_stringa(s, "{"+"{:MediaWiki","}}",1,"{"+"{");
mdwTemplate=parseTemplate(":MediaWiki:Proofreadpage_index_template",mdwTemplate);
$(".ourDiv").data("indexData",mdwTemplate);
var infotesto=$.ajax({
url: mw.config.get("wgServer")+"/w/index.php?action=raw&title=Discussioni indice:" + basePagina + "&r=" + Math.random(),
async: false
}).responseText;
infotesto=find_stringa(infotesto, "{"+"{Infotesto","}}",1,"{"+"{");
infotesto=parseTemplate("Infotesto",infotesto);
$(".ourDiv").data("infotesto",infotesto);
s = find_stringa(s, '|Sommario=', '|Volume=', 0);
// normalizzazione Indice Sommario
s=s.replace(/[\n ]*}/g,"}")
.replace(/[\n ]*=[\n ]*/g,"=")
.replace(/[\n ]*\|[\n ]*/g,"|");
s = produciLista(s, "{"+"{Indice sommario|", "}}", 1);
lcomm = produciLista(s, "<!--", "-->", 1);
for (i = 0; i < lcomm.length; i += 1) {
s = s.replace(lcomm[i], "");
}
for (i = 0; i < s.length; i += 1) {
s[i] = find_stringa(s[i], "{"+"{Indice sommario|", "}}", 0, "{"+"{").split(/\s*\|\s*/);
s[i] = JSON.stringify(s[i]).replace("[", "{").replace("]", "}").replace(/=/g, '":"');
s[i] = JSON.parse(s[i]);
}
return s;
};
sommarioDaNs0 = function() {
var urlPaginaBaseNs0 = mw.config.get("wgServer")+"/w/index.php?action=raw&title=" + mw.config.get("wgPageName").split("/")[0];
if (leggiBox() === "") urlPaginaBaseNs0 += "&" + Math.random();
var s = $.ajax({
url: urlPaginaBaseNs0,
async: false
}).responseText;
indice = $.trim(find_stringa(s.replace(/indice:/g, "Indice:"), '<section begin="URL della versione cartacea a fronte"/>Indice:', '<section end="URL della versione cartacea a fronte"/>', 0));
//caso proofread (Indice presente)
if (indice !== '') {
// cerca l'indice che punta a questa pagina (nel caso di più volumi potrebbe essere diverso da quello trovato sopra!)
backlinks = JSON.parse($.ajax({
url: mw.config.get("wgServer")
+ '/w/api.php?action=query&list=backlinks&blnamespace=110&bltitle=' + mw.config.get("wgPageName") + '&format=json',
async: false
}).responseText).query.backlinks;
if (backlinks != undefined && backlinks[0] != undefined) {
indice = backlinks[0].title.replace('Indice:', '');
console.info('ns0auto: trovato indice che punta qui: ' + indice);
}
s = Sommario(indice.replace(/ /g, "_"));
var ss = {};
for (i = 0; i < s.length; i += 1) {
if (mw.config.get("wgPageName").replace(/ /g, "_") === s[i].nome.replace(/ /g, "_")) {
ss = s[i];
break;
}
}
return {
"sommario": s,
"posizionePagina": i,
"indice": indice
};
}
//caso non proofread
else {
//costruisco una specie di sommario parsando l'indice della pagina base
paginaBase = mw.config.get("wgPageName").split("/")[0];
var urlPaginaBaseNs0 = mw.config.get("wgServer")+"/w/index.php?action=raw&title=" + paginaBase;
if (leggiBox() === "") urlPaginaBaseNs0 += "&" + Math.random();
var s = $.ajax({
url: urlPaginaBaseNs0,
async: false
}).responseText;
s = produciLista(s.replace(/\{\{testo/g, "{{Testo"), "{"+"{Testo|", "}}", 1);
for (var i = 0; i < s.length; i++) {
var ss = {}
//questo funziona solo per max 2 livelli!
ss.titolo = s[i].replace("{{Testo|/", "").replace("}}", "").split('|')[0];
ss.nome = paginaBase.replace(/_/g, " ") + "/" + ss.titolo
if (ss.titolo.indexOf('/') !== -1) {
ss.titolo = "";
}
s[i] = ss
}
var posizionePagina;
for (i = 0; i < s.length; i ++) {
if (mw.config.get("wgPageName").replace(/ /g, "_") === s[i].nome.replace(/ /g, "_")) {
posizionePagina = i;
break;
}
}
return {
"sommario": s,
"posizionePagina": posizionePagina
};
}
};
confirmReplaceText = function(testo, replaceText) {
if (replaceText) {
doWrite = mw.config.get("wgArticleId") === 0 || confirm("Il testo esistente verrà sostituito. Continuare?");
if (doWrite) {
scriviBox(testo);
$('#wpSummary').val('Creo pagina con [[Wikisource:La fabbrica dei giocattoli/autoNs0()|autoNs0]]');
}
} else {
var curPos = document.getElementById("wpTextbox1").selectionStart;
textBefore = $("#wpTextbox1").val();
$("#wpTextbox1").val(textBefore.slice(0, curPos) + testo + textBefore.slice(curPos));
}
};
ns0Auto = function(replaceText) {
if (replaceText === undefined)
replaceText = true; // se false, inserisce solo il tag pages e lascia invariato il resto
// ns0 pagina-base
pagename = mw.config.get("wgTitle");
if (pagename.indexOf('/') === -1) {
//recupera l'indice
var api_url=["/w/api.php?action=query",
"format=json",
"list=backlinks",
"blnamespace=110",
"bltitle=" + mw.config.get("wgPageName")].join("&");
var result = JSON.parse($.ajax( {url: api_url, async: false}).responseText);
backlinks = result['query']['backlinks'];
indiceSorgente = null;
if (backlinks.length > 0) {
indiceSorgente = backlinks[0]['title'];
} else {
console.log("ns0Auto: nessun Indice punta a questa pagina, impossibile precompilare");
}
if (indiceSorgente !== null) {
// array di tutti gli indici
indici = backlinks.map(function(value, index, array) {
return value.title;
});
new mw.Api().get({
action: 'query', prop: 'revisions', rvprop: 'content', titles: indiceSorgente, format: 'json'
}).done(function (data) {
$.each(data.query.pages, function(index, element) {
var ns0text = element.revisions[0]['*'].replace(/\n/g, '');
var data = parseTemplate(":MediaWiki:Proofreadpage_index_template", ns0text)[0];
//indice dei capitoli
var capitoli = produciLista(data["Sommario"], "|nome=", "|", 0);
//template qualità e intestazione
var intestazione = '{'+'{Qualità|avz=25%|data=' + oggi() + '|arg=Da definire}}'
+ "{"+"{Intestazione\n| Nome e cognome dell'autore = #autore\n"
+"| Nome e cognome del curatore = #curatore\n"
+"| Titolo =#titolo\n"
+"| Anno di pubblicazione = \n" //+"| Anno di pubblicazione = #anno\n"
+"| Lingua originale del testo =\n"
+"| Nome e cognome del traduttore = #traduttore\n"
+"| Anno di traduzione =\n"
+"| Progetto = #progetto\n"
+"| Argomento =\n"+
"| URL della versione cartacea a fronte = #url\n}}\n";
var testo = '';
if (replaceText) testo += intestazione.replace("#autore", data["Autore"])
.replace("#curatore", data["Curatore"])
.replace("#traduttore", data["Traduttore"]===undefined?'':data["Traduttore"] )
.replace("#progetto", data["Progetto"])
.replace("#url", indiceSorgente.replace(/_/g, " "));
// caso di pagina di primo livello uguale alla pagina base dell'opera
if (data["NomePagina"] == pagename) {
var titolo = data["NomePagina"].replace(/\s*\(.*?\)/, "");
if (data["Titolo"] !== "") titolo = data["Titolo"];
if (replaceText) testo = testo.replace("#titolo", titolo);
//trasclusione della pagina che si spera contenga il frontespizio
frontespizio = data["Immagine"];
if (frontespizio === undefined)
frontespizio = '1';
if (capitoli.length > 1) {
// se ci sono almeno 2 capitoli metti l'indice
testo += '\n\n<pages index="' + indiceSorgente.replace('Indice:', '') + '" from="' + frontespizio + '" to="' + frontespizio + '" />\n\n';
testo += "\n\n==Indice==\n\n";
// caso di più volumi: aggiungici il sommario dei successivi indici
if (indici.length > 1) {
for (var i = 1; i < indici.length; i++) {
var api_url=["/w/api.php?action=query",
"format=json",
"prop=revisions",
"rvprop=content",
"titles="+indici[i]].join("&");
var result=JSON.parse($.ajax({url:api_url,async:false}).responseText);
$.each(result.query.pages, function(index, element) {
var ns0text = element.revisions[0]['*'].replace(/\n/g, '');
var data = parseTemplate(":MediaWiki:Proofreadpage_index_template", ns0text)[0];
altriCapitoli = produciLista(data["Sommario"], "|nome=", "|", 0);
for (j = 0; j < altriCapitoli.length; j++) {
capitoli.push(altriCapitoli[j]);
}
});
}
}
if (replaceText) {
for (i = 0; i < capitoli.length; i++) {
var capitolo = capitoli[i].replace(data["NomePagina"], "").trim();
if (capitolo !== "") {
var c = count(capitoli[i], "/");
if (capitolo == capitoli[i].trim())
c++;
asterisk = "*******".substring(0, c);
if (asterisk == '')
asterisk = '*';
testo += asterisk + " {"+"{testo|" + capitolo + "}}\n";
}
}
}
confirmReplaceText(testo, replaceText);
} else {
// se non ci sono dei capitoli
$.ajax({
url: "/w/index.php?&title=" + indiceSorgente
}).done(function(response) {
content = $('.prp-index-pagelist', response);
lastPageNum = content.find('a').last().attr('title').split('/')[1].replace(' (la pagina non esiste)','');
testo += '\n\n<pages index="' + indiceSorgente.replace('Indice:', '') + '" from="' + frontespizio + '" to="' + lastPageNum + '" />\n\n';
confirmReplaceText(testo, replaceText);
});
}
} else {
// caso di pagina di primo livello DIVERSA dalla pagina base dell'opera
if (replaceText) testo = testo.replace("#titolo", pagename.replace(/\s*\(.*?\)/, ""));
indiceSenzaNs = indiceSorgente.replace('Indice:', '');
testo += '\n{{Raccolta|' + data["NomePagina"] + '}}';
testo += '\n\n\n<pages index="' + indiceSenzaNs + '" from="#from" to="#to" fromsection="" tosection="" />';
sommario = parseSommario(indiceSenzaNs);
for (k = 0; k < sommario.length; k++) {
if (sommario[k].nome == pagename) {
from = parseInt(sommario[k].from);
testo = testo.replace('#from', from);
// se c'è una pagina successiva prendi il from di quella
if (k + 1 < sommario.length) {
to = parseInt(sommario[k+1].from);
if (to > from)
to--;
testo = testo.replace('#to', to);
// vedi se le pagine successive sono sottopagine di queste
for (j = k + 1; j < sommario.length; j++) {
if (sommario[j].nome.startsWith(pagename + '/')) {
if (j == k + 1) {
testo += "\n\n==Indice==\n\n";
}
var capit = capitoli[j].replace(pagename, "");
if (capit !== "") {
var cap = count(capitoli[j], "/");
if (capit == capitoli[j])
cap++;
asterisk = "*******".substring(0, cap);
if (asterisk == '')
asterisk = '*';
testo += asterisk + " {"+"{testo|" + capit.trim() + "}}\n";
}
}
}
confirmReplaceText(testo, replaceText);
} else {
// altrimenti cerca il numero dell'ultima pagina dell'indice
$.ajax({
url: "/w/index.php?title=" + indiceSorgente.replace(/\s/g, "_"),
}).done(function(response) {
content = $('.prp-index-pagelist', response);
lastPageNum = content.find('a').last().attr('title').split('/')[1].replace(' (la pagina non esiste)','');
testo = testo.replace("#to", lastPageNum);
confirmReplaceText(testo, replaceText);
});
}
}
}
}
});
});
}
}
//sottopagina
else {
var dati = sommarioDaNs0();
var titolo = "";
thisPagina = dati.sommario[dati.posizionePagina];
paginaPrec = dati.sommario[dati.posizionePagina - 1];
paginaSucc = dati.sommario[dati.posizionePagina + 1];
if (thisPagina == undefined) {
console.error('ns0Auto: la pagina corrente non è stata trovata nel Sommario dell\'Indice:');
console.info(dati);
} else if (thisPagina.titolo !== undefined) {
titolo = thisPagina.titolo;
upperLevel = pagename.substring(0, pagename.lastIndexOf('/'));
if (upperLevel.indexOf('/') != -1) {
upperPage = upperLevel.substring(upperLevel.lastIndexOf('/') + 1);
titolo = '[[../|' + upperPage + ']]' + ' - ' + titolo;
}
}
var testo = '';
if (replaceText) testo += (
'{'+'{Qualità|avz=25%|data=' + oggi() + '|arg=Da definire}}' +
'{'+'{IncludiIntestazione|sottotitolo=#1|prec=../#2|succ=../#3}}\n\n')
.replace("#1", titolo);
if (dati.indice !== undefined && thisPagina !== undefined) {
pageFrom = thisPagina.from;
testo += '<pages index="#4" from="#5" to="#6" fromsection="" tosection="" />'
.replace("#4", dati.indice)
.replace("#5", pageFrom);
if (paginaSucc != undefined) {
pageTo = paginaSucc.from - 1;
// controlla che il to non sia precedente al from
if (pageTo < pageFrom)
pageTo = pageFrom;
testo = testo.replace("#6", pageTo);
} else {
$.ajax({
url: "/w/index.php?&title=Indice:" + dati.indice.replace(/\s/g, "_"),
}).done(function(response) {
content = $('.prp-index-pagelist', response);
lastPageNum = content.find('a').last().attr('title').split('/')[1].replace(' (la pagina non esiste)','');
testo = testo.replace("#6", lastPageNum);
confirmReplaceText(testo, replaceText);
});
}
}
// es. titolo/parte1/capitolo3
// titolo/parte2/capitolo1 prec=../../parte1/capitolo3 succ=../capitolo2
// titolo/parte2/capitolo2 prec=../capitolo1
//nome pagina al livello superiore
nomeSup = mw.config.get("wgTitle").substring(0, mw.config.get("wgPageName").lastIndexOf("/") + 1);
//nome pagina base
baseNome = mw.config.get("wgTitle").substring(0, mw.config.get("wgPageName").indexOf("/") + 1);
// caso primo della lista
if (paginaPrec != undefined && thisPagina != undefined) {
if (paginaPrec.nome.indexOf('/') == -1) {
// link alla pagina base
testo = testo.replace("../#2", "../");
} else {
testo = testo.replace("#2", paginaPrec.nome.replace(nomeSup, "").replace(baseNome, "../"));
}
} else testo = testo.replace("../#2", "");
//caso ultimo della lista
if (paginaSucc != undefined && paginaSucc.nome.indexOf('/') != -1) {
testo = testo.replace("#3", paginaSucc.nome.replace(nomeSup, "").replace(baseNome, "../"));
} else testo = testo.replace("../#3", "");
confirmReplaceText(testo, replaceText);
}
};
ns0AutoAddPagesTag = function() {
ns0Auto(false);
};
mw.ns0Auto=ns0Auto;
// da una pagina Indice in qualsiasi modalità ricava un dizionario pagineDjvu:pagineCarta
dictIndice = function() {
if (mw.config.get("wgAction") === "edit") {
var html = $.ajax({
url: mw.config.get("wgServer")+"/w/index.php?action=render&title=" + mw.config.get("wgPageName"),
async: false
}).responseText;
links = $(".pagineDellEdizione a", $(html));
} else {
links = $(".pagineDellEdizione a");
}
var lista = {};
var pagdjvu = '';
var pagcarta = '';
for (i = 0; i < links.length; i += 1) {
pagdjvu = $(links[i]).attr("title").split("/")[1].split(" ")[0];
pagcarta = $(links[i]).text();
while (pagcarta.substring(0, 1) === "0") pagcarta = pagcarta.substring(1);
lista[pagdjvu] = pagcarta;
}
return lista;
};
autoSommario = function() {
var djvu2page = dictIndice();
var np = $("input[name='wpprpindex-NomePagina']").attr("value");
var html = $.ajax({
url: mw.config.get("wgServer")+"/w/index.php?action=raw&title=" + np + "&random=" + Math.random(),
async: false
}).responseText.replace(/\{\{Testo\|/g, "{"+"{testo|");
var lista = produciLista(html, "{"+"{testo|", "}}", 0);
//delta=prompt("delta:");
//if (delta===null || delta==="") {alert("Operazione annullata"); return;}
var sommario = "";
for (i = 0; i < lista.length; i += 1) {
lista[i] = lista[i].split("|");
if (lista[i].length === 1) {
lista[i][1] = lista[i][0].substring(lista[i][0].lastIndexOf("/") + 1);
}
if (lista[i][0].substring(0, 1) === "/") {
lista[i][0] = np + lista[i][0];
}
html = $.ajax({
url: mw.config.get("wgServer")+"/w/index.php?action=raw&title=" + lista[i][0] + "&random=" + Math.random(),
async: false
}).responseText;
pages = find_stringa(html, "<pages", "/>", 0);
from = find_stringa(pages, "from=", " ", 0);
lista[i][2] = from;
delta = djvu2page[from];
if (/[0-9]+/.exec(delta) === delta) delta = from - delta;
lista[i][3] = delta;
sommario += ("{"+"{Indice sommario|nome=#0|titolo=#1|from=#2|delta=#3}}\n").replace("#0", lista[i][0]).replace("#1", lista[i][1]).replace("#2", lista[i][2]).replace("#3", lista[i][3]);
$('textarea[name="wpprpindex-Sommario"]').val(sommario);
$("#wpSummary").val("Sommario riscritto con il tool autoSommario()");
}
};
autoIndice = function() {
var s = sommarioDaNs0().sommario;
t = "== Indice ==\n";
p = mw.config.get("wgTitle");
for (i = 0; i < s.length; i += 1) {
if (s[i].nome.indexOf(p) === 0 && s[i].nome.length > p.length) {
tt = " {"+"{testo|" + s[i].nome.replace(p, "") + "|" + s[i].titolo + "}}\n";
for (j = 0; j < count(tt, "/"); j += 1) {
tt = "*" + tt;
}
t = t + tt;
}
}
scriviBox(leggiBox() + "\n" + t);
};
// la funzione estrae i dati da una div.hproduct passatagli come parametro,
// e se manca il parametro via ajax dalla pagina corrente,
// e restituisce una tabella con il footer dell'id dei campi, il testo della prima cella,
// e il testo html della seconda.
parseMetadata = function() {
if (mw.config.get("wgCanonicalNamespace") === "Indice" || mw.config.get("wgCanonicalNamespace") === "Index") fileUrl = mw.config.get("wgPageName").replace("Indice:", "File:");
if (mw.config.get("wgCanonicalNamespace") === "Pagina" || mw.config.get("wgCanonicalNamespace") === "Page") fileUrl = mw.config.get("wgPageName").substring(0, mw.config.get('wgPageName').lastIndexOf("/")).replace("Pagina:", "File:");
if (mw.config.get("wgCanonicalNamespace") === "" && mw.config.get("wgPageName").indexOf("/") === -1) fileUrl = $('a[title^="Indice:"]').attr("title").replace("Indice:", "File:");
if (mw.config.get("wgCanonicalNamespace") === "" && mw.config.get("wgPageName").indexOf("/") > -1) {
fileUrl = $('a[title^="Pagina:"]').attr("title").replace("Pagina:", "File:");
fileUrl = fileUrl.substring(0, fileUrl.lastIndexOf("/"));
}
$.ajax({
url: mw.config.get("wgServer")+"/wiki/" + fileUrl,
}).done(function(html) {
divdata = $(".hproduct", html);
// !! nuova
if ($(".ourDiv .hproduct").length === 0) {
divdata.appendTo($(".ourDiv"));
} else {
$(".ourDiv .hproduct").replaceWith(divdata);
}
$(".ourDiv").data("hproductData", parseInfo());
});
};
/****
add_spaces per aggiungere un numero di spazi vuoti a scelta
**Parametri
n: numero di spazi
**Note aggiuntive
Necessita di selection() per funzionare
*/
add_spaces = function(n) {
t = selection()
if (t[1] === "") {
r = t[0]
for (i = 0; i < n; i++) {
r = r + " "
}
r = r + t[2]
scriviBox(r)
}
};
// activeTab(): progetto in corso (disabilitata)
/* function activeTab(r) {
// creazione box
$('<div ondblclick="delShow()" style="line-height:1em; background-color:#FCFCFC; font-family:Courier; font-size:0.8pc; position:absolute; width:100%; height:100%; top:0px; right:0px; z-index:999; border:1px solid #bbb;" id="showCode"></div>').appendTo($("#mw-content-text"));
// creazione tabella
$("#showCode").append($('<table class="tabella" border="1" cellspacing="0" cellpadding="2" width="100%" ></table'));
// aggiunta righe 1-5
for (var i = 1; i < r[0].length + 1; i += 1) {
html = '<tr class="riga' + i + '"></tr>';
$(".tabella").append($(html));
}
// aggiunta colonne 1-4
$("tr", $(".tabella")).each(function () {
for (var i = 1; i < r.length + 2; i += 1) {
var classe = $(this).attr("class");
var html = '<td class="' + classe + ' ' + 'colonna' + i + '"> </td>';
$(this).append($(html));
}
})
// caricamento
//for (var i=0; i<r.length; i+=1) {$.each(r[i+1], function(indice,valore)
//{$(".riga"+(indice+1)+" .colonna"+(i+2)).html(valore);});}
for (var i = 0; i < r.length; i += 1) {
for (var j = 0; j < r[0].length; j += 1) {
$(".riga" + (j + 1) + " .colonna" + (i + 2)).html(r[i][j]);
}
}
// attivazione
$(".colonna1").append($("<textarea col='30' row='2' />"));
$("td:not(.colonna1)", $(".tabella")).click(function () {
$(this).siblings("td:not(.colonna1)").css("background-color", "white");
$(this).css("background-color", "yellow");
$("textarea", $(this).parent()).val($(this).text());
});
for (i = 1; i < r[0].length + 1; i += 1) {
$(".riga" + i + " textarea").val($(".riga" + i + " .colonna2").text())
}
}
*/
// Creazione oggetto sommario da nome pagina indice
// 1: Cattura testo pagina Indice da nomeIndice o base
//produciLista(parseTemplate(":MediaWiki:Proofreadpage_index_template",acchiappaWikicode(mw.config.get("wgPageName"))[1])[0].Sommario,"{"+"{Indice sommario","}}",1,"}}")
Sommario = function(nomePagina) {
// caso 1: default nome pagina corrente
if (nomePagina === undefined) {
nomePagina = mw.config.get("wgPageName");
}
// caso 2: nome base
if (nomePagina.indexOf("Indice") === -1) {
nomePagina = "Indice:" + nomePagina;
}
// cattura testo
var testo = acchiappaWikicode(nomePagina)[1];
// estrazione campo Sommario dopo parseTemplate
var Sommario = parseTemplate(":MediaWiki:Proofreadpage_index_template", testo)[0].Sommario;
Sommario = Sommario.replace(/<br\s?\/>/g, '').replace(/\s*([\|=])\s*/g, '$1');
// estrazione elementi Indice sommario e parsing
Sommario = produciLista(Sommario, "{"+"{Indice sommario", "}}", 1, "}}");
for (var i = 0; i < Sommario.length; i += 1) {
Sommario[i] = parseTemplate("Indice sommario", Sommario[i])[0];
}
return Sommario;
};
autoMatch = function() {
var s = sommarioDaNs0();
for (i = 0; i < s.sommario.length; i += 1) {
if (s.sommario[i].nome.replace(/_/g, " ") === mw.config.get("wgPageName").replace(/_/g, " ")) break;
}
var npagina = s.sommario[i].from;
var pagina = "Pagina:" + s.indice;
var match = "==__MATCH__:[[*]]==".replace("*", pagina + "/" + npagina);
var testo = leggiBox();
intest = find_stringa(testo, "{"+"{IncludiIntestazione", "}}", 1, "{"+"{");
scriviBox(testo.replace(intest + "\n", intest + "\n" + match));
};
/*newSections = function() {
var s=selection();
if (s[2].indexOf("<section end=s2 />")===-1) {
s[0]="<section begin=s1 />"+s[0]+"<section end=s1 />";
s[2]="<section begin=s2 />"+s[2]+"<section end=s2 />";
}
else {
s[0]=s[0]+"<section end=s2 />";
s[2]="<section begin=s3 />"+s[2].replace("<section end=s2 />","<section end=s3 />");
}
s[0].value=s[0]+s[1]+s[2];
//scriviBox(s.join(""));
scriviSel(s);
}*/
if ( mw.config.get("wgUserName") !== null ) {
importScript("Utente:"+mw.config.get("wgUserName")+"/PersonalButtons.js");
}
});
// </nowiki>