summaryrefslogtreecommitdiff
path: root/doc/bugs/can__39__t_mix_template_vars_inside_directives.mdwn
blob: 462852ef8c2f24bbd0356a87ef0ab628df4603c1 (plain)

I often find myself wrapping the same boiler plate around [[ikiwiki/directives/img]] img directives, so I tried to encapsulate it using the following [[ikiwiki/directives/template]]:

<div class="image">
[\[!img <TMPL_VAR raw_href>
size="<TMPL_VAR raw_size>"

<TMPL_IF alt>
  alt="<TMPL_VAR raw_alt>"
<TMPL_ELSE>
  <TMPL_IF caption>
    alt="<TMPL_VAR raw_alt>"
  <TMPL_ELSE>
    alt="[pic]"
  </TMPL_IF>
</TMPL_IF>

]]
<TMPL_IF caption>
<p><TMPL_VAR raw_caption></p>
</TMPL_IF>
</div>

The result, even with htmlscrubber disabled, is mangled, something like

<div class="image">
<span class="createlink"><a href="http://jmtd.net/cgi?
    page=size&amp;from=log0.000000old_new_test&amp;do=create"
    rel="nofollow">?</a>size</span>

</div>

Any suggestions gladly received. -- [[Jon]]

Well, you should be able to do things like this, and in my testing, I can. I used your exact example above (removing the backslash escape) and invoked it as: [[!template id=test href=himom.png size=100x]]

And got just what you would expect.

I don't know what went wrong for you, but I don't see a bug here. My guess, at the moment, is that you didn't specify the required href and size parameters when using the template. If I leave those off, I of course reproduce what you reported, since the img directive gets called with no filename, and so assumes the size parameter is the image to display.. [[done]]? --[[Joey]]