Template engine with simple data structure
Project description
`flexable` is template engine with simple data structure.
That is made up of str, unicode, dict, tuple, list and Element.
usage
merge structured values to xhtml template.
>>> t = Template()
>>> t.fromstring("<div/>")
>>> str(t)
'<div/>'
>>> t.merge('hello')
>>> str(t)
'<div>hello</div>'
>>> t = Template()
>>> t.fromstring("<div><span class='y'/></div>")
>>> t.merge({'y':['1', '2']})
>>> str(t)
'<div><span class="y">1</span><span class="y">2</span></div>'
>>> t = Template()
>>> t.fromstring("<div><span class='y'/></div>")
>>> t.merge({'y':[({'@id':'m1'}, '1'),
... ({'@id':'m2'}, '2')]})
>>> str(t)
'<div><span class="y" id="m1">1</span><span class="y" id="m2">2</span></div>'
>>> t.fromstring("<div><div class='box'><span class='x'/><span
class='y'/></div></div>")
>>> t.merge({'box':[{'x':'1', 'y':'2'},
... {'x':'3', 'y':'4'}]})
>>> str(t)
'<div><div class="box"><span class="x">1</span><span
class="y">2</span></div><div class="box"><span class="x">3</span><span
class="y">4</span></div></div>'
>>> t.fromstring("<div/>")
>>> t.merge(ET.Element('span'))
>>> str(t)
'<div><span/></div>'
To use flexable as template engine for wsgi application, you can use
flexable.plugin:FlexablePlugin.
And that is python.template_engine entry point.
Example on TurboGears
controllers.py::
@expose(template="flexable:flexable_example.templates.example")
def example(self):
return dict(message="This is flexable message.",
contents=""" This is main contents from controller.
flexable is merge values to given html template with class attribute.
""")
flexable_example/templates/example.html::
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Flexable Template</h1>
<span class="message"></span>
<p class="contents"></p>
<span class="widget"/>
</body>
</html>
you get:
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Flexable Template</h1>
<span class="message">This is flexable message.</span>
<p class="contents"> This is main contents from controller.
flexable is merge values to given html template with class attribute.
</p>
</body>
</html>
That is made up of str, unicode, dict, tuple, list and Element.
usage
merge structured values to xhtml template.
>>> t = Template()
>>> t.fromstring("<div/>")
>>> str(t)
'<div/>'
>>> t.merge('hello')
>>> str(t)
'<div>hello</div>'
>>> t = Template()
>>> t.fromstring("<div><span class='y'/></div>")
>>> t.merge({'y':['1', '2']})
>>> str(t)
'<div><span class="y">1</span><span class="y">2</span></div>'
>>> t = Template()
>>> t.fromstring("<div><span class='y'/></div>")
>>> t.merge({'y':[({'@id':'m1'}, '1'),
... ({'@id':'m2'}, '2')]})
>>> str(t)
'<div><span class="y" id="m1">1</span><span class="y" id="m2">2</span></div>'
>>> t.fromstring("<div><div class='box'><span class='x'/><span
class='y'/></div></div>")
>>> t.merge({'box':[{'x':'1', 'y':'2'},
... {'x':'3', 'y':'4'}]})
>>> str(t)
'<div><div class="box"><span class="x">1</span><span
class="y">2</span></div><div class="box"><span class="x">3</span><span
class="y">4</span></div></div>'
>>> t.fromstring("<div/>")
>>> t.merge(ET.Element('span'))
>>> str(t)
'<div><span/></div>'
To use flexable as template engine for wsgi application, you can use
flexable.plugin:FlexablePlugin.
And that is python.template_engine entry point.
Example on TurboGears
controllers.py::
@expose(template="flexable:flexable_example.templates.example")
def example(self):
return dict(message="This is flexable message.",
contents=""" This is main contents from controller.
flexable is merge values to given html template with class attribute.
""")
flexable_example/templates/example.html::
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Flexable Template</h1>
<span class="message"></span>
<p class="contents"></p>
<span class="widget"/>
</body>
</html>
you get:
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Flexable Template</h1>
<span class="message">This is flexable message.</span>
<p class="contents"> This is main contents from controller.
flexable is merge values to given html template with class attribute.
</p>
</body>
</html>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
flexable-0.3dev.tar.gz
(6.2 kB
view hashes)
Built Distribution
flexable-0.3dev-py2.5.egg
(12.9 kB
view hashes)