Aiuto:Strumenti per la rilettura: differenze tra le versioni

Da Wikisource.
Contenuto cancellato Contenuto aggiunto
Aubrey (discussione | contributi)
Aubrey (discussione | contributi)
Riga 25: Riga 25:
# '''Numero riga ogni 5'''
# '''Numero riga ogni 5'''
# ''' Num. riga ogni fine strofa'''
# ''' Num. riga ogni fine strofa'''
# '''Elimina tutti gli {{R}}'''
# '''Elimina tutti gli <nowiki>{{R}}</nowiki>'''
# '''converti é ->è'''
# '''converti é ->è'''
# '''spostamento note'''
# '''spostamento note'''
# '''inserimento {{testo}}'''
# '''inserimento <nowiki>{{testo}}</nowiki>'''
# '''AutoreCitato'''
# '''AutoreCitato'''



Versione delle 15:38, 3 set 2011

Aiuto: Guida agli Strumenti per la rilettura

Categoria: Guida al RegexMenuFrameworkManuale   Caratteristiche di Wikisource   Guida ai gadgets 

- Aiuto

Gli strumenti per la rilettura sono alcune semplici funzionalità aggiunte che aiutano a svolgere azioni ripetitive, facilitando la formattazione e la rilettura di un testo. Per attivarli, vai in Preferenze (prima riga in alto della pagina, quella che inizia con il tuo nome utente), scegli "Accessori" ed esamina la pagina.

Vedrai (dovresti vedere) questo, tratto dalle mie preferenze personali (immagine a sinistra)

screenshot al 7.03.2011

Seleziona il quarto pulsante (RegexMenuFramework) per "attivare il tool" di cui stiamo parlando. Ma seleziona anche alcuni o pulsanti aggiuntivi, o anche tutti: sono molto utili. Fatto questo, compariranno, nel menu verticale a sinistra, nella colonna del logo Wikisource, quando stai lavorando in modifica di una pagina, alcuni link aggiuntivi, e precisamente questi che vedi a destra:

File:Preferenze rmf.gif
screenshot al 13.03.11

. E' quello di cui stiamo parlando; le prime due opzioni sono quelle che aggiustano, al volo, il testo grezzo proveniente dall'OCR (ma non solo) e gestiscono il template RigaIntestazione; gli altri cinque sono dedicati alla numerazione dei versi.

Tecnicamente, sono piccoli script programma javascript, (la "base" scritta originariamente da Pathoschield), che aggiunge funzioni speciali in fondo alla lista delle funzioni a sinistra della pagina. Si tratta di funzioni che operano sul testo in fase di modifica, che integrano i pulsanti in testa alla finestra di modifica e il toolbox in fondo alla pagina; mentre i due ultimi tool facilitano l'inserimento di codici semplici o di caratteri speciali, le funzioni gestite da Regex Menu Framework generalmente eseguono funzioni più complesse.

Funzioni attivate

Settembre 2011:

  1. aggiungi tag poem
  2. aggiusta paragrafi
  3. postOCR
  4. RigaIntestazione
  5. Numero riga ogni 3
  6. Numero riga ogni 4
  7. Numero riga ogni 5
  8. Num. riga ogni fine strofa
  9. Elimina tutti gli {{R}}
  10. converti é ->è
  11. spostamento note
  12. inserimento {{testo}}
  13. AutoreCitato

postOCR

Cosa fa

La funzione postOCR esegue una serie di semplici correzioni del testo, eliminando molti dei piccoli difetti caratteristici dei testi che provengono da un OCR (denominati scannos). La funzione è in via di revisione e miglioramento; è opportuno utilizzarla solo nelle prime fasi della correzione e formattazione, usandola invece con cautela su testo già formattato.

Mentre le prime versioni non riconoscevano le zone del testo dove è necessario conservare gli a capo"perchè indispensabili alla corretta formattazione, la versione attuale riconosce, e risparmia, gli a capo significativi per il codice wiki. E' quindi consigliabile NON lanciare la funzione sull'OCR grezzo, ma applicare subito, su tale testo, alcuni codici di formattazione, in modo da permettere allo script di agire "a ragion veduta".

E' quindi opportuno aggiungere subito, prima di lanciare la correzione postOCR, i seguenti codici:

  1. i tag poem per delimitare i versi; gli acapo compresi fra poem saranno rispettati;
  2. i tag che all'inizio di una riga indicano un elemento di una lista e precisamente * e # (usati per le liste) e ; e : (utlizzati per i dialoghi); gli acapo immediatamente precedenti saranno rispettati;
  3. i tag relativi alle tabelle in formarto wiki (ogni elemento della tabella inizia con un carattere { o |); anche in questo caso gli acapo saranno rispettati.

Bisogna evitare invece di lanciare la funzione quando il testo contiene già link oppure template; in questo caso, la conversione degli apostrofi da dattilografico a tipografico potrebbe "rompere il link" se i nomi delle pagine, delle funzioni o dei parametri richiamati contengono apostrofi (es: parametro "Nome dell'autore" all'interno del template Intestazione).

Approfondimento

La funzione deriva da analoga funzione predisposta per i testi in inglese ed è stata parzialmente adattata agli scannos tipici dei testi italiani; può essere ulteriormente perfezionata e tutti gli utenti sono incoraggiati ad annotare e segnalare (nel bar generale o nel bar tecnico) errori ricorrenti che potrebbero essere integrati nella funzione.

Le correzioni più importanti che la funzione postOCR esegue sono:

  1. eliminazione degli acapo singoli a fine riga; automaticamente disabilitato se il testo contiene un tag poem. Suggerimento: inserire il tag poem immediatamente, non appena caricato l’eventuale OCR della pagina.
  2. riunione delle parole spezzate a fine riga (escludendo le zone poem, le liste e le tabelle);
  3. correzione degli spazi adiacenti alla punteggiatura;
  4. trasformazione degli apostrofi da tipografici a dattilografici (con conservazione degli apostrofi che costituiscono markup wiki per ottenere il corsivo e il grassetto).
  5. correzione di scannos frequenti nei testi italiani (è in corso il caricamento degli errori più comuni)
  6. richiamo della funzione RigaIntestazione, con un'opzione toggle=false (vedi #RigaIntestazione).

È opportuno controllare rapidamente, dopo lanciata la funzione, che non siano stati commessi errori; per facilitare il controllo è opportuno lanciare la funzione prima della rilettura e formattazione, in modo che eventuali errori possano essere corretti immediatamente, ma dopo aver aggiunto i tag poem, "teatro", tabelle.

Nella prossima versione, gli apostrofi all'interno dei link e template saranno rispettati.

RigaIntestazione

Cosa fa

Facilita l'inserimento del template {{RigaIntestazione}} nell'header delle pagine Pagina, senza obbligare a visualizzare l'header. Il comportamento della funzione è il seguente:

  1. se esiste un template RigaIntestazione nell'header oppure nel box di edit, lo sposta dall'uno all'altro;
  2. se non esiste alcun template RigaIntestazione, ne aggiunge uno in box di edit, eventualmente utilizzando i dati contenuti nella variabile datiPagine;
  3. se esistono due template RigaIntestazione, sia nell'header che nel boc di edit, crea un alert (errore)
Come funziona
  • il primo click fa comparire il template {{RigaIntestazione}} nella casella di modifica. In questo momento, si può compilare il template con i dati del numero di pagina o del nome del capitolo.
  • il secondo click sposta il template (compilato) nell'header.
Approfondimento

Il comportamento della funzione chiamata dal link RigaIntestazione è caratterizzato dalla opzione toggle=true; differisce leggermente dal comportamento della funzione chiamata da postOCR e da aggiusta paragrafi, dove invece è attiva l'opzione toggle=false. La differenza consiste nel fatto che

  1. con l'opzione toggle=true l'eventuale template RigaIntestazione presente nell'header viene riportato nel box di modifica del testo; se il template è presente nel box di modifica testo, viene sopostato nell'header;
  2. con l'opzione toggle=false l'eventuale template RigaIntestazione presente nell'header NON viene riportato nel box di modifica del testo; ma se il template è presente nel box di modifica testo, viene sopostato nell'header.

Inoltre la funzione normalizza il template alla forma regolare {{RigaIntestazione}} eventuali template scritti con codice alternativo, come {{ri|...}} oppure {{Ri|...}}.

In pratica: il ripetuto richiamo di postOCR e aggiusta paragrafi fa comparire RigaIntestazione (primo click), poi lo sposta nell'header (secondo click), e i click successivi non fanno nulla; al contrario, con RigaIntestazione è sempre possibile spostare da una parte all'altra, alternativamente, il template.

Consigli
  • Per capire meglio il meccanismo, è opportuno, per qualche tempo, utilizzare tali funzioni con l'header visualizzato.

datiPagine

datiPagine è una variabile che contiene "oggetti", ossia alcuni dati strutturati, reklativi alle opere su cui ci sono lavori in corso.

La variabile contiene alcuni valori precaricati, e viene nella dalla pagina Utente:Alex_brollo/variabili_opera.js. Questi dati sono disponibili per tutti gli utenti che attivino RegexMenuFramework.

La stuttura della variabile (un "array associativo") è la seguente, utilizzando Indice:Le confessioni di un ottuagenario I.djvu come esempio attivo:

datiPagine={
'Le confessioni di un ottuagenario I.djvu':{
                  'delta':27,
                  'pari':'{{RigaIntestazione|#pag|{{Sc|le confessioni d’un ottuagenario.}}|}}',
                  'dispari':'{{RigaIntestazione||{{Sc|capitolo secondo.}}|#pag}}',
                  'tipo':'prosa',
                  'regex':"é|è||\\*|'||air |all'|| r |l'||deir |dell'||eh'|ch'"
                  },
.....
};

Vedete quindi nell'ordine:

  1. il nome base della pagina/dell'Indice;
  2. il delta che è lo scarto fra numero pagina djvu e numero pagina cartacea; in questo caso, la pagina djvu 29 corrisponde alla pagina cartacea 2 (29-delta, ossia 29-27);
  3. il codice di RigaIntestazione per le pagine pari; quello per le pagine dispari. In entrambi, la posizione che deve assumere il numero pagina è marcato con #pag. I dati vengono facilmente aggiornati al capitolo correntemente "in lavoro".
  4. il tipo è il tipo di testo prevalente, assume valori fissi: poesia, prosa o misto. In base al tipo dell'opera possono essere eseguite specifiche routine (ad es. aggiunta automatica di poem; alert "Vuoi numerare i versi?")
  5. la lista delle sostituzioni regex: si tratta di una lista di coppie di stringhe; la funzione postOCR esegue, oltre alle sostituzioni di default, quelle specificate nella lista. La lista è una serie di coppie di valori; le coppie sono separate da ||, i singoli valori da |. La compilazione è abbastanza delicata quando fra i caratteri vi sono caratteri speciali regex; in questo caso, i caratteri devono essere preceduti da due caratteri \ (vedi seconda sostituzione nell'esempio).

Questi dati vengono usati da RigaIntestazione con questo procedimento:

  1. lo script esamina il titolo della pagina corrente e procede nel caso che si tratti di una pagina nel nsPagina; estrae la base del titolo e il numero di pagina corrente;
  2. utilizzando il delta, calcola il numero di pagina cartacea e decide se tale numero è pari o dispari;
  3. nei due casi, utilizza i valori "pari" o "dispari" infilando il numero pagina cartacea al posto del marcatore #pag.

Il sistema funziona correttamente solo nel caso che il delta sia costante in tutta l'opera (pagine mancanti, tavole fuori numerazione, ecc. possono interferire con il delta). A questo si può porre rimedio.... ma per ora basta così. :-)

Come aggiungere i dati di un'opera a cui si sta lavorando personalmente

Per aggiungere al datiPagine di base i dati di un'opera personale, basta scrivere nel proprio vector.js questo (ovviamente è un esempio.... adattate i dati all'opera che vi interessa!):

datiPagine['Rivista di Scienza - Vol. I.djvu']={
                  'delta':10,
                  'pari':'{{RigaIntestazione|#pag|{{Sc|rivista di scienza}}|}}',
                  'dispari':'{{RigaIntestazione||{{Sc|}}|#pag}}'
                  };

Si tratta di un "semplice" :-P aggiornamento di un array associativo, ossia a chiave; per aggiungere un nuovo elemento basta inserire il contenuto di una nuova chiave (in questo caso, il blocco delta, pari, dispari, sono il contenuto, e la chiave è 'Rivista di Scienza - Vol. I.djvu').

Attenzione! Se il nome dell'opera o il codice RigaIntestazione contengono caratteri "speciali", e in particolare gli apostrofi, è necessario far precedere a ciascun carattere un "escape", ossia questo carattere: \. Nel caso degli apostrofi, si può utilizzare le doppie virgolette per delimitare una stringa che contiene virgolette singole:

 "Cabala del cavallo Pegaseo con l'aggiunta dell'Asino Cillenico"

oppure con caratteri di escape:

 'Cabala del cavallo Pegaseo con l\'aggiunta dell\'Asino Cillenico'

Aggiusta paragrafi

Aggiunge una riga vuota dopo le righe in cui probabilmente finisce un paragrafo. Le righe di fine paragrafo, nei più comuni OCR, possono essere indovinate come quelle in cui:

  1. la riga termina con un punto, un punto interrogativo, o un punto esclamativo, seguiti da un acapo singolo

Il meccanismo è grossolano, ma indovina spessissimo. Da NON usare, al momento, sui testi poetici (aggiungerebbe una riga vuota a tutti i versi che terminano con uno dei caratteri indicati)

Esegue anche una chiamata alla routine RigaIntestazione, con un'opzione toggle=false (vedi #RigaIntestazione).

Converti é -> è

Funzione semplice ma utile quando la conversione sia l'unica cosa da fare nella pagina. Tuttavia la funzione, che tipicamente è specifica per l'opera (applicarla in alcune opere sarebbe un errore: es. testi moderni, testi curati dal Carducci) può essere totalmente automatizzata registrando la sostituzione nella lista associata a datiPagine.

Aggiungi tag poem

Racchiude semplicemente l'intero testo della pagina dentro tag poem. Il suo scopo è permettere di utilizzare, subito dopo, postOCR evitando che venga attivata la funzione di eliminazione degli acapo singoli. La sua applicazione sarà automatizzata registrando in datiPagine la variabile tipo=poem; dopodichè, la stessa funzione postOCR, applicherà il tag poem alle nuove le pagine per default.

spostamento note

Cosa fa

Strumento per facilitare la rilettura di pagine con molte note. Alterna due tipi di visualizzazione:

  1. visualizzazione normale: le note sono al loro posto, all'interno di tag <ref>....</ref> nel contesto del testo. Se sono numerose e lunghe, risulta difficilissimo rileggere la pagina.
  2. visualizzazione a fondo pagina: al posto delle note viene inserito un "codice marcatore" e il testo delle note, tag ref compresi, viene spostato in fondo pagina, là dove stanno nella pagina stampata a fronte. L'accorgimento rende molto, molto più facile la rilettura. Finita la rilettura, un nuovo click sulla stessa funzione rimette le cose a posto.
Consigli

Avvertimento 1: nella prima correzione dellla pagina, occorre inserire nel testo, nel punto di richiamo nota, questo codice: <sup>nota</sup>. Se lo strumento risulterà gradito, sarà creato un tastino per inserire il codice con un solo click. Le note a fondo pagina (là dove si trovano nel testo da OCR) vanno corrette sul posto e delimitate con il solito tag ref. Poi, un click su spostamento note, ed è fatta. :-) Ma attenzione: è necessario che il numero dei marcatori, e il numero delle note corrispondano esattamente. E' l'errore più comune e il suo effetto è molto spiacevole. Per evitarlo è statointrodotto un controllo: in caso di diseguaglianza fra i due numeri, lo script emette una protesta e si interrompe.

Avvertimento 2: Attenzione! NON provate a "mescolare le due modalità", ossia: ad aggiungere nuovi marcatori <sup>nota</sup> a una pagina in cui le note sono al loro posto, all'interno del testo, oppure ad aggiungere tag ref all'interno del testo, nella visualizzazione con le note a fine pagina. Per correggere eventuali errori, utilizzate la visualizzazione "normale", con le note al loro posto, e aggiungete, con la metodica tradizionale, le eventuali note mancanti con il tag ref all'interno del testo; oppure, cambiate visualizzazione e aggiungete il marcatore <sup>nota</sup> dove manca, e in fondo alla pagina, il testo della nota mancante, racchiusa fra tag ref e nella posizione corretta rispetto alle altre. Mescolare le due procedure comporta un completo rimescolamento delle note.

Numero riga ogni....

Queste funzioni vengono utilizzate per la numerazione dei versi. Aggiungono un template {{R}} ogni 3, 4, 5... righe, oppure all'ultima riga di ogni strofa. Le righe da numerare devono essere comprese all'interno di tag <poem></poem>.

Per effettuare la numerazione:

  • posizionare il cursore all'interno del tag poem di cui si desidera numerare le righe
  • cliccare la funzione desiderata nel menu a sinistra
  • comparirà una finestrella di popup, dove va inserito il numero del primo verso della pagina (1 se la poesia inizia nella pagina corrente).

Se la pagina contiene più di una poesia, ovvero più di un tag <poem></poem>, la numerazione va effettuata separatamente per ognuno di essi, posizionando di volta in volta il cursore all'interno dei diversi poem.

Lo script ha la caratteristica di memorizzare il numero dell'ultimo verso della pagina, e di renderlo disponibile nella pagina successiva; questo meccanismo funziona però soltanto quando si scorrono le pagine in serie, utilizzando il link-freccia "pagina successiva". In questo caso, nel popup di conferma comparirà un numero che è la "continuazione" della numerazione presente nella pagina precedente.

Occorre porre attenzione al caso in cui singoli versi sono spezzati in due parti, evenienza comune nei testi in versi che comprendono dialoghi: in questo caso bisogna verificare attentamemte il risultato ed eventualmente correggerlo, spostando nella giusta collocazione i template R apposti dalla funzione.

L'intera funzione è scritta da Candalua, a cui vanno rivolti eventuali quesiti e suggerimenti. Lo script è attualmente (febbraio 2011) in pieno sviluppo, quindi il comportamento delle funzioni potrà essere soggetto a modifiche.

Domande?

Se hai domande, dubbi, proposte o necessiti di chiarimenti sui regex Menu Framework premi qui per lasciare un messaggio nella pagina di discussione oppure apri una discussione nel bar principale.

Note

[[|]]