Progetto:Trascrizioni/Template per pagine consecutive

Nelle opere proofread si incontra un problema ricorrente, quando la stessa formattazione deve estendersi su più pagine consecutive: come rendere la corretta formattazione sia nelle singole pagine, che nella trasnclusione complessiva. Il problema non è banale, in quanto è molto difficile evitare che la fine di una div, o di una tabella, interrompa il flusso del testo e crei un fastidioso acapo nella transclusione.

Per evitarlo, secondo la teoria sviluppata ampiamente su en.source e su fr.source, è opportuno spezzare i template di formattazione in due parti: una parte "inizio" e una parte "fine". Dopodichè basta mettere nell’area transcusa solo il primo template inizio, quello nella prima pagina della sequenza, e solo l’ultimo template fine, quello sull’ultima pagina della sequenza, mettendo invece tutti gli altri template inizio e fine nelle aree header-footer, che non vengono transcluse. Avviene così che scorrendo le pagine Pagina, in ogni pagina saranno attivi sia il template inizio che il template fine, indifferentemente se siano nel testo o nelle aree header/footer; nella pagina transcusa, invece, agirà solo il primo template inizio, e solo l'ultimo template fine, e quindi risulterà un unico blocco di formattazione.

Nulla impedisce di applicare il template inizio e fine anche ai casi in cui l’intero testo da formattare è contenuto in un’unica pagina: seguendo la regola generale (porre nell’area testo solo il primo template inizio, e solo l’ultimo template fine) in questo caso entrambi vanno messi nell’area testo e tutto funziona perfettamente.

I template che al momento hanno una variante con inizio/fine esplicita sono:

Un altro template esiste solo nella variante inizio/fine:

Da molto tempo esiste un template che può essere utilizzato sia come "template completo" che come "template inizio":

Essendo il primo su cui è stato sperimentato il sistema, ed essendo stato sviluppato in autonomia su it.source, non era stato previsto un tl fine esplicito, ma veniva utilizzato direttamente, come tl fine, un tag </div>.

Le prospettive

modifica

L’uso di template "spezzati" in un inizio e una fine ha un grandissimo vantaggio, indipendente dalla possibilità d’uso in pagine consecutive: il testo da formattare non viene passato al template come parametro. Le conseguenze dui questo grande vantaggio non sono ovvie, ma sono estremamente rilevanti, soprattutto dal punto di vista dell’elaborazione via script dei testi, in cui è difficilissimo, spesso impossibile, distinguere ciò che è testo e ciò che non lo è all’interno di un codice di un template. "Spezzare" un template in due blocchi inizio/fine consente di lasciare il testo su cui opera il template fuori dal codice template.

Il codice del {{Centrato}} contiene, fin dall’inizio della sperimentazione, un trucco per renderne possibile l’applicazione sia come template "normale", che come template "spezzato in due blocchi". Infatti entrambe queste sintassi sono perfettamente accettabili:

  1. {{Centrato|Testo da centrare}}
  2. {{Centrato}}Testo da centrare</div>

Il risultato è assolutamente identico:

Testo da centrare

Testo da centrare

E’ in corso la spermentazione di una modifica dei template in modo da renderli tutti simili a {{Centrato}}, ossia con un "doppio comportamento", a seconda che venga passato, o no, un testo come parametro.

Aiuto attraverso immagini

modifica

Le immagini che seguono rappresentano pagine Pagina; le fasce con fondo giallo sono l’header e il footer (le zone che non vengono incluse).


 
Fig. 1

Utilizzando il template Blocco a sinistra, il testo seguente, fino al template Fine blocco, viene "racchiuso in un rettangolo invisibile" la cui larghezza è determinata dalla larghezza della riga più lunga. Non si nota alcun effetto visibile nella distribuzione del testo ma....


 
Fig. 2

... nel caso che si applichi il template Centrato a qualsiasi frammento di testo, contenuto in questo "rettangolo invisibile", il testo sarà centrato rispetto alla larghezza del rettangolo, e non rispetto alla larghezza della pagina. Nel caso delle poesie, il titolo sarà centrato sulla poesia. Anche elementi grafici come un tratto di riga, se dotati del codice di "posizione centrata", risulteranno centrati nello stesso modo.


 
Fig. 3

Per quanto riguarda la visualizzazione nel nsPagina, è del tutto indifferente che i template "Blocco a sinistra" e "Fine blocco" siano collocati nell’area del testo, oppure nelle cone che non vengono transcluse, header e footer. Cambia però il codice che viene transcluso.


 
Fig. 4

Il software wiki ha un’interessante proprietà: chiude automaticamente alcuni codici html "lasciati aperti". Il codice del template Blocco centrato lascia aperti proprio questo tipo di tag "a chiusura automatica"; sfruttando questa proprietà, è possibile, opzionalmente, non scrivere affatto il template "Fine blocco" che cade nella zona footer, senza alcun inconveniente.

In pratica, non vi è alcuna differenza nel risultato che si ottiene con il codice di Fig. 3 rispetto al codice di Fig. 4

Siccome mettere un solo template è meglio che metterne due.... vi consiglio di sfruttare questa possibilità.  ;-)

Ma attenzione: solo nel caso che il blocco centrato raggiunga la fine della pagina!