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
Copyright (C) 2012-2017 Edgewall Software