Wikisource:La fabbrica dei giocattoli

La fabbrica dei giocattoli

Categoria: Progetto qualitàPortale progetti   Progetto qualità   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
 
Cosa selezionare in Preferenze->Accessori

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()");
 
La bottoniera
  • 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:

  1. in quali modalità visualizzare il bottone
  2. 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

L'ultimo giocattolo creato è add_spaces()

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 (è suffciente il caricamento del gadget "bottoniera")


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

  1. Se invece tu dovessi compiere sostituzioni o azioni ripetitive su molte pagine già trascritte è meglio che tu chieda l'intervento di un bot
  2. 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!