Help:Sjablonen maken
Sjablonen zijn pagina's met – meestal kleine – stukken tekst, wikicode en/of HTML, bedoeld om meer dan eens te gebruiken op een of meer pagina's. Een sjabloon kan alles bevatten wat ook op een gewone pagina kan, en dmv. parameters kan data aan de sjabloon worden doorgegeven teneinde de weergave te beïnvloeden.
Sjablonen staan in principe altijd in de naamruimte "Sjabloon". Deze heeft als bjzondere eigenschap dat de pagina's dmv. een simpele syntax opgenomen kunnen worden in andere pagina's:
{{Naam van de sjabloon}}
Het is wel mogelijk pagina's uit andere naamruimtes in te sluiten, zie verder Help:Sjablonen gebruiken.
Basis
[bewerken]Inline
[bewerken]Een inline sjabloon omsluit lopende tekst, evt. met opmaak en/of links, maar heeft zelf geen vorm. De vorm wordt, net als bij lopende tekst in HTML, bepaald door de inhoud. Een voorbeeld is Help:Sjablonen/Intro, waarvan de inhoud de eerste alinea van deze pagina bevat. De inhoud kan in een <span> worden geplaatst als dat voor de opmaak nuttig is.
Block
[bewerken]Sjablonen kunnen ook als een zelfstandig "blok" getoond worden, als de inhoud is opgenomen in een HTML-element als bv. <div>. De inhoud vormt zich in dit geval naar vorm en grootte van het HTML-element. Veel sjablonen gebruiken voor dit doel nog een HTML-<table>, maar dit is om meer dan een reden af te raden. Beter is een <div>, die dmv. CSS-codes als een table of grid kan werken.
Parameters
[bewerken]Sjablonen kunnen worden aangeroepen met een of meer parameters, waarin data wordt doorgegeven. In de sjabloon kan de waarde worden opgevraagd en verder verwerkt. Een voorbeeld:
{{Maandnaam|9}}roept Sjabloon:Maandnaam aan, met de waarde "9" in de eerste parameter. De sjabloon geeft daardoor de naam van de negende maand, di. september.
Naamloos
[bewerken]Voor de meeste toepassingen voldoen naamloze parameters uitstekend. Ze worden in de sjabloon uitgelezen aan de hand van nummers, in dezelfde volgorde als ze werden opgegeven in de sjabloonaanroep.
- De waarden in de aanroep
{{Sjabloonnaam|aap|noot|mies}}worden in de sjabloon uitgelezen met resp.{{{1|}}}, {{{2|}}} en {{{3|}}}. - NB Een naamloze parameter kan geen isgelijkteken ("=") bevatten.
Benoemd
[bewerken]Wanneer een parameter een isgelijkteken ("=") moet kunnen bevatten, of een sjabloon aangeroepen moet kunnen worden met minder dan alle parameters, of de volgorde van de parameters moet kunnen veranderen is het gebruik van benoemde parameters noodzakelijk. Daar zijn twee mogelijkheden voor:
- het gebruik van nummers in de sjabloonaanroep:
{{<naam>|1=<inhoud parameter 1>|3=<inhoud parameter 3>}} - gebruik van begrijpelijke namen:
- in de aanroep:
{{<naam>|jaar=2025|maand=september}} - in de sjabloon:
Het was in {{{maand}}} {{{jaar}}}.geeft: Het was in september 2025.
De werking is hetzelfde, maar met benoemde parameters is de code van zowel de pagina als de sjabloon veel gemakkelijker leesbaar. In beide gevallen is de volgorde van de parameters niet meer van belang, en onstaan er geen problemen als ze worden weggelaten in de aanroep.
Verstekwaarde
[bewerken]Voor alle parameters geldt dat er een verstekwaarde kan worden opgegeven, dwz. een waarde die actief wordt bij het ontbreken van inhoud van de parameter.
{{{1}}}- Als de parameter leeg is wordt {{{1}}} zichtbaar.{{{1|}}}- Als de parameter leeg is gebeurt dat niet: .{{{1|''error''}}}- Als de parameter leeg is wordt de tekst die achter de verticale streep staat zichtbaar: error .- NB Parameters die in combinatie met {{#If:}}} gebruikt worden moeten een verticale streep bevatten, omdat anders de tekens "{{{1}}}" zelf als inhoud van de parameter gedetecteerd worden.
Functies
[bewerken]Sjablonen
[bewerken]Op deze Wikibooks zijn al vele sjablonen beschikbaar die verschillende veelgebruikte standaardfuncties vervullen, zie Categorie:Sjablonen en de ondercategorieën.
Magic words
[bewerken]Een kleine greep uit de grote hoeveelheid Magic words:
{{LOCALYEAR}}– geeft het actuele jaartal: 2025{{FULLPAGENAME}}– geeft de complete naam van de pagina, inclusief de naamruimte: Help:Sjablonen maken{{NAMESPACENUMBER}}– geeft het nummer van de naamruimte: 12{{Ucfirst:string}}– vervangt de eerste letter van de tekst door een hoofdletter: String
- Meer informatie over Magic words op mediawiki.org
Parserfunctions
[bewerken]{{#If:{{{1|}}}|ja|nee}}– Als parameter 1 enige inhoud heeft wordt "ja" getoond, anders "nee". De waarde van de parameter is niet van belang: letters, cijfers en leestekens gelden als inhoud, alleen spaties en regeleindes niet.
{{#IfEq:{{{1|}}}|42|ja|nee}}– Als de inhoud van parameter 1 gelijk is aan "42" is de response "ja", anders "nee".{{#IfExist:{{{1|}}}|ja|nee}}– ...{{#IfExpr:{{{1|}}}|ja|nee}}– ...{{#Switch:{{{1|}}}|1=ja|2=nee|3=weetniet|#default=error}}– ...
- Meer informatie over Parserfunctions op mediawiki.org.
Naamgeving
[bewerken]Kies een korte, krachtige naam die de functie van de sjabloon goed omschrijft. Sjablonen die een subroutine bevatten kunnen het beste "Sjabloon:<naam>/sub" genoemd worden, hoewel – indien mogelijk – een duidelijker omschrijving van de functie aan te bevelen is.
Selectief activeren
[bewerken]Door gebruik te maken van speciale codes is het mogelijk om een deel van een pagina in te sluiten, in plaats van de gehele pagina. Het is meestal wenselijk om bepaalde informatie, zoals sjabloondocumentatie en categorieën, niet in te sluiten.
<noinclude> ... </noinclude>– tekst en wikicode tussen de tags zijn uitsluitend zichtbaar op de sjabloonpagina<includeonly> ... </includeonly>– tekst en wikicode tussen de tags zijn alleen zichtbaar op de pagina waar de sjabloon is toegepast, niet op de sjabloonpagina<onlyinclude> ... </onlyinclude>– "Betekent dat de tekst tussen de tags zichtbaar is op de bronpagina en zichtbaar wanneer deze wordt getranscludeerd naar een andere pagina. Dit is de meest subtiele van de tags voor gedeeltelijke transclusie, omdat deze vaak de andere overschrijft. Als er minstens één paar "onlyinclude"-tags op een pagina staat, wordt bij transclusie van deze pagina alleen het materiaal binnen de "onlyinclude"-tags getranscludeerd. Er kunnen meerdere van dergelijke "onlyinclude"-secties op een pagina staan. Dit kan bijvoorbeeld handig zijn om een klein deel van een pagina te herhalen op een tweede pagina: omring het kleine deel door onlyinclude-tags en transcludeer het naar de tweede pagina." (Google-vertaling van m:Transclusion)
Opmaak
[bewerken]Voor een standaard-opmaak zijn diverse CSS-classes beschikbaar, zoals "TOCColours" en "wikitable".
- Gebruik in een inline sjabloon geen block-elementen (div, table, etc.), alleen <span> om de stijl te wijzigen.
Categorieën
[bewerken]Plaats de sjabloon in Categorie:Sjablonen of een van de ondercategorieën, subsjablonen in Categorie:Subsjablonen.
Beperkingen
[bewerken]- geen onderscheid in datatypen, alleen strings
- geen constanten of variabelen
- geen for- of while-loops
- geen goto, exit of return
- geen functies of subroutines, anders dan elk in een aparte sjabloon
- recursie niet toegestaan, ook niet via een omweg
- commentaar alleen mogelijk tussen HTML-tekens
<!--en-->