I try to avoid disturbing any of the wikimedia illuminati without doing my homework first.
*Template Tolerant Tags*
I have a tag (<chem>) that changes raw text into html-marked-up text. I want to be able to use it in a template:
<includeonly>{| class="wikitable" !Chemical Formula |{{#if:{{{chemf|}}}|<chem>{{{chemf}}}</chem>|unspecified}} |}</includeonly>
- My first implementation of this project was in a *template*, but that turned out to be "the wrong thing" because I want to mark up raw text, not a series of prepartitioned parameters.
- I can see that implementing a *magic word* might get me to where I want to go, but that seems both a little awkward and a little overkill, since that's for logical-flow/semantic stuff, and this is just syntax transformation.
- Therefore I assumed (bad!) that *tags* would be the way to go. Ostensibly being markup, I thought that tags would be among the very last phases of the parser. Unfortunately for my project, it looks like they are among the first. After wrestling with the problem for a while, and including a call like this in my code: $parser->recursiveTagParse($raw, $frame); I still don't have a template-tolerant tag.
Tags operating on template parameters seems to be a common desire. Before mailed this list directly I read:
- Manual:Tag extensionshttp://www.mediawiki.org/wiki/Manual:Tag_extensions - Manual talk:Parser functionshttp://www.mediawiki.org/wiki/Manual_talk:Parser_functions - How_do_I_render_wikitext_in_my_extension?http://www.mediawiki.org/wiki/Manual:Tag_extensions#How_do_I_render_wikitext_in_my_extension.3F - Erik's blog http://meta.wikimedia.org/wiki/User:Eloquence
and I have Googled all the variations of the below I can think of
[mediawiki custom tag parameter substitution] [mediawiki extension template parameter]
I cannot find any discussion on this topic *since 2011*. This indicates to me that this problem is long solved, but I can't seem to track it down.
I am a compiler geek, so I understand phases of parsing, and the idea that simply dropping my tag into this stream won't result in it getting properly parsed by the browser - it has to be performed before the it's sent to the browser, etc.
Wow, long preamble.
I have two and a half questions:
1. How can I get simple parameter substitution done? 2. Is there a "strategy" document somewhere that says: "Put *these*things in tags, put *these* things in templates, and *these* things in magic words"?
2a) If there isn't, why?
Thank you kindly for your time -Jeff Evarts, a financial supporter of Wikipedia