>   # build msglist
>   data = Hash.new{|h,k| h[k] = []}
>   messages = %w(one two three)
>   messages.inject(data){|data, msg| data[:list] << {:msg => msg}; data}
>   msglist = it.expand('', data)
> 
>   # build main page
>   data = Hash.new
>   data[:msglist] = noescape{ msglist }
>   ot.expand(STDOUT, data)

By the way, on this first example, my installation of ruby/amrita did 
not recognize the "noescape" method.  Did you try this out?

Thanks,
Carl