Edgewall Software

source: tags/0.4.2/ChangeLog

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

Ported [634:637] to 0.4.x branch.

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