genshi.template.directives.StripDirective

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)