On 29 October 2011 01:01, Daniel Werner <DanWeEtz(a)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">Foo<a>"" 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