ParserFunctions bewerken

ParserFunctions, een extensie van MediaWiki waarmee onder andere berekeningen mogelijk zijn gemaakt. Hou er bij het gebruik rekening mee dat deze functie mogelijk snel weer wordt uitgezet[1]. De nieuwe parserfuncties experimenteel en vooralsnog zijn ze erg lastig te gebruiken voor rechts-naar-links talen als het Arabisch, Hebreeuws etc.

Parser functies hebben de algemene syntax:

{{#functiennaam: parameter 1 | parameter 2 | parameter 3...}}

Functies bewerken

  • expr: {{#expr: (100 - 32) / 9 * 5 round 0}} — Voert een berekening uit
  • if: {{#if: <conditie> | <then tekst> | <else tekst> }}</nowiki> — Conditioneel weergeven.
    • N.B.: De if functie is een "if defined" en evalueert zelf géén vergelijkingen dus {{#if: 1 = 2|ja|nee}} geeft altijd "ja", want "1 = 2" is niet leeg of alleen whitespace.
    1. Test (WebBoy): {{#if:{{{reden|}}}|De reden is: {{{reden}}}|Er is geen reden opgegeven}} Geeft: Er is geen reden opgegeven
  • ifexpr: {{#if: <expressie> | <then tekst> | <else tekst> }}</nowiki> — Conditioneel weergeven afhankelijk van expressie.
Als de expressie het resultaat '0' oplevert wordt de 'else tekst' uitgevoerd in alle andere gevallen de 'then tekst'.
  • ifeq: {{#ifeq: <comparison text 1> | <comparison text 2> | <equal text> | <not equal text> }} — Vergelijkt twee strings
    1. Test: {{#ifeq: test|test|zelfde|ongelijk}} Geeft: zelfde
    2. Test: {{#ifeq: Test|test|zelfde|ongelijk}} Geeft: ongelijk
    3. Test: {{#ifeq: test|Test|zelfde|ongelijk}} Geeft: ongelijk
    4. Test: {{#ifeq: Kort|Kortbegin|zelfde|ongelijk}} Geeft: ongelijk
    5. Test: {{#ifeq: Kortbegin|Kort|zelfde|ongelijk}} Geeft: ongelijk
  • rand: {{#rand: <minimum> | <maximum> }} — Kiest willekeurig uit opgegeven mogelijkheden
    1. Test: {{#rand: 0 | 99 }} — Geeft: {{#rand: 0 | 99 }} (dus alleen gehele getallen)
    2. Test: {{#rand: 0.1 | 0.9 }} — Geeft: {{#rand: 0.1 | 0.9 }} (dus geen breuken)
    3. Test: {{#rand: Naam10 | Naam99 }} — Geeft: {{#rand: Naam10 | Naam99 }} (dus niet tellen met substrings)

Quickstart bewerken

  1. {{#if: {{Tekst}} | True | False}} Kijkt of de tekst (string) Tekst niet leeg is.
  2. {{#ifexpr: {{#expr: 1 = 2}} | True | False }} Kijkt of het getal 1 gelijk is aan het getal 2 (Let op de dubbele punt na expr!)
  3. {{#ifexpr: {{{<parameter>|0}}} | <optionele tekst> | }} Voegt de optionele tekst toe indien 'parameter' en anders niets.

Voorbeelden bewerken

  • Random tekst: Pudding is {{#ifexpr:{{#rand:0|1}}|de beste|een sukkel}}! Wordt: Pudding is Fout in uitdrukking: Onbekend leesteken "{".!
  • Random foto1: {{#ifexpr:{{#rand:0|1}}|[[Image:Bossche_Bol.jpg|32px]]|}} Wordt: Fout in uitdrukking: Onbekend leesteken "{".
  • Random foto2: [[Image:{{#ifexpr:{{#rand:0|1}}|Negerzoenen.jpg|Bossche Bol.jpg}}|32px]] Wordt: [[Afbeelding:Fout in uitdrukking: Onbekend leesteken "{".|32px]]

Willekeurige foto3 bewerken

[[Afbeelding:Fout in uitdrukking: Onbekend leesteken "{".|thumb|Dit snoepen we vandaag]]

Resultaat van onderstaande code zie rechts:

[[Afbeelding:{{#ifexpr:{{#rand: 0|5}}|{{#ifexpr:{{#rand: 0|4}}|
{{#ifexpr:{{#rand: 0|3}}|{{#ifexpr:{{#rand: 0|2}}|{{#ifexpr:{{#rand: 0|1}}|
Bossche Bol.jpg|
Melo Cake of Mallo met doorsnede.jpg}}|
Roze Marshmallows.jpg}}|
Jodekoeken met AA-batterij.jpg}}|
Blanke Kussen.jpg}}|
Negerzoenen.jpg}}|thumb|Dit snoepen we vandaag]]

Nadeel: lelijk en cache wordt alleen vernieuwd na een bewerking van de pagina?!!!!