- SVN:
- decorator to help with integration into unsupported frameworks
- fixes to html2breve (thanks to Olivier Verdier)
- django adapter can now use breve_opts (thanks to Olivier Verdier)
- ability to turn on AutoTags as a Template attribute
- test for AutoTag class
- default flattener for callables
- changed flatten_tag to be a generator in preparation for async support
- added tests for more macros
- 1.2.6:
- fix for test suite so it can be run as either python setup.py test or standalone from the source tree.
- test for macros in inherits directive
- 1.2.5:
- test for UTF8 string coercion in attributes
- fix UTF8 string coercion in attributes
- test for custom renderer returning non-Tag object
- 1.2.4:
- inherits directive can now have other things besides override directives, although they won't show up in final output. mostly to eliminate a class of hard to understand errors and to allow macros to be put there.
- removed debug statements from Namespace class
- tag attributes are now UTF-8 by default
- custom renderer can now return any type that can be flattened, not just Tags
- stacks: push/pop with tests
- tests for Template instantiation and render-time args
- 1.2.3:
- let() directive
- enhancements to breve_server
- fixes for how options are handled by Template
- 1.2.2:
- fixed bug in Template - filename no longer declared in debug section
- removed Python 2.5-ism from tests (ternary if expression)
- more tests: nested macros
- 1.2.1:
- Tag.walk() checks for short-circuit when traversing children
- Tag.walk() now returns self rather than None
- more tests!
- removed print statement from debug section of Template
- simple Brevé WSGI server
- 1.2:
- soup2breve refactored into library and tool
- setup.py now properly installs tools
- Unit tests for API
- Tag.walk
- assign ( var, value )
- macro ( name, lambda )
- Tag multiplication final.
- Rewritten include directive. Works better =)
- Changed str flattener to coerce all plain strings to utf-8. This behaviour can be overridden by registering a new flattener for string types.
- 1.1.7:
- Integrated Robert Leftwich's patches to properly separate xhtml/html4.
- Added Robert Leftwich's soup2breve utility, a much improved version of html2breve.
- Attributes set to None will no longer appear in final output.
- All templates are now forced to tuples to allow for more than a single outer container in a file.
- 1.1.6:
- Patch to make Django adapter aware of output encoding (thanks to Yury Yurevich).
- Added preamble directive for setting certain template features from within template (e.g. doctype). This feature is a workaround and will probably become obsolete before it's released.
- Added register_global family of functions for persisting functions and data across instances.
- Added canvas to html.tags.
- Breaking change: tags with custom renderers can no longer expect children to be automatically cleared before being called. Use tag.clear ( ) if you want to discard existing children.
- Added __templates__ variable for access to the current rendering state from within templates.
- Fixes for variable scoping.
- Slots are now full Tags and can have children (which are only rendered if the slot isn't filled).
- Added custom tag for HTML option to support passing boolean "selected" argument.
1.1.5: Added loader argument to include directive. Turned single template loader into stack to support this (and to allow loaders to be mixed within templates).
1.1.4: Added support for custom loaders.
1.1.3: Created new container class for entities to avoid clashes with dict()'s methods (notably copy). Some performance enhancements.
1.1.2: Fixed problem with tidy filter failing to understand Unicode objects - temporary fix convert to utf-8 prior to calling tidylib.
1.1.1: Fixed error in tidy filter that caused examples to fail.
1.1: Breaking changes: entities must now be referenced in the E namespace, e.g. E.nbsp, E.copy, etc. The older method can be forced by setting Template.mashup_entities = True, but this is not recommended due to name clashes with HTML tags and Python builtins. Also, the dot notation for referencing templates has been removed from the Buffet adapter as it made little sense and caused issues if the path itself contained a dot. Instead, use slashes as is normal for paths.
- 1.0.35: Changed to use unicode rather than str internally. Made XML entities available in E namespace to help avoid name clashes with tags (thanks to Sridhar Ratna for pointing this out).
- 1.0.34: Fixed issue in Buffet adapter that caused arguments passed as URI-style parameters to hang around for subsequent calls.
- 1.0.33: Added caching to xinclude directive. Changed Tag to use register_flattener rather than simply have a __str__ method.
- 1.0.32: Fixed potential memory leak (__slot flatteners were never unregistered - changed from register_flattener to using __str__ method to avoid registry altogether).
- 1.0.31: Fixed bug with Template.__slot being overwritten in flatten.__registry when called multiple times from different instances. This is a major bug and an update is highly recommended for all users. Added xinclude directive. This directive is alpha (works but might change soon - don't use it unless you're willing to tolerate this).
- 1.0.30: Now that the bugs in the debugging code are fixed, actually have it return its value so it's actually useful
- 1.0.29: More fixes to debugging code in Template class (thanks again to Sridhar Ratna for providing a patch).
- 1.0.28: Fixed reference to "self" in Template class (thanks to Sridhar Ratna). Added default flattener for tuples.
- 1.0.27: Fixed issue with nested inheritance causing escaping issues (thanks to Paul J. Stevens for pointing this out). Added URL-style template arguments. Added Tidy post-processing.
- 1.0.26: Defined API for custom tag modules. Various fixes.
- 1.0.25: Previous escaping fix broke include directive, now fixed. Internal reorganization of generic tags (cdata, xml, invisible) out of html module and directly into tags module since they are broader in scope than just HTML.
- 1.0.24: Properly escapes XML attributes and plain strings in template (thanks to Neil Blakey-Milner). Added xml tag for bypassing this.
- 1.0.23: Added when(bool) conditional tag (simple if expression), fixed broken script tag.
- 1.0.22: Added invisible tag, internal changes to Proto class
- 1.0.21: Django API support
- 1.0.20: Fixed an important rendering issue for Content-type: text/html rather than text/xml.