Point taken. But, to be fair, #ifnot
and #ifand
can be written straightforwardly using ordinary #if
. The existing syntax of magic words and template calls in wiki markup is limited in how readable it can be, by the comparatively heavy syntactic overhead of the notation — delimiting double-braces {{}}
and separating pipes |
. It's not entirely obvious that the cost to readability of adding more magic words is made up for by the gain in readability &mdash if there is one — of writing {{#ifnot:{{cond}}|...}}
instead of {{#if:{{cond}}||...}}
, and {{#ifand:{{cond1}}|{{cond2}}|...}}
instead of {{#if:{{cond1}}{{cond2}}|...}}
; the differences get buried in the heavy syntactic overhead.
Now, if you want to take about helpful improvements to magic words, there was a proposal, way back I think, to add a magic word that provides the name of the page on which the magic word occurs regardless of what pages it's transcluded on. That would be immensely useful in writing templates that (1) are easier to read because the markup explains itself instead of hardcoding a page name that you then have to decipher to figure out what's going on, and (2) don't break if you move them, along with all their subpages, because they can name their subpages relative to themselves. The bug request was, I believe, classified as a WON'T FIX based on some rather unconvincing excuse about parser state.