Vai al contenuto

Wikisource:La fabbrica dei giocattoli

Da Wikisource.
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 (è sufficiente 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!