Metadata-Version: 1.1
Name: fett
Version: 0.3.1
Summary: A fast indentation-preserving template engine.
Home-page: https://github.com/i80and/fett
Author: Andrew Aldridge
Author-email: i80and@foxquill.com
License: MIT
Description: .. |travis| image:: https://travis-ci.org/i80and/fett.svg?branch=master
                    :target: https://travis-ci.org/i80and/fett
        
        =============
        Fett |travis|
        =============
        
        Overview
        --------
        
        Example
        -------
        
        .. code-block:: python
        
           import fett
        
           fett.Template('''{{ for customer in customers }}
           {{ if i even }}
           Even: {{ customer.name }}
           {{ else }}
           Odd: {{ customer.name }}
           {{ end }}
           {{ else }}
           No customers :(
           {{ end }}''').render({'customers': [
               {'name': 'Bob'},
               {'name': 'Elvis'},
               {'name': 'Judy'}
           ]})
        
        Syntax
        ------
        
        ==========================================   ===========
        Tag Format                                   Description
        ==========================================   ===========
        ``{{ <expression> }}``                       Substitutions_
        ``{{ `foo` <expression> }}``                 Substitutions_
        ``{{ format <name> }}``                      Metaformatting_
        ``{{ if <expression> }}``                    Conditionals_
        ``{{ for <name> in <expression> }}``         Loops_
        ``{{ else }}``
        ``{{ end }}``                                Block termination
        ``{{ # <comment> }}``                        Comments_
        ==========================================   ===========
        
        Spaces between tag opening/closing delimiters are optional.
        
        Expressions
        ~~~~~~~~~~~
        
        An **expression** is given for Substitutions_, Conditionals_, and Loops_.
        
        Expressions take the following form:
        
            <name>[.<subfield>...] [<filter> [<filter2>...]]
        
        Instead of specifying a field path, you can start an expression using
        a string literal:
        
            `<literal>` [<filter> [<filter2>...]]
        
        You can use **filters** to modify a single value in simple ways. For example,
        the loop iteration counter ``i`` counts from ``0``, but users often wish to
        count from ``1``. You can obtain a count-from-1 value with the expression
        ``i inc``.
        
        The full list of filters:
        
        ===========  ======
        Filter Name  Effect
        ===========  ======
        car          Returns the first element of a list.
        cdr          Returns all but the first element of a list.
        dec          Decrements a value representable as an integer by one.
        even         Returns true iff its input is representable as an even integer.
        escape       Encodes `&`, `<`, `>`, `"`, and `'` characters with HTML entities.
        inc          Increments a value representable as an integer by one.
        len          Returns the length of a list.
        not          Returns the inverse of a boolean.
        odd          Returns true iff its input is representable as an odd integer.
        negative     Returns true iff its input is representable as an integer < 0.
        positive     Returns true iff its input is representable as an integer > 0.
        split        Splits a value into a list by whitespace.
        strip        Returns the input string with surrounding whitespace removed.
        striptags    Remove HTML tags from a value.
        timesNegOne  Returns int(input) * -1
        zero         Returns true iff the input is zero
        ===========  ======
        
        ===========  ======
        Filter Name  Effect
        ===========  ======
        upperCase    Returns a Unicode-aware uppercase version of the input.
        lowerCase    Returns a Unicode-aware lowercase version of the input.
        ===========  ======
        
        =====================  ======
        Filter Name            Effect
        =====================  ======
        add(n)                 Increments a value representable as an integer by `n`.
        minus(n)               Decrements a value representable as an integer by `n`.
        equal(value)           Returns true iff a value equals the given value.
        lessThan(n)            Returns true iff n < the given value.
        lessThanOrEqual(n)     Returns true iff n <= the given value.
        greaterThan(n)         Returns true iff n > the given value.
        greaterThanOrEqual(n)  Returns true iff n >= the given value.
        =====================  ======
        
        Substitutions
        ~~~~~~~~~~~~~
        
        Metaformatting
        ~~~~~~~~~~~~~~
        
        Conditionals
        ~~~~~~~~~~~~
        
        Loops
        ~~~~~
        
        Comments
        ~~~~~~~~
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python
Classifier: Topic :: Text Processing :: Markup
