Includere altre pagine
autori (intermedio)
La direttiva (:include:)
permette di inserire il contenuto di altre pagine in quella corrente. Tutte le direttive riportate di seguito includono il codice delle pagine, tale e quale. In particolare, tutti i collegamenti nella pagina inclusa vengono riferiti al WikiGroup attuale, se non viene specificato altrimenti.
Sintassi di base
- (:include NomePagina:)
- {Gruppo/NomePagina$:PTVar}
(:if:)
. Perciò, se si include una sezione: (:include OtherPage#section:)
, questa [[#section]]
verrebbe inclusa anche se si trovasse dentro a un costrutto (:if:)...(:ifend:)
.
Quando si controllano variabili nelle pagine incluse, il contesto, cioè se la pagina include o è inclusa, è importante. Si veda PageVariables per ulteriori dettagli.
Parametri
I parametri che non sono parole chiave, cioè nomi ed etichette, possono essere ripetuti.
Pagine
(:include NomePagina:)
(:include Group.NomePagina:)
(:include NomePagina GroupName.Nomepagina:)
Etichette
(:include PageName#from#to:) | include la parte di PageName compresa tra le etichette [[#from]] e [[#to]] |
(:include PageName#from#:) | include la pagina a partire da [[#from]] fino alla fine |
(:include PageName##to:) | include la pagina dall'inizio fino all'etichetta [[#to]] |
(:include PageName#from:) | include tutto ciò che si trova tra [[#from]] e l'etichetta successiva |
(:include PageName##:) | include la pagina dall'inizio fino alla prima etichetta |
(:include Page1 Page2 #from#to:)
[[#from]]
e [[#to]]
(:include Page1#from1#to1 Page2#from2#to2:)
[[#from1]]
e [[#to1]]
per Page1, o quella tra [[#from2]]
e [[#to2]]
per Page2.
#from
e #to
, benché pm dicesse che questo non doveva succedere. Le versioni più recenti non permettono più di inserire spazi lì. Il comportamento precedente può essere richiesto aggiungendo nel file config.php o farmconfig.php:
Markup('includeanchors', '<include', '/(\\(:include.*?#\\w+)\\s+(#\\w+)/', '$1$2');
Lines=
(:include PageName lines=10:)
(:include PageName lines=5..10:)
(:include PageName lines=5..:)
(:include Page1 Page2 Page3 lines=1..5:)
Self=
(:include PageName self=0:)
self
può essere impostato a 0
oppure 1
. Indica se la direttiva può includere la pagina corrente. Questo parametro è utile se PageName è una variabile, ad es. {$Name}
, e si vuole evitare di includere la pagina corrente.
Variabili nel testo della pagina
{Group/PageName$:Var}
:elemento:descrizione
), (elemento:descrizione
), oppure ((:elemento:descrizione:)
).
Basepage=
(:include PageName basepage=BasePageName:)
Se si specifica basepage=
, allora tutti i collegamenti relativi e le variabili di pagina vengono basati sul valore di basepage.
Quindi, se si creasse una pagina TemplateName
che contenga:
Nome: {$:Name} Indirizzo: {$:Address}
allora, la direttiva
(:include TemplateName basepage=PageName:)
mostrerebbe il contenuto di TemplateName
, trattando tutte le variabili di pagina e i collegamenti come relativi a PageName
.
In particolare, i valori di {$:Name}
e {$:Address}
sarebbero presi da PageName
. Questo vale anche per {$Title}
e {$LastModifiedBy}
.
Questo assume che sul sito sia abilitato $EnableRelativePageVars
, che sarà predefinito per PmWiki 2.2.0. Al momento $EnableRelativePageVars
è disabilitato per facilitare l'aggiornamento dalla versione 2.1.x.
Lo scopo primario è di permettere l'inclusione di pagine in un modo che assomigli alla versione 2.1.x, dove le variabili di pagina e i link sono relativi alla pagina visualizzata al momento. Questo si ottiene così:
(:include SomeOtherPage basepage='' :)
oppure
(:include SomeOtherPage basepage={*$FullName} :)
Questo permette anche a GroupHeader and GroupFooter di contenere variabili di pagina e collegamenti relativi alla pagina visualizzata, anziché a se stessi:
## Impostazione di default di$GroupHeaderFmt
$GroupHeaderFmt
= '(:include {$Group}.GroupHeader self=0 basepage={*$FullName}:)(:nl:)';
Altrimenti, l'uso di IncludeOtherPages all'interno di GroupHeader mostrerebbe 'GroupHeader' anziché il nome della pagina visualizzata.
Si è scoperto che il parametro basepage= è abbastanza generale per essere usato in un engine di template. È possibile creare una pagina che contenga variabili, il cui valore venga letto da un'altra pagina:
(:include PaginaTemplate basepage=PaginaConDati :)
Una singola PaginaTemplate può ovviamente contenere più template, separati da etichette. Così si ottiene una sintassi stranamente simile[1] alle pagelist-template:
(:include PaginaTemplate#abc basepage=PaginaDati :)
Quindi TemplatePage può avere una sintassi del tipo:
[[#abc]] ...inserire il template qui... [[#abcend]]
ed è possibile mostrare TemplatePage come un template, senza che essa venga interpretata... così come si fa per Site.PageListTemplates.
Vedere anche
- PageTextVariables Page variables automatically made available through natural or explicit page markup
- Cookbook:IncludeUrl
Nota di stile
Normalmente, le pagine e le righe incluse non possono essere distinte dal resto del testo di una pagina. Si possono usare Stili wiki per sottolineare visivamente che quel testo è "speciale". Per esempio:
%define=leftborder border-left="2px solid #88f" margin-left="2px" padding="1px 0 3px 10px"% Che cos'è PmWiki? >>leftborder<< (:include PmWiki.PmWiki lines=1..4:) >><< ''Buona giornata!'' |
Che cos'è PmWiki? !!Personal Wiki
Buona giornata! |
Riferimento ai parametri
Tutti i parametri che vengono passati a una direttiva di inclusione sono accessibili alla pagina inclusa, sotto forma di variabile speciale {$$...}
con lo stesso nome. La pagina inclusa, quindi, può ricevere informazioni da quela che la include.
Note
- È possibile usare
(:include My/Page#myanchor lines=4:)
per iniziare dalla riga[[#myanchor]]
e riportare 4 righe.
<< Direttive per pagine | Indice documentazione | InterMap >>
Qual è il numero massimo di inclusioni che possono coesistere in una pagina? Sembra che il mio sito non vada oltre 48 inclusioni. ($MaxIncludes
)
Per default, PmWiki imposta un limite di 50 inclusioni per qualunque pagina. Questo serve a impedire cicli infiniti e altre situazioni che potrebbero intasare un server. Il limite può essere cambiato dal WikiAdministrator attraverso la variabile $MaxIncludes
.
Traduzione di PmWiki.IncludeOtherPages -
Pagina originale: PmWikiIt.IncludeOtherPages -
Backlinks
Ultime modifiche:
PmWikiIt.IncludeOtherPages: 2011-09-10
PmWiki.IncludeOtherPages: 2022-03-17