> A String widget/template allows you to control the rendering of all > fonts dynamically. If the String widget/template sees the incoming > request is from IE5+, it doesn't render the font if the font is the > same as the default font. The Style widget/template renders the > default font in a style if the browser is IE5+. This avoids the > stylesheet bugs in all other browsers and gives 90% of your users who > are running IE5+ a much lighter weight page. > > It's cumbersome to do wrap all text in string templates, because the > calling mechanism is verbose. Most template languages I've looked at > only support named parameters. > > Widgets can have named parameters, e.g. > > String({ > value => ['User.first_name'], > string_font => 'my_first_name_font', > }); > > but it is much more convenient to use positional notation: > > String(['User.first_name'], 'my_first_name_font');
You can actually do that pretty comfortably with Template Toolkit. You could use a filter for example, which might look like this: [% FILTER font('my_first_name_font') %] ... some text, possibly with other template directives in it... [% END %] The filter is a module which would get to post-process the output of the contained block. I believe the taglibs in AxKit could be used in a similar way. - Perrin