n 11/21/07, Tim Starling tstarling@wikimedia.org wrote: <snip>
The parser pass order has changed from
<snip>
* Template and extension tag parse to intermediate representation * Template expansion and extension rendering * HTML normalisation and security * Main section...
<snip>
The intermediate representation I have used is a DOM document tree, taking
<snip>
Uncovered main-pass syntax, such as HTML tags, are now generally valid, whereas previously in some cases they were escaped. For example, you could have "<ta" in one template, and "ble>" in another template, and put them together to make a valid <table> tag. Previously the result would have been "<table>".
I'm not sure I grok the impact of these changes. Say you have template A defined as follows:
''italics'' '''open-bold <b
which is called from an article with text
Crazy: {{A}}r /> stuff'''.
What text does the parser see exactly? Will it see a mixture of both rendered and un-rendered HTML? ie:
Crazy: <i>italics</i> '''open-bold <br /> stuff'''.
I'm guessing not, because obviously not all HTML is valid input to the parser (unlike the <i> in this case). Would you mind explaining a bit more?
I was thinking this over and wondering whether there would be benefit in an explict tag in templates to mark code that should be passed unrendered through to its calling page. Something like <includeraw><ta</includeraw> But since I haven't really understood how the new PP works, this probably isn't necessary. ?
Thanks, Steve