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 details)
Built Distribution
flexable-0.3dev-py2.5.egg
(12.9 kB
view details)
File details
Details for the file flexable-0.3dev.tar.gz
.
File metadata
- Download URL: flexable-0.3dev.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f203fc8ab86c8568bf417c6e87f38e350c435365a595f377a46f2629b67c5c1c |
|
MD5 | 96dbe22524fe9bda2fd84ccfbc0ab9e3 |
|
BLAKE2b-256 | a056427ee394c48cf675ba43714ce1514e1596f219fc50be9d7b4ca5d9b735a3 |
File details
Details for the file flexable-0.3dev-py2.5.egg
.
File metadata
- Download URL: flexable-0.3dev-py2.5.egg
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54d110483ef497d61e2091832f7f03986012714372da21c4102825c9c556cf60 |
|
MD5 | 1b363408fca8dc15493933a154f4c688 |
|
BLAKE2b-256 | 8fc2ee3b9e3f16e95137271be6e5f1183cb022c2014501b015ec08fbded3a526 |