Here is a list of desired/planned features in ruby-tmpl:

* support for else and elsif tags.  tmpl_(if|unless|case) needs to
  have the guts of their body put in a while loop (don't know how many
  elsif's there are going to be).  tmpl_(if|unless|case) needs to test
  the conditional, then decide whether it executes the next piece of
  code, or if it searches on till it finds the next tag (else, elsif,
  or end).  If end, the loop exits.  Possible interface would be
  find_tag(tmpl, ['else','elsif','end']).  Should return an array that
  contains, the length of the code, the offset from the start of the
  block, and the length of the block that way a slice can be taken
  from the unparsed string, and passed to parse_string to generate an
  interpolated string.

* support for template loops (pass in an array or hash as a value)

* support for pulling data from an XML file using XPath

* support for direct database access from tmpl files

* support for a global configuration file for security and ISP
  deployments (limit use of the eval tag)

* support for non-recursive includes (may be possible)

* support for a tmpl request handler so that a script isn't needed

* Need to document the class using RD

* Need to create a Makefile target for creating html pages

* Need to create a Makefile target for creating man pages

* Need to create a Makefile target for creating text pages

* Need to create a Makefile target for installing/uninstalling pages

* Makefile needs to be dynamically created (mkfm.rb)

* Ability to define site resources (news, signup, etc.) that are specified
  in an external data source (CDB, BDB, GDBM, PostgreSQL).  Resources could
  be referenced by its resource name and not by the URL.  Resources could
  can also be referenced from a central site redirector that way pages don't
  have to be rebuilt.

* Ability to define a policy file for a site (way of specifying the site
  redirector).

* Ability to have a tag return the return value (output) of a class instance.

* Ability to define 1:1 mappings between classes and output formats (ex: an
  array in a tmpl tag will always produce an HTML table as specified by the
  template).  Ex:  The tag: <?tmpl.obj (name|symbol|sym)="gems" ?> would
  produce the appropriate HTML for the symbol 'gems'.

* Provide context for the calling object.
  <?tmpl.obj ... context="(xml|html|html4|signup_page)" ?>

* Add a bulk set method that takes a hash of key/val pairs for tmpl
  assignment
