The parser converts tags to __UNIQ__ tokens while parsing and then expands these (either to original input, or to extension output) right at the end. Because you are doing expandtemplates, the __UNIQ__ tokens are expanded to the original wikitext instead of the rendered contents.

Tag extension output is arbitrary HTML, so putting the rendered contents would not be correct for just "expandtemplates" in many cases. Adding another mechanism to the tag hooks API so that they can opt to return "this is the wikitext I would have rendered" would be possible, if confusing (we'd then have some tag hooks returning input wikitext if they didn't, or couldn't realistically, support the new API).


On 15 October 2010 11:07, Bryan Tong Minh <> wrote:
On Thu, Oct 14, 2010 at 4:52 PM, Gabriel Sandor <> wrote:
> However, i soon found out that not all of the templates are actually
> expanded, the exception being those templates enclosed in wiki tags, which
> are left unexpanded (perhaps the most common example being {{cite ...}}
> templates inside <ref></ref> tags).

It appears to be that this happens indeed for <ref> tags. These tags
are part of extension Cite. Cite normally takes those tags, removes
them an relocates them to the location of the <references /> tag.

I'm guessing here, but what I think happens is that extension Cite
only does this in the parsing stage, so in the preprocessing stage
nothing is processed. Perhaps somebody with parser and Cite knowledge
can elaborate a bit more on this?


Mediawiki-api mailing list