zoom.fill module

fills templates

zoom.fill.dzfill(text, callback)

fill a tag in the <dz: style

zoom.fill.fill(text, callback)

fill a tag in the double handlebars style

>>> def filler(name, *args, **kwargs):
...     if name == 'name':
...         name = kwargs.get('language')=='french' and 'Jacques' or 'James'
...         if 'upper' in args:
...             return name.upper()
...         elif 'lower' in args:
...             return name.lower()
...         else:
...             return name
>>> fill('Hello {{name}}!', filler)
'Hello James!'
>>> fill('Hello {{name language="french"}}!', filler)
'Hello Jacques!'
>>> fill('Hello {{name upper}}!', filler)
'Hello JAMES!'
>>> fill('Hello {{name lower language="french"}}!', filler)
'Hello jacques!'
>>> fill('Hello {{name lower language=french}}!', filler)
'Hello jacques!'
>>> fill('Hello {{name}}!', lambda a: None )
'Hello {{name}}!'
>>> values = {}
>>> fill('Hello {{name}}!', values.get )
'Hello {{name}}!'
>>> fill('Hello {{name "World"}}!', values.get )
'Hello World!'
>>> values['name'] = 'Pat'
>>> fill('Hello {{name "World"}}!', values.get )
'Hello Pat!'
>>> del values['name']
>>> fill('Hello{{name ""}}!', values.get )
'Hello!'