cmlenz@475: Version 0.5 cmlenz@475: http://svn.edgewall.org/repos/genshi/tags/0.5.0/ cmlenz@475: (?, from branches/stable/0.5.x) cmlenz@475: cmlenz@475: * Added #include directive for text templates (ticket #115). cmlenz@475: cmlenz@475: cmlenz@456: Version 0.4.1 cmlenz@456: http://svn.edgewall.org/repos/genshi/tags/0.4.1/ cmlenz@489: (May 21 2007, from branches/stable/0.4.x) cmlenz@456: cmlenz@456: * Fix incorrect reference to translation function in the I18N filter. cmlenz@458: * The `ET()` function now correctly handles attributes with a namespace. cmlenz@460: * XML declarations are now processed internally, as well as written to the cmlenz@460: output when XML serialization is used (ticket #111). cmlenz@462: * Added the functions `encode()` and `get_serializer()` to the `genshi.output` cmlenz@462: module, which provide a lower-level API to the functionality previously only cmlenz@462: available through `Stream.render()` and `Stream.serialize()`. cmlenz@464: * The `DocType` class now has a `get(name)` function that returns a `DOCTYPE` cmlenz@464: tuple for a given string. cmlenz@464: * Added frameset variants to the `DocType` constants for HTML 4.01 and XHTML cmlenz@464: 1.0. cmlenz@469: * Improved I18n extraction for pluralizable messages: for any translation cmlenz@469: function with multiple string arguments (such as ``ngettext``), a single cmlenz@469: item with a tuple of strings is yielded, instead an item for each string cmlenz@469: argument. cmlenz@471: * The `HTMLFormFiller` stream filter no longer alters form elements for which cmlenz@471: the data element contains no corresponding item. cmlenz@473: * Code in `` processing instructions no longer gets the special cmlenz@473: treatment as Python code in template expressions, i.e. item and attribute cmlenz@473: access are no longer interchangeable (which was broken in a number of ways cmlenz@473: anyway, see ticket #113). This change does not affect expressions. cmlenz@473: * Numerous fixes for the execution of Python code in `` processing cmlenz@473: instructions (tickets #113 and #114). cmlenz@479: * The `py:def` (and `#def`) directive now supports "star args" (i.e. `*args` cmlenz@479: and `**kwargs`) in the function declaration (ticket #116). cmlenz@456: cmlenz@456: cmlenz@276: Version 0.4 cmlenz@276: http://svn.edgewall.org/repos/genshi/tags/0.4.0/ cmlenz@452: (Apr 16 2007, from branches/stable/0.4.x) cmlenz@276: cmlenz@276: * New example applications for CherryPy and web.py. cmlenz@276: * The template loader now uses a LRU cache to limit the number of cached cmlenz@276: templates to a configurable maximum. Also, a race condition in the template cmlenz@276: loader was fixed by adding locking. cmlenz@276: * A new filter (genshi.filters.HTMLFormFiller) was added, which can populate cmlenz@276: HTML forms based on a dictionary of values. cmlenz@277: * The set of permitted tag and attribute names for the HTMLSanitizer can now cmlenz@277: be configured per instance. cmlenz@294: * The template engine plugin now supports a range of options for cmlenz@294: configuration, for example to set the default serialization method, the cmlenz@294: default output encoding, or the default DOCTYPE. cmlenz@302: * The ElementTree adaptation function `ET()` has moved into the `genshi.input` cmlenz@302: module. cmlenz@302: * Allow `when` directives to omit the test expression as long as the cmlenz@302: associated choose directive does have one. In that case, the when branch is cmlenz@302: followed if the expression of the choose directive evaluates to a truth cmlenz@302: value. cmlenz@317: * Unsuccessful attribute or item lookups now return `Undefined` objects for cmlenz@317: nicer error messages. cmlenz@336: * Split up the `genshi.template` module into multiple modules inside the new cmlenz@336: `genshi.template` package. cmlenz@343: * Results of expression evaluation are no longer implicitly called if they cmlenz@343: are callable. cmlenz@345: * Instances of the `genshi.core.Attrs` class are now immutable (they are cmlenz@345: subclasses of `tuple` instead of `list`). cmlenz@374: * `MarkupTemplate`s can now be instantiated from markup streams, in addition cmlenz@374: to strings and file-like objects (ticket #69). cmlenz@378: * Improve handling of incorrectly nested tags in the HTML parser. cmlenz@399: * Template includes can now be nested inside fallback content. cmlenz@399: * Expressions can now contain dict literals (ticket #37). cmlenz@399: * It is now possible to have one or more escaped dollar signs in front of a cmlenz@399: full expression (ticket #92). cmlenz@401: * The `Markup` class is now available by default in template expressions cmlenz@401: (ticket #67). cmlenz@411: * The handling of namespace declarations in XML/XHTML output has been improved. cmlenz@411: * The `Attrs` class no longer automatically wraps all attribute names in cmlenz@411: `QName` objects. This is now the responsibility of whoever is instantiating cmlenz@411: `Attrs` objects (for example, stream filters and generators). cmlenz@411: * Python code blocks are now supported using the `` processing cmlenz@411: instruction (ticket #84). cmlenz@442: * The way errors in template expressions are handled can now be configured. The cmlenz@442: option `LenientLookup` provides the same forgiving mode used in previous cmlenz@442: Genshi versions, while `StrictLookup` raises exceptions when undefined cmlenz@442: variables or members are accessed. The lenient mode is still the default in cmlenz@442: this version, but that may change in the future. (ticket #88) cmlenz@442: * If a variable is not necessarily defined at the top level of the template cmlenz@442: data, the new built-in functions `defined(key)` and `value_of(key, default)` cmlenz@442: can be used so that the template also works in strict lookup mode. These cmlenz@442: functions were previously only available when using Genshi via the template cmlenz@442: engine plugin (for compatibility with Kid). cmlenz@432: * `style` attributes are no longer allowed by the `HTMLSanitizer` by default. cmlenz@446: If they are explicitly added to the set of safe attributes, any unicode cmlenz@446: escapes in the attribute value are now handled properly. cmlenz@437: * Namespace declarations on conditional elements (for example using a `py:if` cmlenz@437: directive`) are no longer moved to the following element when the element cmlenz@437: originally carrying the declaration is removed from the stream (ticket #107). cmlenz@446: * Added basic built-in support for internationalizing templates by providing cmlenz@446: a new `Translator` class that can both extract localizable strings from a cmlenz@446: stream, and replace those strings with their localizations at render time. cmlenz@446: The code for this was largely taken from previous work done by Matt Good cmlenz@446: and David Fraser. cmlenz@365: cmlenz@365: cmlenz@387: Version 0.3.6 cmlenz@387: http://svn.edgewall.org/repos/genshi/tags/0.3.6/ cmlenz@387: (Dec 11 2006, from branches/stable/0.3.x) cmlenz@387: cmlenz@387: * The builder API now accepts streams as children of elements and fragments. cmlenz@387: cmlenz@387: cmlenz@365: Version 0.3.5 cmlenz@387: http://svn.edgewall.org/repos/genshi/tags/0.3.5/ cmlenz@365: (Nov 22 2006, from branches/stable/0.3.x) cmlenz@365: cmlenz@371: * Fix XPath traversal in match templates. Previously, `div/p` would be treated cmlenz@371: the same as `div//p`, i.e. it would match all descendants and not just the cmlenz@371: immediate children. cmlenz@365: * Preserve whitespace in HTML `
` elements also when they contain child
cmlenz@365:    elements.
cmlenz@365:  * Match templates no longer match their own output (ticket #77).
cmlenz@365:  * Blank lines before directives in text templates are now preserved as
cmlenz@365:    expected (ticket #62).
cmlenz@346: 
cmlenz@317: 
cmlenz@317: Version 0.3.4
cmlenz@317: http://svn.edgewall.org/repos/genshi/tags/0.3.4/
cmlenz@323: (Nov 2 2006, from branches/stable/0.3.x)
cmlenz@317: 
cmlenz@317:  * The encoding of HTML and XML files, as well as markup and text templates,
cmlenz@317:    can now be specified. Also, the encoding specified in XML declarations is
cmlenz@317:    now respected unless an expiclit encoding is requested.
cmlenz@317:  * Expressions used as arguments for `py:with`, `py:def`, and `py:for`
cmlenz@317:    directives can now contain non-ASCII strings.
cmlenz@285: 
cmlenz@285: 
cmlenz@288: Version 0.3.3
cmlenz@288: http://svn.edgewall.org/repos/genshi/tags/0.3.3/
cmlenz@302: (Oct 16 2006, from branches/stable/0.3.x)
cmlenz@288: 
cmlenz@288:  * Fixed bug introduced in 0.3.2 that broke the parsing of templates which
cmlenz@288:    declare the same namespace more than once in a nested fashion.
cmlenz@294:  * Fixed the parsing of HTML entity references inside attribute values, both
cmlenz@294:    in the `XMLParser` and the `HTMLParser` classes.
cmlenz@302:  * Some changes to usage of absolute vs. relative template paths to ensure that
cmlenz@302:    the filenamed-keyed cache employed by the TemplateLoader doesn't mix up
cmlenz@302:    templates with the same name, but from different subdirectories.
cmlenz@288: 
cmlenz@288: 
cmlenz@285: Version 0.3.2
cmlenz@285: http://svn.edgewall.org/repos/genshi/tags/0.3.2/
cmlenz@285: (Oct 12 2006, from branches/stable/0.3.x)
cmlenz@285: 
cmlenz@285:  * Exceptions from templates now contain the absolute path to the template file
cmlenz@285:    when a search path is used. This enables tracebacks to display the line in
cmlenz@285:    question.
cmlenz@285:  * The template engine plugin now provides three different types: "genshi" and
cmlenz@285:    "genshi-markup" map to markup templates, while "genshi-text" maps to text
cmlenz@285:    templates.
cmlenz@278:  * Fixed the namespace context used by XPath patterns in py:match templates.
cmlenz@278:    The were erroneously using the namespace context of the elements being
cmlenz@278:    matched, where they should rather use the context in which they were
cmlenz@278:    defined.
cmlenz@285:  * The contents of `