Skip to main content

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> }}

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

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

fett-0.3.1.tar.gz (7.1 kB view details)

Uploaded Source

File details

Details for the file fett-0.3.1.tar.gz.

File metadata

  • Download URL: fett-0.3.1.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for fett-0.3.1.tar.gz
Algorithm Hash digest
SHA256 551e5d7d3fd5a4e1c6b1e6fb46efc81ba5128b3a788b2c2838240f8c162f7c81
MD5 27aae6140c33e3a9657d610413b4615b
BLAKE2b-256 de017d7e4a08627cf5dcddfa8b2651110db7e6e7892a8a4271383c45eebc33b7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page