Attribute language template compiler
Project description
Overview
Chameleon is a generic byte-code compiler for attribute template languages; it supports macros, includes, interpolation and internationalization.
The chameleon.core package implements a language parser API, the byte-code compiler itself and abstract template classes. It should only be used directly when implementing a language dialect.
Development
If you want to use the code directly from trunk (recommended only for development and testing usage), provide chameleon.core==dev as your dependency.
svn://svn.zope.org/repos/main/Sandbox/malthe/chameleon.core#egg=chameleon.core-dev
Want to contribute? Join #repoze on Freenode IRC.
Changelog
HEAD
1.0b8 (released 16/11/2008)
Only pretend to delete variables; this improves performance and guarantees that we don’t attempt to delete a variables which is used in a nested scope (closure). It works, because the code generation transform silently drops the delete-statements, but removes them from its internal scope dictionary. [malthe]
Remove variables from scope dictionary upon block exit. [malthe]
Split out compile-function such that we can always write the source code to disk in debug-mode. [malthe]
Correctly transfer scope to callback-function that will fill macro slot contents. Previously, we would precompute fill-slots, but this was wrong since it’s expected to inherit the scope of the macro currently in use. [malthe]
Made error handler compatible with Python 2.4 [malthe]
Maintain symbol mappings for joined expressions. [malthe]
1.0b7 (released 15/11/2008)
Fixed interpolation edge where a right curly brace not part of an interpolation expression would cancel a succeeding interpolation. [malthe]
Pass target_language when using macros. [malthe]
1.0b6 (released 13/11/2008)
When validating inserted content (in debug-mode), make sure we wrap content as a proper HTML document, including HTML entity definitions. [malthe]
If an element does not belong to a known namespace, assume it’s the default namespace. This change is relevant after the introduction of fallback elements. [malthe]
XML declarations should be printed with or without a doctype element, and only if the template includes it. [malthe]
1.0b5 (released 12/11/2008)
Encode code annotations if encoding is required. [malthe]
Added filename to XML syntax error exception message. [malthe]
Fixed bug where a template would be wrapped with namespace definitions even if an XML header is present. [malthe]
Added support for fallback element. [malthe]
Enabled error handler for macro renderer. [malthe]
Added error handler which adds debugging information to the exception object’s string output (in debug-mode only). [malthe]
1.0b4 (released 28/10/2008)
Fixed translation issues (see recently added tests). [malthe]
Refactored string coercion. [malthe]
1.0b3 (released 13/10/2008)
Fixed issue with parsing expression containing curly braces. [malthe]
Added support for unscoped variable assignment. [malthe]
1.0b2 (released 11/10/2008)
Added support for translating dynamic body text (used in interpolation expressions). [malthe]
Added support for macros prebound to keyword arguments. [malthe]
1.0b1 (released 2/10/2008)
Fixed bugs related to temporary variables with loops and conditions. [malthe]
Set default value for auto-reload based on the CHAMELEON_DEBUG environment variable check. [malthe]
1.0a4 (released 9/29/2008)
Added method to generate unscoped temporary variables. [malthe]
Make lxml a hard dependency for now until the lxml-less logic is stable. [wichert]
1.0a3 (released 9/26/2008)
TemplateLoader now checks a default_parser class attribute if no parser is specified. [wichert]
1.0a2 (released 9/26/2008)
Added support for dynamic skip condition. [malthe]
Fixed bug where an AttributeError would be raised when using the file cache. [malthe]
1.0a1 (released 9/24/2008)
First release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.