A fast indentation-preserving template engine.
Project description
Overview
Example
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> }} |
|
{{ `foo` <expression> }} |
|
{{ format <name> }} |
|
{{ if <expression> }} |
|
{{ for <name> in <expression> }} |
|
{{ else }} |
|
{{ end }} |
Block termination |
{{ # <comment> }} |
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file fett-0.3.2.tar.gz
.
File metadata
- Download URL: fett-0.3.2.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f06a819ac7caba01f1c84c4b8132671d1d289d17becea7747448e271b05be0a1 |
|
MD5 | 811cad5ca9fbff4d1c9229eae3138606 |
|
BLAKE2b-256 | a6fbd4f8e22ea58cfb4a86f617982f037d3fd057491b50d8f0fe81495c2f6f64 |
Comments