Package genshi :: Package template :: Module directives :: Class StripDirective

Class StripDirective

object --+    
         |    
 Directive --+
             |
            StripDirective

Implementation of the py:strip template directive.

When the value of the py:strip attribute evaluates to True, the element is stripped from the output

>>> from genshi.template import MarkupTemplate
>>> tmpl = MarkupTemplate('''<div xmlns:py="http://genshi.edgewall.org/">
...   <div py:strip="True"><b>foo</b></div>
... </div>''')
>>> print(tmpl.generate())
<div>
  <b>foo</b>
</div>

Leaving the attribute value empty is equivalent to a truth value.

This directive is particulary interesting for named template functions or match templates that do not generate a top-level element:

>>> tmpl = MarkupTemplate('''<div xmlns:py="http://genshi.edgewall.org/">
...   <div py:def="echo(what)" py:strip="">
...     <b>${what}</b>
...   </div>
...   ${echo('foo')}
... </div>''')
>>> print(tmpl.generate())
<div>
    <b>foo</b>
</div>
Nested Classes

Inherited from Directive: __metaclass__

Instance Methods
 
__call__(self, stream, directives, ctxt, **vars)
Apply the directive to the given stream.

Inherited from Directive: __init__, __repr__

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Methods

Inherited from Directive: attach

Class Variables
  tagname = 'strip'
Properties

Inherited from Directive: expr

Inherited from object: __class__

Method Details

__call__(self, stream, directives, ctxt, **vars)
(Call operator)

 
Apply the directive to the given stream.
Parameters:
  • stream - the event stream
  • directives - a list of the remaining directives that should process the stream
  • ctxt - the context data
  • vars - additional variables that should be made available when Python code is executed
Overrides: Directive.__call__
(inherited documentation)