とりあえずのGenshi の使い方

テンプレートとなるテキストを用意して、それを元にgenshi.template.Template のサブクラスのインスタンスを生成。
パラメータは$ で始まる文字列で、$ 自身を使いたい場合は$$ とする。

from genshi.template import TextTemplate
tmpl=TextTemplate("<$param>")

テンプレートのインスタンスからgenerate でストリームを生成。generate を呼び出すときにパラメータを渡す。
作成したストリームのrander で文字列を生成する。

strm=tmpl.generate(param="hogehoge")
print strm.render()
'<hogehoge>'

パラメータにはアトリビュート?を持たせることが出来る。この場合、パラメータを{} で括る。シェルスクリプトみたいな書き方。{}で括らなくても大丈夫みたい。

class X:
    def __init__(self, name):
        self.name=name
tmpl=TextTemplate("<${param.name}>")
print tmpl.generate(param=X("wktk")).render()
'<wktk>'

さらに、パラメータの関数呼び出しも出来る。

from datetime import datetime
tmpl=TextTemplate("<${d.strftime('%x %X')}>")
print tmpl.generate(d=dattime.now()).render()
'<10/30/08 20:48:55>'