Help:Sjablonen
Let op: Als u deze pagina bewerkt, gaat u akkoord met het vrijgeven van uw bijdragen onder de CC0. Zie Helppagina’s Publiek Domein voor meer informatie. |
Als u standaardtekst heeft die u in verschillende pagina's wilt opnemen, kunt u daarvoor functie sjablonen gebruiken. Anders dan bij extensies en mediabestanden is er voor sjablonen geen centrale bewaarplaats.
Sjablonen kunnen nieuw worden geschreven of, om dubbel werk te voorkomen, worden geëxporteerd uit een andere wiki, bijvoorbeeld Wikipedia, en dan in de bestemde wiki worden geïmporteerd.
Basisgebruik
Sjablonen zijn standaard wiki-pagina's waarvan de inhoud ontworpen is om te worden transcluded (ingebed) in andere pagina's. Sjablonen volgen de conventie dat de naam wordt voorafgegaan door "Template:
", wat het aan die namespace toewijst. U kunt ze als iedere andere wiki-pagina aanmaken.
Om een sjabloon te transcluderen, gebruikt u dubbele open & sluit accolades {{sjabloonnaam}}
.
Het meest eenvoudige gebruik van sjablonen gaat als volgt. Maak een pagina aan met de naam Template:Welcome
met de volgende inhoud:
Hallo! Welkom bij de wiki.
U heeft uw eerste sjabloon gemaakt! Voeg nu de volgende code in een nieuwe pagina toe:
{{Welcome}}
Als de nieuwe pagina wordt getoond, dan wordt "Hallo! Welkom bij de wiki." getoond in plaats van {{Welcome}}
. De inhoud van het sjabloon is ingebed in de getoonde pagina.
U kunt {{Welcome}}
op elk punt op elke pagina plaatsen waar u iemand wilt verwelkomen. Stel dat dat op 100 pagina's wordt gedaan. Als u dan de inhoud van het sjabloon wijzigt naar:
Hallo allemaal! Welkom op onze mooie wiki.
en dan al die 100 pagina's opnieuw bezoekt waar het sjabloon gebruikt wordt, dan ziet u nu de nieuwe begroeting in plaats van de vorige. U past dus de inhoud van mogelijk heel veel pagina's aan zonder ze zelf per stuk te wijzigen, dit omdat de tekst van het sjabloon wordt overgenomen (transcluded) in deze pagina's.
Dit is de basis van het werken met sjablonen. Maar er zijn natuurlijk enkele aanvullende functies beschikbaar om het nog krachtiger te maken. Meestal zal het sjabloon een Engelse naam hebben, dus bijvoorbeeld Welcome, de Nederlandse naam wordt dan Welcome/nl. De tekst is dan een vertaling van de Engelse tekst.
Manieren om een sjabloon aan te roepen
Sjablonen kunnen op andere pagina's op de volgende manieren gebruikt worden:
{{Name}}
: als boven beschreven, deze link (ook wel sjabloonaanroep genoemd) wordt automatisch vervangen door de huidige inhoud van het sjabloon [[Template:Name]] (ook wel transclusie genoemd) op het moment dat de betreffende pagina wordt geladen (dus bij het bekijken door een lezer van de wiki). Omdat de sjabloonaanroep in de bron van de pagina blijft staan zal een volgende wijziging van Template:Name worden gezien op een pagina die de sjabloonaanroep bevat. Ook wordt de pagina getoond op het overzicht met verwijzingen naar het sjabloon.{{subst:Name}}
: als dit wordt gebruikt dan wordt dit type sjabloon eenmalig en blijvend vervangen in de broncode van de pagina die het sjabloon [[Template:Name]] gebruikt op het moment dat de pagina met de link wordt opgeslagen. Dat betekent, dat de inhoud van Template:Name wordt gebruikt om de sjabloonaanroep te vervangen. Er wordt geen link onderhouden tussen de pagina en het sjabloon, beide kunnen dus zonder gevolg voor de ander worden gewijzigd. In feite is er weinig verschil tussen het vervangen van de inhoud op deze manier en het eenvoudigweg "handmatig" typen in de bron van de pagina. Zie Help:Substitution voor meer informatie.{{safesubst:Name}}
: dit is toegevoegd om het mogelijk te maken dat er een recursieve vervanging wordt gedaan als sjablonen aanroepen naar andere sjablonen of parserfuncties bevatten. Zie Help:Substitution voor meer informatie.{{msgnw:Name}}
: dit toont de inhoud van het sjabloon in een vorm die de ruwe wiki syntaxis toont (zoals<nowiki>
dat doet) bij het weergeven van de pagina die dit sjabloon bevat. Voorbeeld:{{msgnw:Template:Thankyou}}
geeft:
<noinclude> <languages/> </noinclude> '''Een klein bedankje...''' voor {{{reason|{{{1}}}}}}. knuffel van {{{signature|{{{2}}}}}} <noinclude> [[Category:Template examples{{#translation:}}|{{PAGENAME}}]] </noinclude>
Een gewone wiki-pagina kan ook als sjabloon gebruikt worden, eenvoudig door de betreffende namespace aan te geven:
{{Template:Pagename}}
transclude de pagina van sjabloon, gelijkwaardig aan[[Template:Pagename]]
{{Talk:Pagename}}
transclude de pagina Talk:Pagename{{:Pagename}}
transclude de pagina Pagename in de main namespace.{{subst::Pagename}}
vervangt zichzelf met de inhoud van de pagina Pagename
Als de aangegeven namespace niet bestaat, dan wordt aangenomen dat de hele titel een sjabloon is:
{{Foo:Bar}}
transclude Template:Foo:Bar
Ongeacht de syntaxis die wordt gebruikt, kan de naam van het sjabloon relatief zijn tot de huidige pagina
Als bijvoorbeeld {{/bar}}
op pagina foo wordt genoemd, wordt de pagina foo/bar ingevoegd.
Het kan ook dynamisch worden gegenereerd.
Bijvoorbeeld, {{ {{foo}} }}
roept Template:foo aan en interpreteert het resultaat als de naam van een ander sjabloon dat aangeroepen moet worden.
Parameters
Om het mechanisme van transclusion nog meer te versterken, staat MediaWiki parameters toe bij de aanroep van een sjabloon. Hiermee kan het sjabloon door de schrijver van het artikel worden aangestuurd afhankelijk van de context.
Neem aan dat u een klein bedankje wilt plaatsen in de overlegpagina van andere gebruikers, zoals:
Een klein bedankje...
voor al uw inzet.
knuffel van Frank Alberts
Het bedankje heeft dan een reden (voor al uw inzet) en een afzender (Frank Alberts). Het doel is dat iedereen, iedereen om een reden moet kunnen bedanken.
Een voordeel is dat een bedankje er overal (waar dan dit sjabloon wordt gebruikt) hetzelfde uitziet. U kunt bijvoorbeeld een sjabloon Sjabloon:Bedankt aanmaken. Het bedankje ziet er hetzelfde uit, maar de reden en degene die bedankt verschillen omdat het parameters zijn. Geef ze dan ook door als parameters. Als we de overige elementen even overslaan en het veld formatteren en de afbeelding plaatsen, dan is de inhoud van het (vertaalde) sjabloon ongeveer zo:
'''Een klein bedankje...'''
voor {{{1}}}.
knuffel van {{{2}}}
Let op het gebruik van {{{1}}}
en {{{2}}}
. Dat is hoe de parameters in het sjabloon bekend zijn. Opvallend is dat elke parameter tussen drie accolades {{{ }}}
staat. Dit is anders dan het normale gebruik van de sjabloonnaam.
Als het sjabloon op een pagina wordt gebruikt, dan vult u de waarden van de parameters in, gescheiden door een verticale streep (|
). In de MediaWiki kunt u parameters op drie manieren doorgeven: Anoniem, Nummer en Naam.
Anonieme parameters
Om de parameters anoniem door te geven vult u ze in volgorde in:
{{Thankyou/nl|al uw inspanningen|Frank Alberts}}
In dit geval ontvangt het {{Thankyou/nl}}
sjabloon parameters {{{1}}}=al uw inspanningen
en {{{2}}}=Frank Alberts
, resultaat:
Een klein bedankje...
voor al uw inspanningen.
knuffel van Frank Alberts
De volgorde is zeer belangrijk voor de werking van het sjabloon. Als u ze in deze volgorde doorgeeft:
{{Thankyou/nl|Frank Alberts|al uw inspanningen}}
dan is het resultaat:
Een klein bedankje...
voor Frank Alberts.
knuffel van al uw inspanningen
{{{1}}}
, enz.) werkt alleen voor anonieme parameters. Parameters die met een naam worden doorgegeven, zoals hieronder, zijn in het sjabloon niet benaderbaar met een nummer.
Genummerde parameters
Om de parameter op nummer door te geven, identificeer elke parameter bij het doorgeven:
{{Thankyou/nl|2=Frans Alberts|1=uw vriendschap}}
Het sjabloon {{Thankyou/nl}}
krijgt nu de parameters {{{1}}}=uw vriendschap
en {{{2}}}=Frank Alberts
, ze staan in de verkeerde volgorde maar worden op nummer doorgegeven, dus het resultaat is:
Een klein bedankje...
voor uw vriendschap.
knuffel van Frank Alberts
- Voorbeelden
{{Thankyou/nl|1=adding “=”|2=Frank Alberts}}
Resultaat:
Een klein bedankje...
voor adding “=”.
knuffel van Frank Alberts
Parameters met een naam
de derde manier om parameter door te geven is doorgeven op naam. De inhoud van het sjabloon wordt dan:
'''Een klein bedankje...''' voor {{{reason}}}. knuffel van {{{signature}}}
In het sjabloon gebruiken we {{{reason}}}
en {{{signature}}}
om de paramter te identificeren, in plaats van een nummer. Om deze parameters door te geven op naam, wordt het:
{{Thankyou/nl|signature=Frank Alberts|reason=zijn wie u bent}}
In dit geval krijgt het sjabloon {{Thankyou/nl}}
de parameters {{{reason}}}=zijn wie u bent
en {{{signature}}}=Frank Alberts
, het resultaat:
Een klein bedankje...
voor zijn wie u bent.
knuffel van Frank Alberts
Parameters op naam zijn hoofdlettergevoelig, dus:
{{Thankyou/nl|signature=Frank Alberts|Reason=zijn wie u bent|reason=zijn case-sensitive}}
Resultaat:
Een klein bedankje...
voor zijn case-sensitive.
knuffel van Frank Alberts
Het voordeel van het gebruik van een naam in uw sjabloon, naast dat het flexibel is bij de volgorde van doorgeven, is dat het uw sjabloon beter leesbaar maakt als er veel parameters zijn.
Spaties en nieuwe regels worden automatisch verwijderd aan het begin en einde van benoemde parameternamen en -waarden, maar blijven behouden in naamloze parameters.
Mengen van benoemde en onbenoemde parameters
Als het sjabloon dit ondersteunt, kunnen beide soorten parameters in één aanroep worden gebruikt.
Voorbeeld: {{Thankyou|supporting both parameter types|signature=Me}}
geeft:
Een klein bedankje...
voor supporting both parameter types.
knuffel van Me
Wees voorzichtig wanneer u dit doet, want het kan leiden tot onverwachte resultaten omdat het tellen van onbenoemde parameters gebaseerd is op de onbenoemde parameters, niet op de parameters met een naam.
Voorbeeld: {{Thankyou|Me|reason=supporting both parameter types}}
geeft:
Een klein bedankje...
voor supporting both parameter types.
knuffel van {{{2}}}
Het sjabloon is gecodeerd om de voorkeur te geven aan de benoemde parameter voor de reden boven de onbenoemde paramèter, waardoor de "Me" wordt verloren en geen handtekening wordt gegeven.
Dit resulteert in een standaardwaarde van {{{2}}} die wordt weergegeven, zoals hieronder wordt uitgelegd.
Standaardwaarden
Als u een sjabloon gebruikt maar u geeft niet de benodigde parameters mee, zoals hier:
{{Thankyou/nl}}
in het voorbeeld met genummerde parameters krijgt u het volgende:
Een klein bedankje...
voor {{{1}}}.
knuffel van {{{2}}}
Omdat er geen argumenten zijn meegegeven, gebruikt het sjabloon de parameters zelf, in plaats van de waarde. U kunt ook standaardwaarden voor een parameter aangeven, die worden dan gebruikt als de parameter niet wordt meegegeven.Voorbeeld met als inhoud van het sjabloon:
'''Een klein bedankje...'''
voor {{{reason|alles}}}.
knuffel van, {{{signature|Frank Alberts}}}
dan geeft de {{{reason|alles}}}
aan dat als de parameter {{{reason}}}
niet wordt meegegeven, dat dan de waarde alles
wordt gebruikt. Bij de andere parameter gaat het op dezelfde manier. Met dit sjabloon krijgen we bij een aanroep van het sjabloon zonder meegegeven parameters:
Een klein bedankje...
voor alles.
knuffel van Frank Alberts
{{foo|bar=}}
of {{foo|bar=|baz=qux}}
, beschouwt het sjabloon foo
de parameter van bar
als ""
. Dit is iets anders dan de parameter weglaten, dan is het niet definieert en krijgt het de standaardwaarde zoals hierboven in beschreven.{{#if:{{{1|}}}|{{{1|}}}|undefined}}
geeft undefined als de parameter niet gedefinieerd of leeg is, terwijl {{{1|undefined}}}
dit alleen doet als de parameter undefined is.Vaak wordt een standaardwaarde gebruikt om een alternatieve naam van de parameter te noemen.
Voorbeeld, bij {{{a|{{{b|}}} }}}
, het sjabloon zoekt eerst naar een parameter met de naam "a".
Als die ontbreekt dan wordt de parameter met de naam "b" gebruikt.
Als zowel "a" als "b" ontbreken, dan is er geen uitvoer.
Parameters doorgeven aan andere sjablonen
Als de syntaxis van de ruwe parameter wordt gegenereerd door de bovenstaande sjabloonaanroep en vervolgens wordt doorgegeven aan een andere sjabloon, wordt deze niet geïnterpreteerd als een parameter. Dit betekent dat {{Thankyou2 }}, die {{Bedankt }} aanroept zonder parameters, niet werkt: {{thankyou2|everything|me}} → Een klein bedankje... voor {{{1}}}. knuffel van {{{2}}}
U moet de parameter in plaats daarvan expliciet doorgeven aan het andere sjabloon, d.w.z. als {{Thankyou3 }} bevat
{{thankyou|{{{1}}}|{{{2}}}}}
dan werkt het goed: {{thankyou3|everything|me}} → Een klein bedankje... voor everything. knuffel van me
Dit voorbeeld betekent niet leegte versus ondefinieerdheid voorgaat in parameterwaarden - u zou een ingewikkeldere syntaxis nodig hebben als u dat zou willen doen.
Lege versus ongedefinieerde parameters
De {{t2demo|| a }}
(zie {{T2demo }}), met een dubbele verticale lijn, stelt de eerste parameter in op een lege string in plaats van deze ongedefinieerd te laten.
Het geeft de uitvoer start--middle- a -end
, vergelijkbaar met hoe {{t2demo|1=|2= a }}
resulteert in start--middle- a -end
.
Aan de andere kant, het expliciet instellen van de parameter "2" op "a", resulteert in het ongedefinieerd laten van de eerste naamloze parameter:
{{t2demo|2= a }} resulteert in start-{{{1}}}-middle- a -end
Indien de tweede parameter niet moet worden getrimd, moet deze niet worden genoemd.
Daarom kunt u een lege string aan de eerste parameter toewijzen, maar u kunt deze niet ongedefinieerd laten.
Het gelijkwaardig maken van Leeg en Ongedefinieerd
Een goede aanpak bij sjablooncodering is dat het doorgeven van een lege tekenreeks aan een parameter hetzelfde werkt als het niet toewijzen van een waarde. Dit maakt het gemakkelijker en consistenter.
Als u bijvoorbeeld p=
gebruikt, kunt u laten zien dat een sjabloon een parameter "p" heeft die nog geen waarde heeft.
Als u een lege tekenreeks en een niet-gedefinieerde waarde hetzelfde wilt gebruiken, gebruikt u de volgende benaderingen:
- Gebruik uitsluitend
{{{p|}}}
in plaats van{{{p}}}
ofq
waarbij "q" een niet-lege waarde is. - Gebruik voorwaardelijke cheques zoals
{{#if:{{{p|}}}|..{{{p}}}..|..}}
om ervoor te zorgen dat{{{p}}}
alleen wordt gebruikt als het een waarde heeft.
Als u om een of andere reden niet gedefinieerde parameters anders wilt behandelen dan lege parameters of andere mogelijke waarden, kunt u dezelfde parameter twee keer vergelijken met verschillende standaardwaarden, d.w.z. {{#ifeq:{{{foo|bar}}}|{{{foo|baz}}}|parameter is defined|parameter is undefined}}
.
Gelijktekens gebruiken in parameters zonder naam
Naamloze parameters kunnen gelijktekens bevatten, maar dit moet indirect gebeuren. Hier zijn enkele methoden met gebruik van template:T1demo:
- Een standaardwaarde voor een ongedefinieerde parameter
Een standaardwaarde toewijzen aan een ongedefinieerde parameter:
{{T1demo|{{{1| a=b }}}}}
Resultaat: start a=b end
.
- Met gebruik van de parserfunctie
{{=}}
Gebruik een parserfunctie die veilig een gelijkteken bevat:
{{T1demo| a{{=}}b }}
Resultaat: start a=b end
.
- HTML-entiteiten
Vervang het gelijkteken met een HTML-entiteit voor weergave:
{{T1demo| a=b }}
Resultaat: start a=b end
.
Dit geeft een correcte weergave zonder dat de andere parameters worden beïnvloed.
Omgaan met niet-overeenkomende accolades en vierkante haken
Niet-overeenkomende accolades ({{
, }}
) of vierkante haken ([[
, ]]
) moeten in nowiki-tags staan of HTML-entiteiten gebruiken:
- Voor het renderen van accolades zijn er twee opties:
- Gebruik
<nowiki>{{</nowiki>
of{
voor{
- Gebruik
<nowiki>}}</nowiki>
of}
voor}
.
- Gebruik
- Gebruik
[
voor[
en]
voor]
.
Hieronder volgen enkele voorbeelden:
- Niet-overeenkomende accolades
{{T1demo| <nowiki>{{</nowiki>content<nowiki>}}</nowiki> }}
Hierdoor worden de accolades correct weergegeven zonder het sjabloon te breken.
- Niet-overeenkomende vierkante haken
{{T1demo| text [link] more text }}
Hierdoor worden de accolades correct weergegeven zonder het sjabloon te breken.
Resultaat:
start text [link] more text end
Niet-overeenkomende paren die niet in nowiki-tags zijn geplaatst, voorkomen sjabloonuitbreiding of worden gebruikt als accolades voor de sjabloonaanroep.
Hieronder volgen enkele voorbeelden:
{{T1demo|abc]]def[[ghi}}
Dit zal niet correct uitbreiden vanwege niet-overeenkomende accolades.
Het juiste gebruik:
{{T1demo|abc<nowiki>]]</nowiki>def<nowiki>[[</nowiki>ghi}}
Resultaat:
startabc]]def[[ghiend
Sjabloon-gegenereerde haakjes
Een alternatieve techniek voor het doorgeven van argumenten met niet overeenkomende haakjes is om ze in een andere sjabloon te wikkelen. In dat geval, (die bestaat met {{(( }} en {{)) }}) op deze wiki), worden de niet overeenkomende haakjes letterlijk weergegeven en niet gedecodeerd als een andere sjabloon oproep. Bijvoorbeeld:
{{t1demo|{{((}}t1demo{{))}}}}
resulteert in: start{{t1demo}}end
Bij het substitueren van een sjabloon, worden sjablooninsluitingen één keer verwerkt wanneer de vervanging wordt gedaan (met dezelfde kanttekeningen die hierboven zijn uitgelegd) en vervolgens een tweede keer bij het opbouwen van de resulterende wikitext. Bijvoorbeeld:
{{subst:((}}t1demo|foo}}
zal zich uitbreiden tot:
{{t1demo|foo}}
die zich dan als volgt wordt opgebouwd:
startfooend
Als de wikitext die via de eerste subst zelf wordt gegenereerd de syntaxis "subst:" bevat, wordt deze niet verwerkt op dezelfde keer opslaan, maar mogelijk wel bij de volgende keer opslaan. Deze techniek kan worden gebruikt om recursieve substituties te implementeren die meerdere keren moeten worden opgeslagen om te evalueren.
Verticale streepjes gebruiken bij parameterwaarden
Een parameterwaarde kan geen verticaal streepje (|) bevatten, omdat deze wordt geïnterpreteerd als het einde van die parameter en het begin van de volgende parameter.
Dit kan worden omzeild door gebruik te maken van de parserfunctie {{!}}
of de HTML-entiteit &124;.
De twee methoden hebben iets verschillend gedrag, wat relevant kan zijn in sommige gevallen, zoals wanneer een sjabloon een syntaxis wikitable produceert.
Voorbeeld:
{{T1demo|abc|def}}
Resultaat:
startabcend
De "def" wordt niet weergegeven omdat deze wordt behandeld als onderdeel van een andere niet-genoemde parameter, die het sjabloon niet gebruikt.
{{T1demo|abc{{!}}def}}
Resultaat:
startabc|defend
De "def" wordt weergegeven.
{{T1demo|abc|def}}
Resultaat:
startabc|defend
De "def" wordt weergegeven.
Sjabloonaanroep opmaken met extra parameters
Aangezien sjablonen de parameters die ze krijgen doorgestuurd negeren, maar niet specifiek behandelen, kunnen ze worden gebruikt als een manier om extra witte ruimte of ongebruikte inhoud toe te voegen aan de sjabloonaanroep.
Bijvoorbeeld:
{{template name|foo|bar|baz|mumble|quux}}
is gelijk aan, mits het sjabloon SPACEN niet herkent als een parameternaam:
{{template name|SPACE1=
|foo|SPACE2=
|bar|SPACE3=Random stuff
|baz|SPACE4=
|mumble|SPACE5=
quux
}}
Het is ook mogelijk om dezelfde naam te gebruiken voor elke spacer (vaak de lege string), maar dit zal Category:Pages using duplicate arguments in template calls vullen, wat veel wiki's liever leeg houden om gevallen van gebruikersfouten op te vangen.
Dit kan worden gebruikt om het sjabloon te laten renderen op een manier die vergelijkbaar is met de uitvoer, zoals het tonen van elke rij van w:Template:Chess position op zichzelf, alsof de wikitext er ook uitziet als een schaakbord.
Volgen van het gebruik van parameters
Het kan verstandig zijn voor een sjabloon een link of categorie toe te voegen aan een pagina als een bepaalde parameter of combinatie van parameters wordt gebruikt, om zo mogelijk gemakkelijk te bepalen welke pagina's een bepaalde parameter gebruiken en dus welke gevolgen het zou hebben als die parameter in het sjabloon wordt gewijzigd.
Evaluatie proces
In het algemeen worden de parameters van een sjabloon vervangen in sjabloon als de tokens worden uitgewerkt. Ze worden pas geëvalueerd bij het gebruik.
Dit heeft gevolgen.
- Als u een
Template:Start
heeft, die{{mytemplate
bevat, en eenTemplate:End
die|foo=bar}}
bevat, en{{start}}{{end}}
op een pagina zet, wordt mytemplate niet transcluded, omdat tokens als "|" niet toegevoegd kunnen worden door een sjabloon en de speciale betekenis kunnen behouden in een sjabloon. U kunt sjablonen gebruiken om de naam van de parameter of sjabloon te sturen, maar u kunt geen aanroep van een sjabloon splitsen tussen verschillende sjablonen. - Eliminatie van dode code. (Code die nooit wordt uitgevoerd.) Als u een sjabloon aanroep doet als
{{foo|{{DISPLAYTITLE:Bar}} }}
enTemplate:Foo
bevat niet {{{1}}}, dan wordt deDISPLAYTITLE
niet gebruikt, omdat het alleen wordt bekeken als het nodig is, er is geen parameter om er in te zetten. dus wordt het niet geëvalueerd. Dit speelt voornamelijk bij het gebruik van Extension:ParserFunctions , het kan vooral worden opgemerkt in combinatie met het magische woordint:
, dat per taal verschilt. Dit is niet perfect, en in sommige gevallen, zelfs als het resultaat van het uitbreiden van een sjabloon niet wordt gebruikt (omdat het deel uitmaakt van een if-voorwaarde, bijvoorbeeld), kan het proces van het evalueren ervan nog steeds neveneffecten hebben. Bijvoorbeeld, alle links die worden geproduceerd of andere sjablonen die worden gebruikt, worden nog steeds toegevoegd aan Special:WhatLinksHere, zelfs als ze niet worden weergegeven.
Sjabloonparameters worden op waarde doorgegeven, wat betekent dat een sjabloon zijn argumenten niet kan wijzigen. Parameters worden behandeld als associatieve arrays en parameternamen worden geëvalueerd voordat parameterwaarden worden bekeken. Als dezelfde parameternaam meer dan één keer wordt gegeven (ofwel als benoemd of niet-benoemd), wordt alleen de laatste instantie gebruikt en wordt de pagina toegevoegd aan Category:Pages using duplicate arguments in template calls.
Aanroepen van een sjabloon die starten met het magisch woord subst:
of met safesubst:
worden geëvalueerd in een afzonderlijke eerste verwerking die alleen wordt gedaan bij het opslaan, samen met ~~~~ en links met de verticale streep (pipe) truc.
Als ze dan niet kunnen worden geëvalueerd, dan wordt de subst:
genegeerd en worden de safesubst:
behandeld alsof het een normaal sjabloon is.
Veel parser-functies, tags en transcluded speciale pagina's worden niet direct ingevoegd zoals sjablonen maar worden vervangen door een "strip marker". Dit betekent dat u de resultaten niet kunt manipuleren met parser-functies als padleft: en vergelijkbare functies in extensies, die zien de 'strip marker' in plaats van het resultaat van de parser-functie.
Recursie in sjablonen
Het gebruiken van een sjabloon in het sjabloon zelf zorgt er niet voor dat de MediaWiki in een oneindige lus terecht komt.
MediaWiki stopt met een recursie als de naam van het sjabloon vet is.
Voorbeeld, als de inhoud van Template:Aaaa is a {{Aaaa}} z
, dan toont het "a a Template loop detected: Template:Aaaa z z".
Deze beveiliging sluit het mogelijk handig gebruik van sjabloon uit waar het sjabloon zelf de eigen aanroep argumenten normaliseert.
In dit verboden voorbeeld kan template:d
worden aangeroepen als {{d|20200311}}
en als {{d|y=2020|m=3|d=11}}
.
Op de eerste manier, roept het zichzelf aan met de structuur van het tweede argument (verkregen met parserfuncties), die daarna een verenigd pad van verwerking volgen.
{{#if:{{{1|}}}|{{d|y={{#sub:{{{1}}}|0|4}}|m={{#sub:{{{1}}}|4|2}}|d={{#sub:{{{1}}}|6|2}}}}|<!-- processing path with arguments y,m,d regardless of original call pattern -->}}
Als template:d
aangepast is voor recursie in template:d/2
en template:d/2
is een identieke handmatige kopie van template:d
dan werkt deze manier goed als de beveiliging van de recursie dynamisch werkt en niet statisch.
Een manier voor de MediaWiki software om deze regel wat losser te maken zou het eisen zijn dat elke recursieve aanroep een verschillend aantal argumenten heeft en er maximaal een recursieve aanroep is met een gelijk aantal argumenten. Dat zou een sterke beveiliging zijn tegen een oneindige reeks aanroepen waardoor bruikbare manieren als hier beschreven toch gebruikt kunnen worden.
Als het verwerkingspad eenvoudig is, dan is een simpele oplossing alleen een sjabloon te gebruiken voor elke aanroepconventie op een gescheiden if/else tak, waarbij de logica dubbel in het verwerkingspad zit. Als het meer complex is, kan elke aanroepstructuur in een implementatie sjabloon worden gezet met een standaard aanroepstructuur die het uiteindelijke sjabloongedrag geeft.
Parameters met een tabel
Aangezien het pipe-teken (|
) en het gelijkheidsteken (=
) verschillende betekenissen hebben in sjabloonaanroepen en wikitabellen, moet men, om tabelopmaak te gebruiken in de waarde van een sjabloonparameter, over het algemeen die tekens escapen (d.w.z. ze beschermen tegen interpretatie als sjabloonopmaak) met behulp van speciale reeksen:
- het ingebouwde magische woord
{{!}}
biedt sinds MediaWiki 1.24 een "escaped" versie van|
- het ingebouwde magische woord
{{=}}
biedt sinds MediaWiki 1.39 een "escaped" versie van=
Voor de introductie van deze magische woorden gebruikten veel wiki's sjablonen om dezelfde dingen te bereiken. Op een wiki hebben de magische woorden voorrang op de gelijknamige sjablonen.
Voorbeeld tabel
A | B | C |
---|---|---|
A1 | B1 | C1 |
A2 | B2 | C1 |
Tabelcodeː
{| class=wikitable
!A!!B!!C
|-
|A1||B1||C1
|-
|A2||B2||C1
|}
Escaped tabelcodeː
{{{!}} class{{=}}wikitable
!A!!B!!C
{{!}}-
{{!}}A1{{!}}{{!}}B1{{!}}{{!}}C1
{{!}}-
{{!}}A2{{!}}{{!}}B2{{!}}{{!}}C2
{{!}}}
Merk op dat het eerste linker accolade ({
) wordt geïnterpreteerd als een letterlijk linker accolade omdat het onmiddellijk wordt gevolgd door het magische woord van {{!}}
.
Op dezelfde manier wordt de laatste rechter accolade (}
) geïnterpreteerd als een letterlijk rechter accolade omdat het onmiddellijk wordt voorafgegaan door hetzelfde toverwoord.
In sommige gevallen veroorzaken deze accoladetekens echter problemen, dus sommige wiki's bieden ook sjablonen om aan deze tekens te escapen:
- De sjabloonoproep
{{(}}
kan een "escaped" versie van{
bieden - De sjabloonoproep
{{)}}
kan een "escaped" versie van}
bieden
Sommige wiki's gaan nog verder en bieden andere sjablonen voor het gemak zoals {{(!}} ({|
), {{!)}} (|}
), {{!!}} (||
).
Op zo'n wiki kan de code een beetje vereenvoudigd worden tot deze vorm:
{{(!}} class{{=}}wikitable
!A!!B!!C
{{!}}-
{{!}}A1{{!!}}B1{{!!}}C1
{{!}}-
{{!}}A2{{!!}}B2{{!!}}C2
{{!)}}
Sjabloon inclusie beheren
Standaard wordt de gehele inhoud van het sjabloon getoond, zowel als het sjabloon wordt getoond als wanneer het via een pagina waarin dat sjabloon wordt gebruikt, gaat. De pagina van het sjabloon, wanneer deze rechtstreeks wordt bekeken, ziet er precies zo uit als het sjabloon zou worden weergegeven, zonder enige parameters. Als de template parameters vereist om goed te functioneren, zal dit leiden tot fouten in de syntaxis of van de ruwe wikitext. Bijvoorbeeld:
- Als een parameter geen standaardwaarde heeft, wordt deze als de letterlijke tekst {{{1}}} weergegeven, wat aangeeft dat het sjabloon een parameter nodig heeft.
- Als een parameter een lege standaardwaarde heeft (het wordt geschreven als {{{1|}}}), wordt er niets weergegeven, wat het beoogde effect bereikt, maar geen duidelijkheid voor zelfdocumentatie heeft. Het gebruik van een niet-lege standaardwaarde zoals
{{{1|afbeelding}}}
kan de rol van een parameter verduidelijken, vooral voor sjablonen met afbeeldingen. - Als een parameter zonder standaardwaarde wordt doorgestuurd naar de
#expr
parserfunctie, resulteert het in een foutmelding: "Expressiefout: niet-herkend punctuatie karakter '{'." - Als een sjabloon een tabel creëert, is het nuttig voor de sjabloonpagina om de structuur van de tabel te tonen in plaats van de wikitext die werd gebruikt om deze te maken. Om dit te doen, is de tabel syntaxis niet in tags ingesloten, en elk tabel element bevat zowel de delen
<noinclude>...</noinclude>
en<includeonly>...</includeonly>
waar nodig.
U kunt echter bepalen welke delen van een sjabloon worden gezien en opgenomen door het gebruik van de tags <noinclude>
, <includeonly>
en <onlyinclude>
.
Alles tussen <noinclude>
en </noinclude>
wordt alleen getoond als de pagina van het sjabloon wordt getoond, dus niet als het sjabloon in een pagina is gebruikt. Dit is handig als u tekst of code wilt toevoegen in een sjabloon die u alleen in de sjabloon pagina wilt tonen, zoals:
- Categorieën links bij het categoriseren van het sjabloon zelf
- interlanguage links naar vergelijkbare sjablonen in een andere taal
- Uitleg over hoe een sjabloon te gebruiken Het is een veelvoorkomend patroon op sommige wiki's om een sjabloon als {{Documentation/nl }} te gebruiken om de documentatie van een subpagina van het sjabloon te transcluderen. Bijvoorbeeld, Template:Void is gedocumenteerd als Template:Void/doc.
Op een vergelijkbare manier wordt alles tussen <includeonly>
en </includeonly>
verwerkt en getoond alleen als het sjabloon op een pagina wordt gebruikt en niet op de sjabloon-pagina zelf, dat kan nuttig zijn als:
- Categoriseer pagina's die het sjabloon includen. NB: bij het wijzigen van de categorieën die aan een sjabloon zijn toegekend op deze manier kan het wijzigen wat later plaatsvinden: dit wordt afgehandeld in via de wachtrij . Om het herindelen direct te forceren voor een bepaalde pagina, open die pagina voor wijzigen en sla de pagina zonder wijziging op.
- Het er zeker van zijn dat de sjablooncode niet uitgevoerd wordt bij het bekijken van de sjabloon-pagina zelf. Dit is omdat het parameters verwacht en uitvoering zonder parameters geen goed resultaat zal geven.
Alles buiten <noinclude>
en <includeonly>
wordt verwerkt en normaal getoond; zowel als de sjabloon-pagina wordt getoond als een pagina wordt getoond waarin dat sjabloon wordt gebruikt.
De aandacht gaat naar wat er binnen die tags staat.
Alles buiten de <onlyinclude>
tags wordt weggelaten bij de transclusie.
Ook secties binnen includeonly worden overgeslagen bij de transclusie als ze tenminste niet ook de tags onlyinclude gebruiken.
De aandacht gaat naar wat er binnen die tag staat.
Als een pagina zoals deze de wikitext heeft:
abc<onlyinclude>def</onlyinclude>ghi<includeonly>jkl</includeonly>
Het resultaat van het transcluden is def.
Deze tags kunnen ook genest worden.
De drie gedeeltelijke transclusie tags maken elke combinatie mogelijk wat er verwerkt en opgebouwd wordt voor weergave.
Ook commentaar vervult een rol.
Inclusie-tags worden gerespecteerd bij het gebruik van {{subst:templatename}}
, maar ze worden niet gerespecteerd bij het gebruik van {{msgnw:templatename}}
omdat dat de ruwe wikitekst weergeeft zonder enige verwerking.
Sectie transcluden
Als u verschillende secties van een sjabloon op verschillende pagina's wilt transcluderen, kunt u de inhoud inpakken in onlyinclude-tags en een if-instructie en parameters gebruiken om te selecteren welke sectie.
Bekijk "Template:Example" met deze wikitext:
== Section 1 ==
{{#ifeq:{{{1|1}}}|1|
Content of section one.
}}
{{#ifeq:{{{1|2}}}|2|
== Section 2 ==
Content of section two.
}}
Dit geeft beide secties weer op de voorbeeldpagina zelf en stelt andere pagina's toe om het eerste gedeelte met {{example|1}}
en het tweede gedeelte met {{example|2}}
te transcluderen.
Een andere aanpak is om in plaats daarvan letterlijke parametersyntaxis te gebruiken:
{{{section1|
== Section 1 ==
Content of section one.
}}}
{{{section2|
== Section 2 ==
Content of section two.
}}}
Vervang de eerste sectie met {{example|section2=}}
en het tweede sectie met {{example|section1=}}
.
Als geen van beide parameters wordt gebruikt, worden beide secties weergegeven.
Een derde methode is om Labeled Section Transclusion te gebruiken.
Sjablonen organiseren
Om een sjabloon nuttig te maken moet een schrijver van een artikel het sjabloon kunnen vinden en kunnen opzoeken hoe het gebruikt kan worden.
Om te zoeken kan een schrijver:
- Klik op Speciale pagina's > Alle pagina's
- In de lijst Naamruimte:, kies Template en klik op OK.
Om informatie te geven over het gebruik, voeg op de sjabloon-pagina een voorbeeld toe zoals deze:
<noinclude> == Gebruik == Welkom gebruikers: {{Thankyou/nl|reason=uw reden|signature=uw naam}} </noinclude>
Een schrijver kan de aanroep van het sjabloon dan simpel kopiëren en in het eigen artikel gebruiken.
Tijdens het bewerken van een pagina is er een lijst met alle gebruikte sjablonen beschikbaar onder het bewerkingsformulier, in een inklapbare sectie met de titel "Op deze pagina gebruikte sjablonen:" (ook wel "In deze voorvertoning gebruikte sjablonen:" of "In deze sectie gebruikte sjablonen:" genoemd, afhankelijk van de context). Deze lijst bevat een handige koppeling naar de pagina van de sjabloon en informatie over de beveiligingsstatus. Doorverwezen sjablonen worden cursief weergegeven, waarbij het omleidingsdoel als een afzonderlijk lijstitem wordt toegevoegd.
Linken naar een sjabloon
Een sjabloon-pagina kan naar elke wiki-pagina linken, dit gaat op dezelfde manier. Voorbeeld, de link Template:Navbar wordt gegenereerd door de wikicode [[Template:Navbar]]
te gebruiken.
Op veel wiki's kan Template:Tl worden gebruikt voor een link naar een sjabloon geformatteerd op een manier die de "dubbele accolades" wikicode toont die nodig is om het sjabloon te transcluden zonder dat dan ook te doen. Voorbeeld, de code {{tl|Navbar}}
kan worden gebruikt om de link {{Navbar/nl }} te maken.
Deze constructie wordt meestal gebruikt bij het refereren aan sjablonen in de sjabloondocumentatie, help-pagina's en overleg-pagina's.
Dit effect kan ook worden bereikt met gebruik van {{[[Template:Navbar|Navbar]]}}
, maar bij manier {{Tl }}
is minder tikwerk nodig.
Op elke wiki met het sjabloon Tl, kan het wel/geen uitvoer opleveren van tekst in een "code-element" of als monospace-type.
Indien niet (zoals op deze wiki), kan een ander sjabloon met een vergelijkbare naam dat doen.
Een voorbeeld staat in de "See also" section of our Template:Tl documentation.
Naamgeving sjabloon
De naam van een sjabloon hoofdlettergevoelig, met uitzondering van het eerste karakter.
U gebruikt doorverwijzingen voor andere toepassingen van hoofdletters.
Als een sjabloon bijvoorbeeld "AdminAbbr" heet, kunt u een doorverwijzing met de naam "Adminabbr" maken.
Op deze manier kan het sjabloon worden aangeroepen met {{AdminAbbr}}
en {{adminabbr}}
.
Als een redacteur voor de duidelijkheid de voorkeur geeft aan een combinatie van hoofdletters en kleine letters, kan hij functies gebruiken zoals lc of uc.
Bijvoorbeeld, in plaats van {{CURRENTINTERNETTIME}}
, kan {{ {{uc:CurrentInternetTime}} }}
gebruikt worden.
Omdat sjabloonnamen op dezelfde manier worden geïnterpreteerd als de namen van andere pagina's, worden onderstrepingstekens vervangen door spaties en wordt elke tekst achter een getalteken (wat een anker zou zijn in een standaardlink) genegeerd.
Een liggend streepje _
kan een alternatief zijn voor een lege ruimte.
Mogelijk gebruik van sjablonen
Sjablonen kunnen worden gebruikt voor elke situatie waarin men wil dat twee of meer pagina's identieke of vergelijkbare inhoud bevatten die tegelijk wordt bewerkt in plaats van onafhankelijk. Ze kunnen worden gebruikt om:
- Zorgen voor gestructureerde elementen op veel pagina's, zoals infoboxen, onderhoudssjablonen, navigatieboxen, enz.
- Uitvoeren van berekeningen die worden gebruikt als programmeerhulpmiddel op verschillende pagina's, zoals w:Template:Sum.
- Bouwen van samengestelde pagina's die de inhoud van meerdere bestaande pagina's samen weergeven, zoals w:WP:Village pump (all) die inhoud bevat van elk deel van een Kroeg. De inhoud van deze pagina's kan ofwel individueel of samen worden weergegeven, maar de revisiegeschiedenis, de volglijst, enz. zullen alleen wijzigingen opnemen in de vertaalde pagina's en de ruwe wikitext van de samengestelde pagina zelf, niet impliciete wijzigingen in de samengestelde pagina.
- Delen van wat inhoud tussen een paar verwante pagina's. Bijvoorbeeld, de lijst op Help Voorkeuren - Betafuncties wordt gedupliceerd op Betafuncties - Huidige betafuncties. Terwijl op MediaWiki.org dat wordt gebouwd met Extension:LabeledSectionTransclusion , het kan gedaan worden met behulp van een sjabloon.
- Sla inhoud op waarnaar meerdere keren wordt verwezen op dezelfde pagina op, zodat deze maar één keer hoeft te worden geschreven en bepaald. Bijvoorbeeld, w:Template:Cite Monumentenregister/URL wordt twee keer aangeroepen door w:Template:Cite Monumentenregister op twee verschillende plaatsen, en het gebruik van een ander sjabloon betekent dat het URL-patroon slechts één keer in het basissjabloon hoeft te worden geschreven.
- Gebruik sjablonen als een programmeringselement om een lus te genereren: als Template:A 10 keer Template:B aanroept met verschillende parameters, dan is dat een loop. Als Template:B Template:C 10 keer aanroept, dan heeft u een geneste lus van 100 aanroepen van Template:C. Maar houd er rekening mee dat het gemakkelijk is om tegen de sjabloonlimieten aan te lopen bij het gebruik van sjablonen als geavanceerde programmeerconstructies, en met behulp van Scribunto is over het algemeen duidelijker en gemakkelijker te volgen.
Van een wiki naar een andere wiki kopiëren
Het is mogelijk, indien toegestaan wordt door de wiki-configuratie om sjablonen van andere wiki's te transcluderen. Deze instelling is uitgeschakeld op Wikimedia wiki's. Anders moet u het sjabloon en de afhankelijkheden van de bron wiki handmatig kopiëren naar de bestemming wiki om deze te gebruiken.
Bij een sjabloon is vaak CSS of een ander sjabloon verplicht, zodat gebruikers vaak moeilijkheden hebben bij het kopiëren van sjablonen van de ene wiki naar een andere wiki. De onderstaande stappen moeten voor de meeste sjablonen werken.
MediaWiki code
Als u mag importeren (u heeft het recht importupload) op de nieuwe wiki:
- Ga naar Special:Export op de originele wiki en download een xml-bestand met de complete geschiedenis van alle benodigde sjablonen, dit gaat als volgt:
- Vul de naam van het sjabloon in het grote tekstveld, bijvoorbeeld "Template:Welcome". Let goed op het gebruik van hoofdletters en speciale tekens. Het exporteren kan lukken met een niet helemaal goede naam maar het xml-bestand bevat dan niet de gegevens die het moet bevatten.
- Selecteer het veld "Sjablonen toevoegen".
- Selecteer het veld "Alleen de laatste versie, niet de volledige geschiedenis".
- Klik op "Exporteren".
- Ga naar Special:Import op de nieuwe wiki en upload het xml-bestand.
Als u op de nieuwe wiki niet mag importeren:
- Ga in de originele wiki naar het sjabloon wat u wilt kopiëren. Ga naar de pagina om het te bewerken en kopieer alle wikitext.
- Op de nieuwe wiki, ga naar de pagina met dezelfde naam als het gekopieerde sjabloon. Kies aanmaken/bewerken plak de tekst. In de wijziging samenvatting van het sjabloon link naar de originele pagina voor de toeschrijving.
- Terug naar de originele wiki op het bewerkscherm, onder het wijzigveld, kijk naar de lijst "Sjablonen op deze pagina gebruikt". Voer voor elk genoemd sjabloon deze instructies uit, als die sjablonen nog niet bekend zijn op de nieuwe wiki. Kijk ook of er in de overgezette sjablonen nog gebruikte sjablonen zijn die nog onbekend zijn op de nieuwe wiki. Dit gaat door totdat u geen op de nieuwe wiki onbekende sjablonen meer vindt in deze sjablonen.
Zo kopieert u alle nodige code, het zal genoeg zijn voor enkele sjablonen. Merk op dat alleen pagina-elementen verwerkt bij het opbouwen van de pagina worden geëxporteerd, dat betekent dus dat bijvoorbeeld documentatie subpagina's niet worden geëxporteerd. Indien het niet werkt, controleer dan of er rode links genoemd worden bij "Pagina's opgenomen in de huidige versie van deze pagina", onderaan het wijzigingsveld. Als die er zijn herhaal dan de eerder genoemde stappen voor deze pagina's en kopieer de code in de modules.
Naar het succesvol importeren van het sjabloon en alle gelinkte sjablonen van de andere wiki, kunt u het aanpassen als het nodig is voor uw eigen wiki. Dat zou kunnen zijn, een eigen logo, het snoeien van onnodige categorieën en het bekijken van rode links.
Extensies
Een extensie die vaak in sjablonen wordt gebruikt is ParserFunctions. Bezoek pagina Help extension ParserFunctions en kijk of een van de genoemde functies wordt gebruikt in de sjablonen die u heeft gekopieerd. Als dat zo is, installeer dan de extensie ParserFunctions als die nog niet is geïnstalleerd. U heeft voor het installeren de rechten van een systeembeheerder nodig op de server van uw MediaWiki installatie.
Er kan ook afhankelijkheid zijn in de sjablonen, vooral op Wikipedia, door Lua. Als er {{#invoke: }}
in de code van het sjabloon zit, dam lijkt dat waarschijnlijk.
Als het wordt gebruikt, installeer dan (als die er nog niet is) de extensie Scribunto , hiervoor zijn weer de rechten van een sysbeheerder nodig.
Bekijk die pagina voor meer instructies over het installeren en het gebruik.
CSS en JavaScript code
Naast MediaWiki code maken veel sjablonen ook veel gebruik van CSS en sommige vertrouwen op het werken van JavaScript. Als de overgezette sjablonen niet zoals verwacht werken, controleer dan deze punten. Om de benodigde CSS en JavaScript over te zetten zult u wel weer beheerdersrechten nodig hebben, want u wijzigt systeemberichten in de "MediaWiki:" namespace.
- Kijk naar het gebruik van CSS classes (teksten als
class="foobar"
) in de tekst van het sjabloon. Indien die classes in "MediaWiki:Common.css" of "MediaWiki:Monobook.css" staan op de originele wiki, kopieer die classes naar "MediaWiki:Common.css" in de nieuwe wiki en controleer of het sjabloon nu goed werkt. - als het gekopieerde sjabloon nog altijd niet op de gewenste manier werkt, controleer dan of er code in "MediaWiki:Common.js" of "MediaWiki:Monobook.js" is op de originele wiki. Als die er is, probeer dan die te kopiëren naar "MediaWiki:Common.js" op de nieuwe wiki. Normaal is het een goed idee om allen code te kopiëren uit code die u vertrouwd en die code eerst te bekijken om te zien welk deel relevant is. Let op het aanwezige commentaar dat mogelijk aanwijzingen geeft over de functionaliteit van dat deel van de code.
Doorverwijzing
Als een pagina een doorverwijzing als sjabloon gebruikt, wordt de doorverwijzing opgelost voordat het sjabloon wordt verwerkt en wordt in plaats daarvan het doel gebruikt. Dit werkt niet als het doel niet bestaat (een gebroken doorverwijzing), of zelf een doorverwijzing is (een dubbele doorverwijzing).
Een pagina die gewoon een andere pagina als sjabloon bevat, lijkt misschien op een doorverwijzing, maar er zijn meerdere verschillen:
- De kop van het resultaat toont de titel van de pagina waar het vandaan komt.
- Er wordt geen bericht "Doorverwezen vanaf" weergegeven.
- Knoppen zoals bewerken, volgen, overleg, geschiedenis, "wat hier naar linkt" en "laatst gewijzigd" wijzen naar de verwijzende pagina. Om toegang te krijgen tot de doelpagina, gebruik een sectiebewerking-link en navigeer vanaf daar.
- Tenzij includeonly en/of noinclude tags worden gebruikt, deelt de verwijzende pagina dezelfde categorieën als de doelpagina.
- "Dubbele doorverwijzingen" werken wanneer één of beide van deze soorten pseudo-doorverwijzingen zijn.
Parserfuncties
MediaWiki ondersteunt ook parserfuncties, die op dezelfde manier werken als sjablonen, maar een iets andere syntaxis volgen:
- Parserfuncties gebruiken een ":" in plaats van de initiële "|".
- Een bewerkingspagina toont geen parserfuncties die op die pagina worden gebruikt.
- Er is geen "Wat linkt hier" functie voor parserfuncties om de pagina's waar ze worden gebruikt te vinden.
- Parserfuncties sjablonen aanvaarden over het algemeen niet benoemde parameters, dus gelijktekens hebben over het algemeen geen speciale betekenis. Bijvoorbeeld:
{{ #if: not blank | x=abc }}
givesx=abc
Zie ook
Gebruik sjablonen in het algemeen
- Manual:Expr parser function syntax
- Help:Substitution
- w:Help:Template
- Manual:Advanced templates – beschrijft de nog meer geavanceerde technieken zoals dynamische sjabloon aanroepen en variabele parameter namen
- Help:Multiple-instance templates - bij het gebruik van meerdere instanties van dezelfde sjabloon op een pagina.
- Manual:Newlines and spaces#Automatic newline
Speciale constructies in sjablonen
- Help:Magische woorden – opvallende zaken die u in sommige sjablonen kan tegenkomen
- Help extension ParserFunctions – nog meer opvallende zaken met functies als #if en #switch
- Help:Parser functions in templates/nl – gids voor het gebruik van parser-functies in sjablonen
- Help:TemplateData
- Help extension ParserFunctions
- Extension:Scribunto
Overige informatie
- Help:ExpandTemplates
- Help:Externe zoekopdrachten – een voorbeeld met een speciaal gebruik van een sjabloon
- Manual:Importing Wikipedia infoboxes tutorial
- Extension:PageTemplates
- Manual:Creating pages with preloaded text – gebruik van sjablonen als begintekst van een pagina
- Help:Transclusion – * inbedden van pagina's van namespaces anders dan
Template:
. - Manual:Template limits
- Help:What links here/nl
- Special:Mostlinkedtemplates - toont de sjablonen die het meest gebruikt worden
- Special:Unusedtemplates - toont de sjablonen niet gebruikt worden (hoewel deze kunnen worden vervangen (substituted))
- Manual:$wgEnableScaryTranscluding - gebruik maken van sjablonen van andere wiki's
- w:WP:Anatomy of a template
- w:Wikipedia:Transclusion costs and benefits
- Manual:Parser.php
- Help:Extension:TemplateSandbox - voor het voorvertonen van uw wijzigingen in een sjabloon als het elders wordt opgebouwd
Externe links
- Miraheze template repository - MediaWiki sjablonen bedoeld voor algemeen gebruik.