Edgewall Software

source: tags/0.4.0/ChangeLog

Last change on this file was 546, checked in by cmlenz, 16 years ago

Add filters package in setup.py.

  • Property svn:eol-style set to native
File size: 11.1 KB
Line 
1Version 0.4
2http://svn.edgewall.org/repos/genshi/tags/0.4.0/
3(Apr 16 2007, from branches/stable/0.4.x)
4
5 * New example applications for CherryPy and web.py.
6 * The template loader now uses a LRU cache to limit the number of cached
7   templates to a configurable maximum. Also, a race condition in the template
8   loader was fixed by adding locking.
9 * A new filter (genshi.filters.HTMLFormFiller) was added, which can populate
10   HTML forms based on a dictionary of values.
11 * The set of permitted tag and attribute names for the HTMLSanitizer can now
12   be configured per instance.
13 * The template engine plugin now supports a range of options for
14   configuration, for example to set the default serialization method, the
15   default output encoding, or the default DOCTYPE.
16 * The ElementTree adaptation function `ET()` has moved into the `genshi.input`
17   module.
18 * Allow `when` directives to omit the test expression as long as the
19   associated choose directive does have one. In that case, the when branch is
20   followed if the expression of the choose directive evaluates to a truth
21   value.
22 * Unsuccessful attribute or item lookups now return `Undefined` objects for
23   nicer error messages.
24 * Split up the `genshi.template` module into multiple modules inside the new
25   `genshi.template` package.
26 * Results of expression evaluation are no longer implicitly called if they
27   are callable.
28 * Instances of the `genshi.core.Attrs` class are now immutable (they are
29   subclasses of `tuple` instead of `list`).
30 * `MarkupTemplate`s can now be instantiated from markup streams, in addition
31   to strings and file-like objects (ticket #69).
32 * Improve handling of incorrectly nested tags in the HTML parser.
33 * Template includes can now be nested inside fallback content.
34 * Expressions can now contain dict literals (ticket #37).
35 * It is now possible to have one or more escaped dollar signs in front of a
36   full expression (ticket #92).
37 * The `Markup` class is now available by default in template expressions
38   (ticket #67).
39 * The handling of namespace declarations in XML/XHTML output has been improved.
40 * The `Attrs` class no longer automatically wraps all attribute names in
41   `QName` objects. This is now the responsibility of whoever is instantiating
42   `Attrs` objects (for example, stream filters and generators).
43 * Python code blocks are now supported using the `<?python ?>` processing
44   instruction (ticket #84).
45 * The way errors in template expressions are handled can now be configured. The
46   option `LenientLookup` provides the same forgiving mode used in previous
47   Genshi versions, while `StrictLookup` raises exceptions when undefined
48   variables or members are accessed. The lenient mode is still the default in
49   this version, but that may change in the future. (ticket #88)
50 * If a variable is not necessarily defined at the top level of the template
51   data, the new built-in functions `defined(key)` and `value_of(key, default)`
52   can be used so that the template also works in strict lookup mode. These
53   functions were previously only available when using Genshi via the template
54   engine plugin (for compatibility with Kid).
55 * `style` attributes are no longer allowed by the `HTMLSanitizer` by default.
56   If they are explicitly added to the set of safe attributes, any unicode
57   escapes in the attribute value are now handled properly.
58 * Namespace declarations on conditional elements (for example using a `py:if`
59   directive`) are no longer moved to the following element when the element
60   originally carrying the declaration is removed from the stream (ticket #107).
61 * Added basic built-in support for internationalizing templates by providing
62   a new `Translator` class that can both extract localizable strings from a
63   stream, and replace those strings with their localizations at render time.
64   The code for this was largely taken from previous work done by Matt Good
65   and David Fraser.
66
67
68Version 0.3.6
69http://svn.edgewall.org/repos/genshi/tags/0.3.6/
70(Dec 11 2006, from branches/stable/0.3.x)
71
72 * The builder API now accepts streams as children of elements and fragments.
73
74
75Version 0.3.5
76http://svn.edgewall.org/repos/genshi/tags/0.3.5/
77(Nov 22 2006, from branches/stable/0.3.x)
78
79 * Fix XPath traversal in match templates. Previously, `div/p` would be treated
80   the same as `div//p`, i.e. it would match all descendants and not just the
81   immediate children.
82 * Preserve whitespace in HTML `<pre>` elements also when they contain child
83   elements.
84 * Match templates no longer match their own output (ticket #77).
85 * Blank lines before directives in text templates are now preserved as
86   expected (ticket #62).
87
88
89Version 0.3.4
90http://svn.edgewall.org/repos/genshi/tags/0.3.4/
91(Nov 2 2006, from branches/stable/0.3.x)
92
93 * The encoding of HTML and XML files, as well as markup and text templates,
94   can now be specified. Also, the encoding specified in XML declarations is
95   now respected unless an expiclit encoding is requested.
96 * Expressions used as arguments for `py:with`, `py:def`, and `py:for`
97   directives can now contain non-ASCII strings.
98
99
100Version 0.3.3
101http://svn.edgewall.org/repos/genshi/tags/0.3.3/
102(Oct 16 2006, from branches/stable/0.3.x)
103
104 * Fixed bug introduced in 0.3.2 that broke the parsing of templates which
105   declare the same namespace more than once in a nested fashion.
106 * Fixed the parsing of HTML entity references inside attribute values, both
107   in the `XMLParser` and the `HTMLParser` classes.
108 * Some changes to usage of absolute vs. relative template paths to ensure that
109   the filenamed-keyed cache employed by the TemplateLoader doesn't mix up
110   templates with the same name, but from different subdirectories.
111
112
113Version 0.3.2
114http://svn.edgewall.org/repos/genshi/tags/0.3.2/
115(Oct 12 2006, from branches/stable/0.3.x)
116
117 * Exceptions from templates now contain the absolute path to the template file
118   when a search path is used. This enables tracebacks to display the line in
119   question.
120 * The template engine plugin now provides three different types: "genshi" and
121   "genshi-markup" map to markup templates, while "genshi-text" maps to text
122   templates.
123 * Fixed the namespace context used by XPath patterns in py:match templates.
124   The were erroneously using the namespace context of the elements being
125   matched, where they should rather use the context in which they were
126   defined.
127 * The contents of `<script>` and `<style>` elements are no longer escaped when
128   serializing to HTML but declaring the XHTML namespace in the template.
129 * Improved error message raised when using the `py:for` directive on an object
130   that is not iterable (ticket #60).
131 * Fixed the XPath function `starts-with()` which was always returning true
132   (ticket #61).
133
134
135Version 0.3.1
136http://svn.edgewall.org/repos/genshi/tags/0.3.1/
137(Sep 22 2006, from branches/stable/0.3.x)
138
139 * Includes and user-defined filters were not getting the correct context data
140   when used inside a match template (ticket #56).
141 * XPath patterns using the union operator (`|`) were returning only partial
142   results in some cases.
143
144
145Version 0.3
146http://svn.edgewall.org/repos/genshi/tags/0.3.0/
147(Sep 17 2006, from branches/stable/0.3.x)
148
149 * The project name was changed from "Markup" to "Genshi". See UPGRADE.txt
150   for upgrade instructions.
151 * Expression evaluation now differentiates between undefined variables and
152   variables that are defined but set to `None`. This also means that local
153   variables can override built-ins even if the local variable are set to
154   `None` (ticket #36).
155 * The plugin implementation now makes more functions available for use inside
156   templates: XML(), HTML(), defined(), and value-of(). These are mostly for
157   migration from Kid.
158 * The parsing of `py:with` directives has been improved: you can now assign
159   to multiple names, and semicolons inside string literals are treated as
160   expected.
161 * Generator expressions can now be used in template expressions (ticket #16).
162 * Added serialization to plain text (ticket #41).
163 * Calling functions from template expressions with *args and/or **kwargs
164   now works correctly (ticket #42).
165 * The `TemplateLoader` class and the `Template` instances that it manages are
166   now thread-safe, as they no longer keep any state related to the current
167   processing context.
168 * Stream filters and serializers can now be applied using the "pipe" (bitwise
169   or) operator "|".
170 * The execution of named template functions (`py:def`) no longer silently
171   swallows TypeError exceptions (ticket #44).
172 * The XML Parser now correctly handles unicode input (ticket #43).
173 * HTML entities can now be used in templates without having to declare an HTML
174   document type.
175 * Error reporting on undefined entities has been fixed.
176 * Fix traversal of substreams by XPath expressions. For example, the path
177   '*/*' no longer matches non-immediate child elements, and '@*' no longer
178   matches the attributes of descendants.
179 * Fixes for `py:match` which would get confused when it should be applied
180   to multiple elements (ticket #49).
181 * Using namespace prefixes in XPath expressions is now supported.
182 * Expressions now correctly handle slices (ticket #51).
183 * A simple text-based template language is now included for generating
184   plain text output (ticket #47).
185
186
187Version 0.2
188http://svn.edgewall.org/repos/genshi/tags/0.2.0/
189(Aug 22 2006, from branches/stable/0.2.x)
190
191 * XPath syntax errors now contain position info (ticket #20).
192 * Errors in expression evaluation now contain the correct line number in the
193   template (ticket #22).
194 * <script> and <style> element contents are no longer escaped when using HTML
195   serialization (ticket #24).
196 * In some cases expressions in templates did not get interpolated (ticket
197   #26).
198 * CDATA sections are now passed through the pipeline and serialized correctly.
199   That allows using <script> or <style> elements in XHTML output that is still
200   compatible with HTML user agents.
201 * The XHTML serializer now correctly handles elements in foreign namespaces
202   (such as SVG or MathML).
203 * Fixed relative includes in templates on Windows (ticket #27).
204 * Output can be encoded using legacy codecs such as ISO-8859-1. Any character
205   not representable in the chosen encoding gets replaced by the corresponding
206   XML character reference.
207 * String literals in XPath expressions that contain spaces are now parsed
208   as expected.
209 * Added support for the XPath functions boolean(), ceiling(), concat(),
210   contains(), false(), floor(), normalize-space(), number(), round(),
211   starts-with(), string-length(), substring(), substring-after(),
212   substring-before(), translate(), and true().
213 * Non-ASCII characters in expressions should now be handled correctly (ticket
214   #29).
215 * Default values for arguments of template functions now also work with
216   constants and complex expressions (they only worked for string or number
217   literals before).
218 * XPath expressions in now support XPath variables ($var) in predicates
219   (ticket #31).
220 * Expressions in templates can now span multiple lines if they are enclosed
221   in curly braces.
222 * py:def macros can now be invoked from within expressions inside attribute
223   values (ticket #34).
224
225
226Version 0.1
227http://svn.edgewall.org/repos/genshi/tags/0.1.0/
228(Aug 3 2006, from branches/stable/0.1.x)
229
230 * First public release
Note: See TracBrowser for help on using the repository browser.