Wikisource:La fabbrica dei giocattoli
La fabbrica dei giocattoli è il luogo dove piccoli straordinari programmini vengono creati da grandi menti!
Supponiamo che tu stia lavorando alla trascrizione di un testo e che ti occorra un automatismo che compia una (o più) azioni su tutte le pagine che stai trascrivendo o rileggendo una a una1.
Hai bisogno di uno strumento specifico per operazioni ripetitive? Qui trovi un sistema semplice per commissionarlo e utilizzarlo!
Cosa sono i giocattoli?
[modifica]I giocattoli in linguaggio tecnico sono delle funzioni JavaScript assegnabili al clic di pulsanti richiamabili da un altro script...
...ma se il linguaggio tecnico non ti interessa la novità interessante è che per attivare e usare degli strumenti la procedura è semplice:
Come accedere ai giocattoli
[modifica]Prima di tutto va premesso che tutta la procedura è accessibile ai soli utenti registrati.
- 1) Attiva la bottoniera
In primo luogo occorre attivare la bottoniera:
- vai alla pagina delle tue Preferenze,
- vai alla scheda Accessori e dalla lista di opzioni nella sezione strumenti di interfaccia attiva i due gadget:
- la raccolta dei giocattoli.
- la bottoniera
- A questo punto salva le preferenze.
- 2) Aggiungiti i giocattoli
Hai attivato i due gadget? Bene, ora sei pronto per aggiungere i giocattoli:
- Vai nella tua pagina personale "common.js" e
- clicca sulla linguetta Modifica:
- nella pagina inserirai i codici per attivare uno, alcuni o anche tutti gli script della collezione che trovi nell'elenco sottostante.
Il solo codice da inserire (non dimenticate il punto e virgola finale) è:
newButton("nome_del_bottone","nome_della-funzione");
Ad esempio, se vuoi creare un bottone che abbia scritto sopra Box codice che richiami show(), scriverai esattamente, nel tuo vector.js:
newButton("Box codice","show()");
- ripeti per ognuno dei bottoni che vuoi creare2.
Per ognuno dei giocattoli che sceglierai, comparirà — come nella figura qui accanto — un piccolo bottone, cliccando sul quale eseguirai l'azione del giocattolo. Il nome di questa raccolta di bottoni è la bottoniera.
- 3) Ancora un ultimo piccolo sforzo....
Nel codice per creare un bottone puoi aggiungere due parametri opzionali:
- in quali modalità visualizzare il bottone
- un messaggio di aiuto che comparirà quando il mouse passa sopra il bottone
- In quali modalità visualizzare il bottone
- Le "modalità" previste sono
- view (visualizzazione pagina), abbreviato in v
- edit (modifica), abbreviato in e
- submit (anteprima), abbreviato in s e
- history (cronologia), abbreviato in h.
- Aggiungi come terzo parametro le abbreviazioni delle modalità in cui volete che il bottone compaia; se non aggiungi niente, il valore è "ves", vale a dire che il bottone comparirà in visualizzazione, modifica, anteprima.
- Il messaggio di aiuto
- Non è facile ricordare cosa fanno i bottoni, soprattutto se la loro etichettà è una parola o una sigla non immediata! Puoi aggiungere in un quarto parametro con una frase di aiuto a tua scelta. Se non scrivi nulla, comparirà il messaggio "Nessun messaggio di aiuto registrato".
Il nuovo codice del bottone Box codice (che ha senso solo in visualizzazione) può quindi essere:
newButton("Box codice","show()","v","Visualizza il codice wiki della pagina corrente");
Elenco dei giocattoli già pronti
[modifica]Quali giocattoli già pronti potrebbero servirti? Questo che segue è un elenco di quelli finora disponibili. Ognuno ha un commento e una documentazione: NON si tratta di vere e proprie istruzioni per l'uso, ma solo di una nota per ricordare di cosa si tratta. I giocattoli più utili saranno illustrati uno a uno.
- Tools contenuti in MediaWiki:Gadget-Tools.js
- add_spaces() (Doc): aggiunge il determinato numero di spazi nella posizione del puntatore
- autoSommario() (Doc): in alcune condizioni automatizza completamente la creazione del campo Sommario della pagina Indice
- autoNs0() (Doc): in alcune condizioni automatizza completamente la creazione delle sottopagine transcluse in ns0
- autoreIgnoto() (Doc): scrive l'elenco delle pagine che usano il template autoreIgnoto accoppiate con l'autore evidenziato con il template (proposta di Luigi62)
- BibbiaTrasBox() (Doc): apre una finestra di dialogo per permettere la trasclusione di testo della Bibbia (momentaneamente solo Diodati)
- pr_toggle_layout() (Doc): alterna la visualizzazine di edit pagina verticale/orizzontale
- cerca() (Doc): ricerca un testo all'interno di una pagina (in modo interattivo o automatico)
- note() (Doc): gestisce l'inserimento di <sup>nota</sup> e di <ref>...</ref>
- thumbs() (Doc): crea le immagini a 200px di una serie di pagine
- autoPt() (Doc): previa selezione, applica il template Pt alla prima e alla seconda parte di una parola spezzata in due pagine successive.
- preOCR() (Doc): elimina dal testo di un OCR grezzo e difettoso caratteri bloccanti postOCR quando presenti random ([]<>{}).
- newRi() (Doc): scrive in header il testo di RigaIntestazione adattandolo da quello di due pagine precedenti
- incapsula(pre,post) (Doc): aggiunge la stringa pre e la stringa post alla selezione (azione tipo encapsulate)
- rtg() (Doc): rimuove alcuni tag dalla selezione
- verificaNote() (Doc): verifica il numero d'ordine delle note registrate
- bibbia3() (Doc): riconosce e formatta link di base in Bibbia
- bibbia4() (Doc): include una serie di link entro tag ref
- bibbia5() (Doc): riconosce e formatta link secondari in Bibbia
- bibbia6() (Doc): inserisce il codice per i sottotitoli corsivi di Bibbia
- eraseWl() (Doc): cancella tutte le righe vuote della pagina
- tq() (Doc): calcola il SAL di una pagina ns0 e aggiorna il tl Qualità
- show() (Doc): gestisce il box di visualizzazione del codice wiki della pagina corrente
- ottavaGl() (Doc): script opera-specifico che sistema la formattazione di un'ottava di Gerusalemme liberata (versione da match and split)
- tableMaker() (Doc): costruisce il codice prettytable dalla selezione di un copiaincolla di una tabella excel (copiaincollare una tabella excel, selezionare, cliccare)
- tabSomMaker() (Doc): dal copiaincolla di una tabella excel prepara la serie di Indice Sommario
- ThPurge() (Doc): esegue il purge dei due thumbnails dell'immagine della pagina
- Tools contenuti in MediaWiki:Gadget-RegexMenuFramework.js
- mostraTrovaSostituisci() : Trova e sostituisci di Candalua (trova & sostituisci)
- rimuoviPrimaRiga(): Cancella la prima riga della pagina (elimina riga 1)
- aggiustaParagrafi(): Aggiunge una riga vuota dopo le righe che terminano con punteggiatura di fine paragrafo (aggiusta paragrafi)
- cleanup(): Corregge piccole imperfezioni del testo prodotto da OCR e riunisce le parole spezzate a fine riga (postOCR)
- RunningHeader(): Aggiunge il template RigaIntestazione e lo sposta dall'header al testo e viceversa (RigaIntestazione)
- numeroRiga(2, 3): Aggiunge la numerazione dei versi al <poem></poem> in cui ti trovi, inserendo il numero ogni 3 versi (Numerazione riga ogni 3)
- numeroRiga(2, 4): Aggiunge la numerazione dei versi al <poem></poem> in cui ti trovi, inserendo il numero ogni 4 versi (Numerazione riga ogni 4)
- numeroRiga(2, 5): Aggiunge la numerazione dei versi al <poem></poem> in cui ti trovi, inserendo il numero ogni 5 versi (Numerazione riga ogni 5)
- numeroRiga(1): Aggiunge la numerazione dei versi al <poem></poem> in cui ti trovi, numerando il verso finale di ogni strofa. (Numerazione riga ogni fine strofa)
- numeroRiga(0): Rimuove la numerazione dei versi (Elimina tutti gli {{R}})
- convertiAcuti(): Converte le lettere é in lettere è, rispettando le convenzioni ortografiche correnti nei testi non recenti (converti é -> è)
- virgolette(): Converte le doppie virgolette dattilografiche "" in doppie virgolette tipografiche “” (una seconda chiamata alla funzione inverte le virgolette) (virgolette)
- toggleNote(): Sposta le note dal corpo del testo a fine testo e viceversa per facilitare la rilettura (spostamento note)
- modificaDatiPag(): Permette di modificare i dati pagina e di memorizzarli in un cookie (modifica dati Pagina)
- resetCook(): Ricarica i dati pagina originali di MediaWiki:Variabili.js o del proprio vector.js (reset dati Pagina)
- acrepl(): normalizza AutoreCitato trasformandolo in chiamata a due parametri (AutoreCitato)
- inizialeMaiuscola(): Rende maiuscola la lettera iniziale di versi e righe (iniziale maiuscola)
- Tools contenuti in MediaWiki:Common.js (è sufficiente il caricamento del gadget "bottoniera")
- emergenza() (Doc): carica il testo da memoria sulle pagine apparentemente vuote di Indice:Rivista di Scienza - Vol. II.djvu
- Funzioni di utilità (usate da tools; non producono azioni utili se richiamati mediante un bottone)
- delShow(): chiude il box aperto da show()
- r2n(): trasforma numero romano in arabo
- n2r(): trasforma numero arabo in romano
- oggi(): restituisce la data corrente formattata come "20 marzo 2012"
- splitPagina(testo): separa in una lista header, corpo, footer il codice di una pagina Pagina
- lpp(): legge il testo della pagina Pagina precedente in testoPagPrec e di quella ancora precedente in testo2PagPrec (in entrambi i casi come lista di header, corpo, footer)
- ultimoV(): ottiene il numero dell'ultimo verso nella pagina precedente in alcuni casi in cui il tool di Candalua fallisce
...e se mi serve un giocattolo che non c'è ancora?
[modifica]Qui sta il bello: puoi chiederlo nella Pagina apposita. Lì troverai le istruzioni
- Spiega esattamente cosa vuoi che faccia il tuo giocattolo,
- Poni la tua firma nella domanda e...
- attendi pazientemente: qualche tecnico che partecipa al progetto prenderà in considerazione la tua domanda e ti risponderà.
Note
- ↑ Se invece tu dovessi compiere sostituzioni o azioni ripetitive su molte pagine già trascritte è meglio che tu chieda l'intervento di un bot
- ↑ Questo vale per tutti gli strumenti il cui nome termina con una coppia di parentesi vuote; ma è già comparso il primo caso in cui all'interno della coppia di parentesi ci sono due parametri: incapsula(pre,post). Nemmeno questo caso è particolarmente complesso, ma è un po' delicato: meglio consultare la documentazione della funzione e fare molta attenzione alle virgolette!