Tim Starling wrote:
Infoboxes are a very important application of templates. There needs to be some way conditionally add table rows based on whether or not a given template parameter is defined. When people complained about the argument separators in {{#if:}} clashing with table syntax, I told them to use HTML table tags instead. That seemed like a much better, more stable solution than {{!}}. If that's not going to work anymore, what exactly are people meant to do?
There are thousands of affected articles, and if there is no solution for this, then I don't think it is acceptable to put this change live.
Why is the template required to close its own tags? It would make things a lot easier if this was not required.
That's how MediaWiki has worked for a long time; it was just broken with Tidy mode enabled, thus guaranteeing that any Wikipedia page using such a template would be broken when copied to another wiki.
Would you prefer to change the behavior? Note that this will require some restructuring to the parser to both be more correct and and not break things, and will leave us with inconsistent, unparseable code in the future. (That is, it'll be impossible to tell what the code after a template inclusion will parse as unless the template is available.)
But if we're really, really sure, we can put some time into working on that and accept that our syntax will never be predictable. (This has consequences for future wysiwyg or markup-sensitive assisted editing plugins.)
-- brion vibber (brion @ pobox.com)