Sjabloon:Stamboom
Uitleg
Een stamboom is een rechthoekig patroon van tegels (tiles) en boxen. Dit sjabloon produceert een enkele rij in een stamboom.
- Een tegel bevat verbindingslijntjes
- Een box bevat tekst, eventueel een plaatje, met of zonder links naar andere pagina's
Een box is precies drie tegels breed en heeft een zwarte rand van 2 pixels dik.
Het sjabloon accepteert tot 99 parameters waarvan de waarde in de sjabloonaanroep wordt gespecificeerd zonder expliciete parameternaam, en daarnaast parameters met een expliciete naam; de onderlinge volgorde van de eerstgenoemde soort parameters correspondeert met de volgorde in het resultaat. De parameterwaarden kunnen uit een enkel teken bestaan en dan resulteert dat meestal in een tegel, tenminste als het teken bekend is. De tekens hebben enigszins de vorm van een tegel, zodat ze gemakkelijk te onthouden zijn. Een speciale tegel is de lege tegel, die verkregen wordt door een spatie.
De overige waarden van deze parameters zonder expliciete parameternaam resulteren in een box. De inhoud kan direct gegeven wordt door de parameterwaarde, maar de parameterwaarde kan ook een boxnaam zijn, dit is de naam van een parameter die deze inhoud verderop in de sjabloonaanroep specificeert.
Een tabel met mogelijke tegels staat hieronder. Sjabloon:Stamboom/parameters
Voorbeeld
De code:
{{Stamboom/start}} {{Stamboom | | | | Oma |~|y|~| Opa | |}} {{Stamboom | | | | | | | |)|-|-|-|.| }} {{Stamboom | | |Mama|y|Papa| |Tante|}} {{Stamboom | |,|-|-|-|+|-|-|-|.| | | }} {{Stamboom | Jan | | IK! | |Zusje| | |}} {{Stamboom/eind}}
Resulteert in:
Oma | Opa | ||||||||||||||||||||||||||
Mama | Papa | Tante | |||||||||||||||||||||||||
Jan | IK! | Zusje | |||||||||||||||||||||||||
Boxnaam
De notatie als in het voorbeeld is overzichtelijk als een box hoogstens vijf tekens bevat. Worden de boxen langer, dan verlies je het overzicht tussen de regels. Daarom kun je in de sjabloonaanroep op de plaats van een box als parameternaam een zelfgekozen naam (de boxnaam) opgeven die daarachter wordt verklaard.
In het voorbeeld hieronder zijn de meeste boxnamen drie tekens lang en met spaties aangevuld tot vijf.
- Een boxnaam van een enkel teken wordt afgeraden - het zou de code van een tegel kunnen zijn, misschien van een tegel die in een toekomstige uitbreiding gedefinieerd wordt.
- Een boxnaam bestaande uit enkel cijfers kan verwarring geven met positionele parameters, geeft daardoor onvoorspelbare resultaten en wordt dus ook afgeraden.
De code:
{{Stamboom/start}} {{Stamboom | | | | GRM |~|y|~| GRV | | GRM=[[Grootmoeder|Oma]]|GRV=[[Grootvader|Opa]]}} {{Stamboom | | | | | | | |)|-|-|-|.| }} {{Stamboom | | | MOE |y| VAD | | ELLA| MOE=Mamma|VAD=Pappa|ELLA=[[Tante Ella]]}} {{Stamboom | |,|-|-|-|+|-|-|-|.| | | }} {{Stamboom | JAN | | IK | | ZUS | | | JAN=Mijn broer Jan|IK='''Ik!'''|ZUS=Mijn kleine zusje}} {{Stamboom/eind}}
Resulteert in:
Oma | Opa | ||||||||||||||||||||||||
Mamma | Pappa | Tante Ella | |||||||||||||||||||||||
Mijn broer Jan | Ik! | Mijn kleine zusje | |||||||||||||||||||||||
Zonder lijntjes
Staan er geen lijntjes tussen de boxen, dan resulteert dat soms in een lelijke layout met kleine boxen en grote tegels. Het probleem is op te lossen met een aantal lege tegels:
{{Stamboom/start|style=font-size:67%;}} {{Stamboom|pers1| |pers2| |pers3| |pers4}} {{Stamboom| |!}} {{Stamboom| |pers5| |pers6| |pers7| |pers8}} {{Stamboom/eind}}
resulteert in:
pers1 | pers2 | pers3 | pers4 | ||||||||||||||||||||||||||||
pers5 | pers6 | pers7 | pers8 | ||||||||||||||||||||||||||||
{{Stamboom/start|style=font-size:67%;}} {{Stamboom|pers1| |pers2| |pers3| |pers4}} {{Stamboom| |!| | | | | | | | | | | | | | | }} <-- aangevuld met lege tegels {{Stamboom| |pers5| |pers6| |pers7| |pers8}} {{Stamboom/eind}}
resulteert in:
pers1 | pers2 | pers3 | pers4 | ||||||||||||||||||||||||||||||
pers5 | pers6 | pers7 | pers8 | ||||||||||||||||||||||||||||||
Opmaak
Het uiterlijk van boxen kan worden beïnvloed door de optionele parameters border en boxstyle. De eerstgenoemde bepaalt de breedte van de boxrand in pixels, de tweede kan gebruikt worden voor CSS. Dit werkt voor alle boxen op een regel. Wil je elke box een eigen kleur geven, gebruik dan de parameter [boxnaam]kl=[kleur].
Alle boxen op een regel dezelfde kleur
{{Stamboom/start}} {{Stamboom|border=0|boxstyle=background:lightgreen;|Box 1|y|Box 2}} {{Stamboom|border=0|boxstyle=background:#dfd; | |,|-|^|-|.| | }} {{Stamboom|border=0|boxstyle=background:lightblue; |Box 3|y|Box 4}} {{Stamboom/eind}}
Geeft als resultaat:
Box 1 | Box 2 | ||||||||||||||
Box 3 | Box 4 | ||||||||||||||
Het kleuren van individuele boxen
Voor een box met een boxnaam kan de kleur worden gespecificeerd als waarde van de parameter met als naam de boxnaam, gevolgd door "kl". Indien er spaties staan achter de in eerste instantie opgegeven boxnaam dan moeten deze ook tussen de boxnaam en "kl" staan. (Bij het specificeren van de inhoud van de box is het echter niet nodig deze spaties tussen de boxnaam en het is-teken te plaatsen.)
{{Stamboom/start}} {{Stamboom| pa |y| ma| pa=Vader| ma=Moeder| pakl=red| makl=pink}} {{Stamboom| |,|-|^|-|.| }} {{Stamboom| zoon| |docht| zoon=<span style="color:green">Zoon</span>| docht=Dochter| Dochterkl=red}} {{Stamboom/eind}}
Geeft als resultaat:
Vader | Moeder | ||||||||||||
Zoon | Dochter | ||||||||||||
Er zijn hier twee fouten gemaakt, waardoor vader en dochter geen kleur hebben gekregen:
- de boxnaam van vader is niet 'pa' maar 'pa ', er staat een spatie na 'pa', dus 'pakl' moet 'pa kl' zijn, of de boxnaam moet rechts aangesloten in het vakje staan (pipe direct na de naam).
- de boxnaam van de dochter is 'docht', niet 'Dochter'
Het sjabloon {{Stamboom/start}} accepteert ook een optionele style-parameter die gebruikt kan worden voor CSS-styles voor de gehele tabel.
Conventies
We streven in Wikipedia naar een uniforme layout. Enkele suggesties:
Ouders komen boven de kinderen met een lijntje ertussen. Een andere plaatsing is mogelijk om ruimte te sparen, maar in elk geval komt er een lijntje van de onderkant van de ouders naar de bovenkant van de kinderen.
Broers en zussen komen naast elkaar, met of zonder tussenruimte. Eventueel boven elkaar zonder tussenruimte.
Tussen echtparen komt een horizontale gestippelde lijn. De kinderen takken af van dat lijntje, of (wat de voorkeur heeft als iemand meerdere keren getrouwd was) van een van de ouders.
De vrouwen krijgen een roze achtergrond.
Voorbeelden:
Willem III | Wilhelmina | Juliana | |||||||||||||||||||||
Beatrix | Irene | Margriet | Christina | ||||||||||||||||||||
Sophie | Willem III | Emma | Willem III | Sophie | Emma | ||||||||||||||||||||||||||||||||||||||||||||||
Willem | Maurits | Alexander | Wilhelmina | Willem | Wilhelmina | ||||||||||||||||||||||||||||||||||||||||||||||
Maurits | |||||||||||||||||||||||||||||||||||||||||||||||||||
Alexander | |||||||||||||||||||||||||||||||||||||||||||||||||||
<templatedata> { "params": { "1": { "type": "line" }, "2": { "type": "line" }, "3": { "type": "line" }, "4": { "type": "line" }, "5": { "type": "line" }, "6": { "type": "line" }, "7": { "type": "line" }, "8": { "type": "line" }, "9": { "type": "line" }, "10": { "type": "line" }, "11": { "type": "line" }, "12": { "type": "line" }, "13": { "type": "line" }, "14": { "type": "line" }, "15": { "type": "line" }, "16": { "type": "line" }, "17": { "type": "line" }, "18": { "type": "line" }, "19": { "type": "line" }, "20": { "type": "line" }, "21": { "type": "line" }, "22": { "type": "line" }, "23": { "type": "line" }, "24": { "type": "line" }, "25": { "type": "line" }, "26": { "type": "line" }, "27": { "type": "line" }, "28": { "type": "line" }, "29": { "type": "line" }, "30": { "type": "line" }, "31": { "type": "line" }, "32": { "type": "line" }, "33": { "type": "line" }, "34": { "type": "line" }, "35": { "type": "line" }, "36": { "type": "line" }, "37": { "type": "line" }, "38": { "type": "line" }, "39": { "type": "line" }, "40": { "type": "line" }, "41": { "type": "line" }, "42": { "type": "line" }, "43": { "type": "line" }, "44": { "type": "line" }, "45": { "type": "line" }, "46": { "type": "line" }, "47": { "type": "line" }, "48": { "type": "line" }, "49": { "type": "line" }, "50": { "type": "line" }, "51": { "type": "line" }, "52": { "type": "line" }, "53": { "type": "line" }, "54": { "type": "line" }, "55": { "type": "line" }, "56": { "type": "line" }, "57": { "type": "line" }, "58": { "type": "line" }, "59": { "type": "line" }, "60": { "type": "line" }, "61": { "type": "line" }, "62": { "type": "line" }, "63": { "type": "line" }, "64": { "type": "line" }, "65": { "type": "line" }, "66": { "type": "line" }, "67": { "type": "line" }, "68": { "type": "line" }, "69": { "type": "line" }, "70": { "type": "line" }, "71": { "type": "line" }, "72": { "type": "line" }, "73": { "type": "line" }, "74": { "type": "line" }, "75": { "type": "line" }, "76": { "type": "line" }, "77": { "type": "line" }, "78": { "type": "line" }, "79": { "type": "line" }, "80": { "type": "line" }, "81": { "type": "line" }, "82": { "type": "line" }, "83": { "type": "line" }, "84": { "type": "line" }, "85": { "type": "line" }, "86": { "type": "line" }, "87": { "type": "line" }, "88": { "type": "line" }, "89": { "type": "line" }, "90": { "type": "line" }, "91": { "type": "line" }, "92": { "type": "line" }, "93": { "type": "line" }, "94": { "type": "line" }, "95": { "type": "line" }, "96": { "type": "line" }, "97": { "type": "line" }, "98": { "type": "line" }, "99": { "type": "line" }, "100": { "type": "line" }, "101": { "type": "line" }, "boxstyle": { "type": "line" }, "border": { "type": "line" } }, "format": "inline" } </templatedata>