Evoque - managed eval-based freeform templating Copyright (C) 2007 Mario Ruggier Licensed under the Academic Free License version 3.0 URL: http://evoque.gizmojo.org/ ------------------------------------------------------------------------------ $URL: svn://gizmojo.org/pub/evoque/trunk/CHANGES.txt $ $Id: CHANGES.txt 1093 2008-09-06 14:49:19Z mario $ ------------------------------------------------------------------------------ 0.3 (2009-09-06): - All overlay keyword parameters may now be evaluated at runtime (in the same way as for the evoque directive); in addition to the first "name" parameter, the other parameters of the overlay directive [src, collection, space] may now also be set to a variable for evaluation at runtime. - Runtime evaluation of the overlay directive now explicitly raises a SyntaxError if a keyword parameter other than [name, src, collection, space] is specified. - Added labels, eval_overlay attributes to Template; removed overlay dict as attribute, replaced with template.get_space_overlay() that dynamically returns a (space:bool, overlay:dict) tuple on each call, where the returned overlay dict contains only parameters needed for calling get_template(). - Renamed Template methods reload() and reload_from_string() to decode() and decode_from_string(). - Added possibility to specify a "local" src to $evoque{} when addressing a template that is (a) named (b) file-based (c) nested and (d) within the same collection; such src values must start with "#" and the calling template's file is used to normalize the src (see Evaluator.evoque()) - Refined the check to determine whether a KeyError during evaluation is really coming from the evaluator's lookup or from further down. - Changed Template.test() method to be a generator of template evaluations, thus resulting in that any successful evaluations prior to a first failure are returned. 0.2 (2008-08-04): - The name first parameter of the evoque and overlay directives i.e. $evoque{} and $overlay{} may now be specified in one of the following ways: - as : interpreted literally - as : interpreted literally - as name= : str is interpreted as variable name, and evaluated at runtime within the template's context - as name= : interpreted literally - Template.unload() now recurses and unloads also any local sub-templates. - Adopted default logging to be standard python logger for "evoque". - Changed to True as default value of the "output" parameter of the builtin callable ${inspect(output=True)}. - Rendering of templates with raw=True now correctly processes any specified post-evaluation filters. 0.1.2 (2008-07-27): - Added ext/pylons for integrating Evoque with Pylons, both as documentation (on web site) and as sample code (in distribution). - Corrected problem with auto-refreshing of a template with a modified value for "data" in an embedded $prefer{data=dict()} directive. - Removed unused methods on Template: set_locals(), set_on_locals(), set_namespace_on_locals() - Improved benchmark suite, in particular added benchmarks for mako in automatic quoting mode. - decodeh.py: added catch of ValueError from locale.getdefaultlocale(), to be able to ignore exceptions of the form "ValueError: unknown locale: XXX" when the LANG or any LC_* env variables are set to an unknown locale. - decodeh.py: added global IGNORE_ENCS list, and added the non-existent "cp0" encoding that is sometimes returned by Windows, thus avoiding a "LookupError: unknown encoding: cp0" further downstream. 0.1.1 (2008-03-23): - Fixed bug with top-level middle text (in between directive blocks) not being parsed, see: test_mid_text(). - Some minor changes to parsing code, for better robustness and clarity. - Added ext/django recipe, for using evoque with django. - Added ext/qp/echo sample qp application. - Added ext/werkzeug sample WSGI application. 0.1 (2008-03-07): - First public release.