Skip to main content

XML-based template compiler.

Project description

Overview

Chameleon compiles templates to Python byte-code. It includes a complete implementation of the Zope Page Templates (ZPT) language.

The engine itself performs 10-15 times better than the reference implementation and real-world benchmarks show an overall performance improvement in complex applications of 30-50%.

License

This software is made available under the BSD license.

Development

The code is maintained in a subversion repository:

svn://svn.repoze.org/svn/chameleon/trunk

If you want to contribute or need support, join #repoze on freenode irc or write the mailinglist.

Languages

An implementation of the Zope Page Templates language is included. The Genshi language has been implemented and is currently maintained in a separate package.

Zope Page Templates

The ZPT implementation is largely compatible with the reference implementation. Below is an overview of notable differences:

Default expression

The default expression is python:. Path expressions are not supported in the base package. The package introduces the import: expression which imports global names.

Tuple unpacking

The tal:define and tal:repeat clauses supports tuple unpacking:

tal:define="(a, b, c) [1, 2, 3]"

The star character is not supported.

Dot-notation for dictionary lookups

If attribute lookup fails (i.e. the dot operator), dictionary lookup is tried. The engine replaces attribute lookups with a call to a function that has the following body:

try:
    return context.key
except AttributeError:
    try:
        return context[key]
    except KeyError:
        raise AttributeError(key)

Interpolation is supported

The Genshi expression interpolation syntax is supported outside tags and inside static attributes:

<span class="hello-${'world'}">
   Hello, ${'world'}!
</span>

Literal insertion

If objects for insertion provide an __html__ method, it will be called and the result inserted literally, without escaping.

Changes

1.0 (released 2009-11-01)

Features:

  • HTML5 doctype is now supported.

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Chameleon-1.0.tar.gz (63.8 kB view hashes)

Uploaded Source

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