On 29 October 2011 01:01, Daniel Werner DanWeEtz@web.de wrote:
I am thinking about creating a very simple parser function #parse doing nothing but returning parameter 1 with an "'noparse' => false" option. Is there anything like this (or what could be abused for this) already or is there any reason why this might be a bad idea?
The reason I want to have something like this is, I want to create a template (for template and parser function black-box tests) accepting something like {{((}}#somefunction:a{{!}}b{{!}}c{{))}} as parameter value, showing {{#somefunction|a|b|c}} as output and at the same time calling {{#parse: {{((}}#somefunction:a{{!}}b{{!}}c{{))}} }} so that besides the definition also the result can be shown by the template output.
regards, Daniel
So basically a function which double-parses wikitext? There are quite a
few potential gotchas with that: firstly losing the parser state if you don't implement it properly and throwing UNIQ...QINUs everywhere; although that can be avoided. I expect you'd get a lot of double-escaping: {{#parse: [[Foo]] }} is going to come out as ""<a href=" http://wiki.com/wiki/Foo%22%3EFoo%3Ca%3E"" or somesuch, as the double brackets will be expanded to an <a> tag on the first parse, then the tag will be escaped on the second. It would probably be easy to get very deeply nested as well. How would you handle pre-save-transform substitutions like signatures and pipe tricks?
--HM