Wikisource:La fabbrica dei giocattoli/autoSommario()
Ideatore e scopo
modificaIl giocattolo è stato immaginato da Utente:Alex brollo per aiutare l'utente a creare il campo Sommario di pagine Indice che sono già transcluse in ns0, ed hanno dunque già il sommario creato con i template {{testo}}.
Il Sommario verrà costruito nella pagina Indice con il nuovo codice per il template {{Indice sommario}}.
L'utilizzo dello strumento autoSommario è dunque utile per creare Indici di opere precedentemente pubblicate su Wikisource (magari utilizzato assieme a Match & Split).
Meccanismo
modificaLo script, che va attivato dalla pagina Indice, in edit, legge:
- il nome della pagina principale collegata all'Indice:
- la pagina principale, estraendo i template {{Testo}} ed estraendone i dati;
- ognuna delle sottopagine, estraendone il valore del parametro from= del tag pages;
- i dati contenuti nella tabella pagine della pagina Indice (creati da pagelist)
Installazione
modificaIl codice da aggiungere nel proprio vector.js è il seguente:
newButton("autoSommario","autoSommario");
Istruzione ed avvertenze
modifica- Attenzione!
- Come si intuisce dal meccanismo, lo script deve leggere via AJAX parecchie pagine, tante quante sono le sottopagine; non meravigliatevi se per parecchi secondi non dà segno di vita. NON schiacciate più volte per sburtare.
Il tool funziona solo se:
- esiste la pagina principale corrispondende alla pagina Indice
- nella pagina principale esiste un indice costruito con i template Testo;
- tutte le pagine, collegate dal template Testo, contengono un tag pages con un campo from=.
Se queste tre condizioni sono rispettate, allora la pressione del bottone autoSommario:
- compila un campo Sommario completo sostituendo completamente il precedente contenuto del campo Sommario
- nel caso in cui il tl Testo abbia, come secondo parametro, il codice riga=tradizionale invece che il titolo della sottopagina, allora questo parametro viene erroneamente inserito nel parametro titolo= e va corretto a mano.
Bug e casi speciali
modifica- Il template testo ha solo due parametri e il secondo parametro è tipo=tradizionale
- Soluzione: modificare i template {{testo}} aggiungendo il secondo parametro (titolo capitolo) facendo diventare tipo=tradizionale terzo parametro, che viene ignorato
- Le pagine/sottopagine non contengono il tag pages
Alcune pagine in ns0 sono costruite con il template Pagina e non con il tag pages. Questo avviene quando il tag pages creava problemi specifici (frequenti nelle opere bilingui).
- Soluzione: i nuovi parametri aggiuntivi di pages [1], e in particolare onlysection e step, consentono di evitare l'uso di {{Pagina}} in una varietà di situazioni. Per autoSommario() è sufficiente che esista il parametro from= dentro un tag pages; gli altri parametri sono ignorati.
- Le pagine principali non contengono alcun template {{testo}}
Avviene:
- nelle pagine monoblocco di testi brevi,
- oppure in casi in cui le sottopagine sono linkate con link normali per scelta del contributore.
- Soluzione:
- nel caso 1, si può rinunciare e scrivere Indice sommario a mano, oppure si può aggiungere (per opportuna generalizzazione) un {{testo}}che punta alla stessa pagina, mascherato dentro un template {{Nascondi}}.
- nel caso 2, è opportuno trasformare i link normali in chiamate di {{testo}};
- Nel template {{testo}} il parametro 2 contiene template di formattazione del testo
- Soluzione temporanea: eliminare i template di formattazione dal secondo parametro oppure correggere a mano il {{Indice sommario}} erroneo
- Il campo pagine di Indice
- contiene codice aggiuntivo (in particolare link a immagini, generati da un template)
- Soluzione: spostare il codice fuori dal campo pagine rimettendocelo eventualmente dopo il lancio di autoSommario
- La sottopagina in ns0 non contiene alcun template pages (avviene nelle sottopagine "puri indici")
- Soluzione: la riga prodotto si riconosce a occhio perchè al momento ha NaN rosso come numero pagina. Correggere a mano assegnando gli stessi valori from, delta della riga immediatamente successiva.