from genshi.template import TemplateLoader, TemplateNotFound

loader = TemplateLoader('/path/to/templates')

data = {
    'site_name': 'Foo bar'
}

def application(environ, start_response):
    try:
        path = environ['PATH_INFO'].lstrip('/')
        try:
            tmpl = loader.load(path)
        except TemplateNotFound:
            start_response(404, [])
            return ['Not found']
        stream = tmpl.generate(**data)
        start_resonse(200, [('Content-Type', 'text/html; charset=utf-8')])
        return stream.render('html', doctype='html-strict')


