Edgewall Software

source: tags/0.4.1/ChangeLog

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

Ported [589] to 0.4.x.

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