Aiuto:Transclusione

Da Wikisource.
Vai a: navigazione, ricerca

 

Aiuto: Transclusione

Categoria: Caratteristiche di MediawikiManuale   Guida del wikisourciano principiante   Caratteristiche di Mediawiki   Transclusione 


Indice

- Aiuto

La transclusione è un processo attraverso il quale è possibile incorporare il contenuto di una pagina in un'altra. In altre parole, due o più documenti indipendenti vengono usati per generare un terzo nuovo e diverso.

Questo processo è tipico delle pagine del namespace template, vale a dire che un template è una pagina che si prevede sia incorporata in molte altre pagine di altri namespace. Ma in effetti tale procedimento è applicabile anche con qualunque altra pagina.

Esempio

Con un template

Prima viene visualizzato il risultato dell'uso del template, quindi nel riquadro il codice da usare. Se vuoi fare degli esperimenti ricordati che c'è a tua disposizione la pagina delle prove dove potrai incollare ciò che è contenuto in ogni riquadro.

Il template Esempio di transclusione contiene un testo che vogliamo inserire in questa pagina, ovvero:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut nibh. Cras eleifend quam nec massa. Fusce sit amet ipsum in nulla aliquet adipiscing. Donec urna felis, nonummy et, pretium ut, egestas nec, purus. Donec ultrices, odio nec imperdiet suscipit, nibh purus luctus sem, non ullamcorper sem metus eu ipsum. Vestibulum dui. Fusce augue magna, porttitor eu, rhoncus eget, ultrices eget, quam. Nullam eu libero at ante rhoncus rutrum. Etiam mattis ante consequat massa. In fringilla aliquam neque. Maecenas faucibus, leo quis fermentum hendrerit, pede justo convallis urna, ac ullamcorper mi elit hendrerit arcu. Pellentesque placerat tellus eu risus. Proin erat. Aliquam nunc. Integer sodales. In placerat, felis sit amet ullamcorper interdum, pede ligula dapibus augue, sed ullamcorper arcu erat eget nunc. Morbi orci sem, laoreet et, viverra porta, porttitor at, magna. Donec lacinia nunc ac lectus.

basterà scrivere in questa pagina

Con un'altra pagina

Se vogliamo inserire in questa pagina il testo della pagina Progetto:Testi scientifici/Obiettivi, come nell'esempio precedente basterà racchiudere il nome della pagina tra doppie graffe come se fosse un template: il risultato qui sotto:


Obiettivi
mod

Obiettivi: Molto ambiziosi! :)

Cosa dobbiamo fare:


si ottiene scrivendo in questa pagina

Con una pagina o sottopagina del namespace Principale

Se vogliamo transcludere il contenuto di una pagina o sottopagina del namespace principale, occorre anteporre al suo nome due punti. Volendo transcludere, ad esempio, il contenuto di questa sottopagina: Il cavallarizzo/Test, la sintassi normale:

dà un errore:

Template:Il cavallarizzo/Test

mentre questo codice:

dà il risultato corretto:

Questo è il contenuto della pagina Il Cavallarizzo/Test, per provare la transclusione di una pagina/sottopagina del namespace principale.

Transclusione selettiva

Oltre che la transclusione dell'intera pagina, è possibile transcludere una sezione di una pagina, opportunamente identificata.

Nella pagina da transcludere, occorre aggiungere un tag di inizio sezione e un tag di fine sezione, contenenti il nome della sezione:

Tag inizio sezione:

Tag fine sezione:


Nella pagina dove si vuole transludere la sezione identificata, va usato il seguente codice:

oppure il codice equivalente:


Esempio di transclusione selettiva

Nella pagina Template:Esempio di transclusione sono state identificate due sezioni, chiamate s1 e s2.

Il codice:


produce questo risultato:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut nibh. Cras eleifend quam nec massa. Fusce sit amet ipsum in nulla aliquet adipiscing. Donec urna felis, nonummy et, pretium ut, egestas nec, purus. Donec ultrices, odio nec imperdiet suscipit, nibh purus luctus sem, non ullamcorper sem metus eu ipsum. Vestibulum dui. Fusce augue magna, porttitor eu, rhoncus eget, ultrices eget, quam.

Per ulteriori dettagli vedi: Extension:Labeled Section Transclusion

Transclusione condizionale

Quando si tenta di transcludere una pagina non esistente, ad esempio con il codice: {{Pagina inesistente}} questo è il risultato :
Template:Pagina inesistente

Per ottenere che la transclusione sia effettuata solo se la pagina è esistente, si può inserire il codice di transclusione all'interno di una funzione che valuti se la pagina esiste, e solo se esiste effettui la transclusione. Il codice:
{{#ifexist: Pagina inesistente|{{Pagina inesistente}}|'''La pagina non esiste'''}}

produce questo risultato:
La pagina non esiste

e tralasciando del tutto la seconda opzione la funzione semplicemente non esegue alcuna transclusione nè produce alcun risultato.


Transclusione nel namespace Pagina:

Il template:Pagina esegue una speciale transclusione selettiva di pagine del namespage Pagina: (usate nelle trascrizioni con immagine del testo a fronte) con due sintassi che consentono la transclusione dell'intera pagina e la transclusione selettiva, visualizzando inoltre un collegamento alla pagina sorgente della transclusione. Per verificare la funzionalità si suggerisce di usare la pagina Pagina:Pagina di prova, dove sono identificate quattro sezioni s1,s2,s3 e s4. Opportuno l'uso associato di un tag div che lasci un sufficiente margine a sinistra per evitare la sovrapposizione fra link alla pagina sorgente e testo transcluso. Da notare che nel codice il namespace Pagina: è implicito.

Transclusione dell'intera pagina

Il codice:

produce questo risultato (per vedere il link alla pagina, attivate l'opzione "Collegamenti alle pagine" del menu di navigazione):

pagina== Pagina di prova == riga 1 sezione 1
riga 2 sezione 1
riga 3 sezione 1
riga 4 sezione 1
riga 5 sezione 1
riga 6 sezione 1
riga 7 sezione 2
riga 8 sezione 2
riga 9 sezione 2
riga 10 sezione 2 sezione 3
riga 11 sezione 2 sezione 3
riga 12 sezione 2 sezione 3
riga 13 sezione 2 sezione 3
riga 14 sezione 3
riga 15 sezione 3 sezione 4
riga 16 sezione 3 sezione 4
riga 17 sezione 3 sezione 4
riga 18 sezione 3 sezione 4

riga 19 sezione 1 sezione 4
riga 20 sezione 1 sezione 4

Transclusione selettiva

Il codice:

produce questo risultato:

paginariga 1 sezione 1
riga 2 sezione 1
riga 3 sezione 1
riga 4 sezione 1
riga 5 sezione 1
riga 6 sezione 1
riga 19 sezione 1 sezione 4
riga 20 sezione 1 sezione 4

Section come indici di un array

In alcune opere, come Fiore di virtù, sono in corso esperimenti per automatizzare la costruzione delle pagine testuali.

Il sistema si appoggia su un'applicazione delle section usate come indici di una matrice di dati; infatti, ogni elemento di una tabella di n righe e m colonne può essere identificata da una section chiamata n.m; per esempio contenuto dell'elemento in riga 6, colonna 3 può essere richiamato semplicemente con il codice:

Utilizzando la pagina Template:Fiore di virtù/Indice, che contiene dati organizzati in una tabella di parechie righe e di 3 colonne, il codice:

fornisce questo risultato:

Template:Fiore di virtù/Indice

che è proprio il terzo elemento della sesta riga (il testo del link al [|capitolo IV]] dell'opera, il cui titolo completo è Template:Fiore di virtù/Indice).

Una inattesa proprietà delle section: la proprietà additiva

Se in un testo sono comprese più sezioni con lo stesso nome, la transclusione selettiva richiamata con quel nome non restituisce un errore, nè restituisce la prima delle section: le restituisce tutte, qualsiasi sia il loro numero, e comunque siano inframmezzate nel testo. Questa è una caratteristica estremamente importante per un loro uso avanzato.

Nella frase precedente le parole in rosso sono taggate (oltre che con il codice font color="red" ) anche con un tag section begin="red" e successivo tag section end.

Quindi, questo codice: {{#section:Aiuto:Transclusione|red}} dà questo risultato:

Se in un testo sono comprese più sezioni con lo stesso nome, la transclusione selettiva le restituisce tutte.

perchè le varie section="red" sono state estratte e accodate una dopo l'altra.

Questo significa che con una sola riga di codice si possono, ad esempio, estrarre e riunire varie parti di un testo lungo a piacere; un'applicazione molto interessante è quella di estrarre da un elenco l'insieme dei soli elementi che soddisfano una certa condizione. Ovviamente le section necessarie devono essere state previste e introdotte nel codice.

Domande?

Se hai domande, dubbi, proposte o necessiti di chiarimenti sulla transclusione premi qui e lascia un messaggio nella pagina di discussione.

© Copyright Wikipedia authors - The articles gathered in this document are under the GFDL licence.
http://www.gnu.org/copyleft/fdl.html