Mercurial > genshi > genshi-test
comparison examples/bench/basic.py @ 592:7145e4eba2ec
Add a new syntax for text templates, which is available alongside the old syntax for now. The new syntax is more poweful and flexible, using Django-style directive notation.
author | cmlenz |
---|---|
date | Mon, 13 Aug 2007 12:40:56 +0000 |
parents | ecb5729c06b1 |
children | 72e1a2ed04a0 |
comparison
equal
deleted
inserted
replaced
590:880b1a75d046 | 592:7145e4eba2ec |
---|---|
7 import os | 7 import os |
8 from StringIO import StringIO | 8 from StringIO import StringIO |
9 import sys | 9 import sys |
10 import timeit | 10 import timeit |
11 | 11 |
12 __all__ = ['clearsilver', 'mako', 'django', 'kid', 'genshi', 'simpletal'] | 12 __all__ = ['clearsilver', 'mako', 'django', 'kid', 'genshi', 'genshi_text', |
13 'simpletal'] | |
13 | 14 |
14 def genshi(dirname, verbose=False): | 15 def genshi(dirname, verbose=False): |
15 from genshi.template import TemplateLoader | 16 from genshi.template import TemplateLoader |
16 loader = TemplateLoader([dirname], auto_reload=False) | 17 loader = TemplateLoader([dirname], auto_reload=False) |
17 template = loader.load('template.html') | 18 template = loader.load('template.html') |
18 def render(): | 19 def render(): |
19 data = dict(title='Just a test', user='joe', | 20 data = dict(title='Just a test', user='joe', |
20 items=['Number %d' % num for num in range(1, 15)]) | 21 items=['Number %d' % num for num in range(1, 15)]) |
21 return template.generate(**data).render('xhtml') | 22 return template.generate(**data).render('xhtml') |
23 | |
24 if verbose: | |
25 print render() | |
26 return render | |
27 | |
28 def genshi_text(dirname, verbose=False): | |
29 from genshi.core import escape | |
30 from genshi.template import TemplateLoader, NewTextTemplate | |
31 loader = TemplateLoader([dirname], auto_reload=False) | |
32 template = loader.load('template.txt', cls=NewTextTemplate) | |
33 def render(): | |
34 data = dict(escape=escape, title='Just a test', user='joe', | |
35 items=['Number %d' % num for num in range(1, 15)]) | |
36 return template.generate(**data).render('text') | |
22 | 37 |
23 if verbose: | 38 if verbose: |
24 print render() | 39 print render() |
25 return render | 40 return render |
26 | 41 |