Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • For it to be useful, I really think it needs loops.

    <table>
    [% FOR item IN items %]
      <tr><td>[% item.name %]</td><td>[% item.value %]</td>
    [% END %]
    </table>

    I work hard (usually) to ensure there is no logic in my templates, but I can't do without loops. And it needs to be easily upgradeable to Template::Toolkit.

    That being said, many people will be upset about the whitespace issues of the above. There are obvious ways of dealing with this for the general case (w

    • Er, pretend I didn't miss out on a closing "tr" tag :)

    • And filters. I may not imagine the bad things that would happen if item.name and/or item.value contain text with substrings that are meaningful as HTML markup.

      Besides, for a template system I want to be able to insert text between every listed item, but not after the final item; just like join does in Perl, but then with a loop-ish instead of a functional syntax. (Just being able to test for the last iteration in the loop, would do the trick.)

      I don't remember the syntax TT2 uses for such a feature, but I'm

  • loops
    variable substitution (of course)
    simple config (where templates are found and the like)
    maybe the "include" function as well

  • The one thing I am missing from TT while working in Text::MicroTemplate is the loop variable. It lets you check what the loop index is and has a few convenience methods, such as loop.first. http://template-toolkit.org/docs/manual/Variables.html#section_loop [template-toolkit.org]
  • What I'd like is the ability to have simple plugins to support custom directives. That way we'd be able expand TT::Tiny just a little to meet our needs.
    --
    Every token is like an unnecessary stain on whitespace and idleness.
  • If T::Tiny doesn't have some looping construct, I don't see the advantage over a simple eval or string interpolation.

  • I don't like logic in templates, but I will set a flag in the stash and allow the template to control the presentation. For example, assume it is hard to figure out if something is "pending". After lots of hard work the program figures it out and sets $stash{pending}=1. Then the template simply has [% IF pending %]Item is pending![% END %] or whatever.
  • These have all been mentioned, but I just wanted to add one more voice:

    • Loops - Not just loops, but also with the ability to tell first, index, last and possibly even vs odd.
    • Includes - Doesn't need to be as complicated or as varied as TT, but being able to break templates up avoids a lot of duplication.
    • Filters - You can't do web or XML stuff safely without having HTML escaping, and being able to define your own filters makes it easy to extend.