Sorry to cc: this to the list, but I stand corrected and might as well
mention that to the list :)


On Fri, 18 Jul 2003, Dave Baker wrote:

> Correction: Bricolage is written in Mason, I believe. That's what the
> Bricolage authors say at http://bricolage.cc/

Hmm, so it does. I wonder where I got the idea that it was H::T based...

> I'm very pleased with Mason -- the online O'Reilly book about Mason is
> at http://www.masonbook.com/book/

A little bird tells me that TT is about to get an O'Reilly book as well,
though it's not on their upcoming titles page (yet).

The only H::T dead-trees material that I know of is a section in _CGI
Programming with Perl_, 2nd edition -- that's where I learned it. I like
the simplicity of H::T, but most other people seem to prefer TT or Mason.
I still think it comes down to whichever system meets your needs the best,
and in different contexts any of them (or others) could be appropriate.


This may have been covered before here, but Zope supports an interesting
template mechanism called TAL, where everything is done by attributes for
the HTML tags, rather than special logical tags as most other systems use
(e.g. the ones mentioned above, SSI, PHP, ASP, JSP, etc). This has the
nice side effect of guaranteeing that all your html templates are always
valid, and so can be used in any html IDE without complication. So for
example, picking a random sample from the spec:


    Repeat

      Syntax:
           argument      ::= variable_name expression
           variable_name ::= Name

      When you want to replicate a subtree of your document once for each
      item in a sequence, you use repeat.  The expression should evaluate
      to a sequence. If the sequence is empty, then the statement element
      is deleted, otherwise it is repeated for each value in the sequence.
      If the action is cancelled, then the element is left unchanged, and
      no new variables are defined.

      The variable_name is used to define a local variable and a repeat
      variable. For each repetition, the local variable is set to the
      current sequence element, and the repeat variable is set to an
      iteration object.  You use iteration objects to access information
      about the current repetition (such as the repeat index).
      (Iteration objects are more properly the domain of TALES.)  The
      repeat variable has the same name as the local variable, but is
      only accessible through the builtin variable named repeat (see
      RepeatVariable).

      Examples:

        <p tal:repeat="txt python:'one', 'two', 'three'">
           <span tal:replace="txt" />
        </p>
        <table>
          <tr tal:repeat="item here/cart">
              <td tal:content="repeat/item/index">1</td>
              <td tal:content="item/description">Widget</td>
              <td tal:content="item/price">$1.50</td>
          </tr>
        </table>


It's a pretty clever approach; I'd like to see something like this done
with a Perl backend (I haven't really been keeping track of development,
for all I know there already is a Perl backend...). Read more:

  http://www.zope.org/Wikis/DevSite/Projects/ZPT/TAL
  http://www.zope.org/Wikis/DevSite/Projects/ZPT/TAL%20Specification%201.4


But anyway, Zope isn't mod_perl, so that's probably not what the original
person was hoping to read about... :)



-- 
Chris Devers    [EMAIL PROTECTED]

Reply via email to