Hi folks,

I have released new version of Kwartz.
Kwartz is a template system for Ruby, PHP and Java.
It has the following features:
 * Separate presentation logic from HTML file.
 * Runs Very fast.
 * Doesn't break HTML design at all.
 * Auto-sanitizing.

Download:
  http://www.kuwata-lab.com/webtech/kwartz/kwartz_2004-03-19.tar.gz

Homepage:
  http://www.kuwata-lab.com/webtech/kwartz/


Current release has several significant enhancements.

 * Id attribute has now ability equal to kd attribute.
   You can use id attribute instead of kd attribute.
   In addition, you can use both id and kd attribute in a tag.

 * id="name" is now recognized as id="mark:name".
   It means that id="name" is recognized as a marking directive.

 * New directive notation supported.
       id="attr:name=value"  /  id="foreach:item=list"
   are able to be described as
       id="attr:name:value"  /  id="foreach:item:list"
   which are more suitable for HTML specification.

 * New keyword 'empty' supported in interemdiate language.
      :if (str == empty) ...  / :if (str != empty) ... 
   are equal to
      :if (str==null || str=='') ... / :if (str!=null && str!='') ... 

 * New command action 'analyze' supported.
   Action 'analyze' analyzes template and report global/local variables.
      =====================
      $ kwartz -a analyze -p file.plogic file.html
      global variables: username item_list
      local variables:  item item_ctr
      =====================

 * New directive 'replace' supported.
      <span id="replace:foo"> ... </span>
   is replaced by other element which is marked as 'foo'.

 * New command opton '--enable_eruby=true' supported,
   which enables you to write native codes of several languages
   in a template:
       --------------------
       ### presentation logic
       % if __lang__ == 'ruby'
          s = '%03d' % i
       % elsif __lang__ == 'php'
          <?php $s = sprintf('%03d', $i); ?>
       % else
          :set(s = (i >= 10 ? '0' : '00') .+ i)
       % end
       :print(s)
       --------------------


See Kwartz User's Guide for more detail.

--
regards,
kwa