Mercurial > genshi > genshi-test
annotate ChangeLog @ 820:1837f39efd6f experimental-inline
Sync (old) experimental inline branch with trunk@1027.
author | cmlenz |
---|---|
date | Wed, 11 Mar 2009 17:51:06 +0000 |
parents | 0742f421caba |
children | de82830f8816 |
rev | line source |
---|---|
820
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
1 Version 0.6 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
2 http://svn.edgewall.org/repos/genshi/tags/0.6.0/ |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
3 (???, from branches/stable/0.6.x) |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
4 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
5 * Support for Python 2.3 has been dropped. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
6 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
7 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
8 Version 0.5.2 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
9 http://svn.edgewall.org/repos/genshi/tags/0.5.2/ |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
10 (???, from branches/stable/0.5.x) |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
11 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
12 * Fix problem with I18n filter that would get confused by expressions in |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
13 attribute values when inside an `i18n:msg` block (ticket #250). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
14 * Fix problem with the transformation filter dropping events after the |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
15 selection (ticket #290). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
16 * `for` loops in template code blocks no longer establish their own locals |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
17 scope, meaning you can now access variables assigned in the loop outside |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
18 of the loop, just as you can in regular Python code (ticket #259). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
19 * Import statements inside function definitions in template code blocks no |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
20 longer result in an UndefinedError when the imported name is accessed |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
21 (ticket #276). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
22 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
23 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
24 Version 0.5.1 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
25 http://svn.edgewall.org/repos/genshi/tags/0.5.1/ |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
26 (Jul 9 2008, from branches/stable/0.5.x) |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
27 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
28 * Fix problem with nested match templates not being applied when buffering |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
29 on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
30 problem and providing a test case! |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
31 * Fix problem in `Translator` filter that would cause the translation of |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
32 text nodes to fail if the translation function returned an object that was |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
33 not directly a string, but rather something like an instance of the |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
34 `LazyProxy` class in Babel (ticket #145). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
35 * Fix problem with match templates incorrectly being applied multiple times. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
36 * Includes from templates loaded via an absolute path now include the correct |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
37 file in nested directories as long if no search path has been configured |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
38 (ticket #240). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
39 * Unbuffered match templates could result in parts of the matched content |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
40 being included in the output if the match template didn't actually consume |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
41 it via one or more calls to the `select()` function (ticket #243). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
42 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
43 |
500 | 44 Version 0.5 |
45 http://svn.edgewall.org/repos/genshi/tags/0.5.0/ | |
820
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
46 (Jun 9 2008, from branches/stable/0.5.x) |
500 | 47 |
48 * Added #include directive for text templates (ticket #115). | |
820
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
49 * Added new markup transformation filter contributed by Alec Thomas. This |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
50 provides gorgeous jQuery-inspired stream transformation capabilities based |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
51 on XPath expressions. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
52 * When using HTML or XHTML serialization, the `xml:lang` attribute is |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
53 automatically translated to the `lang` attribute which HTML user agents |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
54 understand. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
55 * Added support for the XPath 2 `matches()` function in XPath expressions, |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
56 which allow matching against regular expressions. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
57 * Support for Python code blocks in templates can now be disabled |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
58 (ticket #123). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
59 * Includes are now processed when the template is parsed if possible, but |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
60 only if the template loader is not set to do automatic reloading. Included |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
61 templates are basically inlined into the including template, which can |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
62 speed up rendering of that template a bit. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
63 * Added new syntax for text templates, which is more powerful and flexible |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
64 with respect to white-space and line breaks. It also supports Python code |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
65 blocks. The old syntax is still available and the default for now, but in a |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
66 future release the new syntax will become the default, and some time after |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
67 that the old syntax will be removed. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
68 * Added support for passing optimization hints to `<py:match>` directives, |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
69 which can speed up match templates in many cases, for example when a match |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
70 template should only be applied once to a stream, or when it should not be |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
71 applied recursively. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
72 * Text templates now default to rendering as plain text; it is no longer |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
73 necessary to explicitly specify the "text" method to the `render()` or |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
74 `serialize()` method of the generated markup stream. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
75 * XInclude elements in markup templates now support the `parse` attribute; |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
76 when set to "xml" (the default), the include is processed as before, but |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
77 when set to "text", the included template is parsed as a text template using |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
78 the new syntax (ticket #101). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
79 * Python code blocks inside match templates are now executed (ticket #155). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
80 * The template engine plugin no longer adds the `default_doctype` when the |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
81 `fragment` parameter is `True`. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
82 * The `striptags` function now also removes HTML/XML-style comments (ticket |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
83 #150). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
84 * The `py:replace` directive can now also be used as an element, with an |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
85 attribute named `value` (ticket #144). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
86 * The `TextSerializer` class no longer strips all markup in text by default, |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
87 so that it is still possible to use the Genshi `escape` function even with |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
88 text templates. The old behavior is available via the `strip_markup` option |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
89 of the serializer (ticket #146). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
90 * Assigning to a variable named `data` in a Python code block no longer |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
91 breaks context lookup. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
92 * The `Stream.render` now accepts an optional `out` parameter that can be |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
93 used to pass in a writable file-like object to use for assembling the |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
94 output, instead of building a big string and returning it. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
95 * The XHTML serializer now strips `xml:space` attributes as they are only |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
96 allowed on very few tags. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
97 * Match templates are now applied in a more controlled fashion: in the order |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
98 they are declared in the template source, all match templates up to (and |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
99 including) the matching template itself are applied to the matched content, |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
100 whereas the match templates declared after the matching template are only |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
101 applied to the generated content (ticket #186). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
102 * The `TemplateLoader` class now provides an `_instantiate()` method that can |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
103 be overridden by subclasses to implement advanced template instantiation |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
104 logic (ticket #204). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
105 * The search path of the `TemplateLoader` class can now contain ''load |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
106 functions'' in addition to path strings. A load function is passed the |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
107 name of the requested template file, and should return a file-like object |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
108 and some metadata. New load functions are supplied for loading from egg |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
109 package data, and loading from different loaders depending on the path |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
110 prefix of the requested filename (ticket #182). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
111 * Match templates can now be processed without keeping the complete matched |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
112 content in memory, which could cause excessive memory use on long pages. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
113 The buffering can be disabled using the new `buffer` optimization hint on |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
114 the `<py:match>` directive. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
115 * Improve error reporting when accessing an attribute in a Python expression |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
116 raises an `AttributeError` (ticket #191). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
117 * The `Markup` class now supports mappings for right hand of the `%` (modulo) |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
118 operator in the same way the Python string classes do, except that the |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
119 substituted values are escape. Also, the special constructor which took |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
120 positional arguments that would be substituted was removed. Thus the |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
121 `Markup` class now supports the same arguments as that of its `unicode` |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
122 base class (ticket #211). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
123 * The `Template` class and its subclasses, as well as the interpolation API, |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
124 now take an `filepath` parameter instead of `basedir` (ticket #207). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
125 * The `XHTMLSerializer` now has a `drop_xml_decl` option that defaults to |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
126 `True`. Setting it to `False` will cause any XML decl in the serialized |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
127 stream to be included in the output as it would for XML serialization. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
128 * Add support for a protocol that would allow interoperability of different |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
129 Python packages that generate and/or consume markup, based on the special |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
130 `__html__()` method (ticket #202). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
131 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
132 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
133 Version 0.4.4 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
134 http://svn.edgewall.org/repos/genshi/tags/0.4.4/ |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
135 (Aug 14, 2007, from branches/stable/0.4.x) |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
136 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
137 * Fixed augmented assignment to local variables in Python code blocks. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
138 * Fixed handling of nested function and class definitions in Python code |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
139 blocks. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
140 * Includes were not raising `TemplateNotFound` exceptions even when no |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
141 fallback has been specified. That has been corrected. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
142 * The template loader now raises a `TemplateNotFound` error when a previously |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
143 cached template is removed or renamed, where it previously was passing up |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
144 an `OSError`. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
145 * The Genshi I18n filter can be configured to only extract messages found in |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
146 `gettext` function calls, ignoring any text nodes and attribute values |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
147 (ticket #138). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
148 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
149 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
150 Version 0.4.3 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
151 http://svn.edgewall.org/repos/genshi/tags/0.4.3/ |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
152 (Jul 17 2007, from branches/stable/0.4.x) |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
153 |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
154 * The I18n filter no longer extracts or translates literal strings in |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
155 attribute values that also contain expressions. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
156 * Added `loader_callback` option to plugin interface, which allows specifying |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
157 a callback function that the template loader should invoke whenever a new |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
158 template is loaded (ticket #130). Note that the value for this option can |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
159 not be specified as a string, only as an actual function object, which means |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
160 it is not available for use through configuration files. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
161 * The I18n filter now extracts messages from gettext functions even inside |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
162 ignored tags (ticket #132). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
163 * The HTML sanitizer now strips any CSS comments in style attributes, which |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
164 could previously be used to hide malicious property values. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
165 * The HTML sanitizer now also removes any HTML comments encountered, as those |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
166 may be used to hide malicious payloads targetting a certain "innovative" |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
167 browser that goes and interprets the content of specially prepared comments. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
168 * Attribute access in template expressions no longer silently ignores |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
169 exceptions other than `AttributeError` raised in the attribute accessor. |
500 | 170 |
171 | |
172 Version 0.4.2 | |
173 http://svn.edgewall.org/repos/genshi/tags/0.4.2/ | |
820
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
174 (Jun 20 2007, from branches/stable/0.4.x) |
500 | 175 |
176 * The `doctype` parameter of the markup serializers now also accepts the "name" | |
177 of the doctype as string, in addition to the `(name, pubid, sysid)` tuple. | |
178 * The I18n filter was not replacing the original attributes with the | |
179 translation, but instead adding a second attribute with the same name. | |
820
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
180 * `TextTemplate` can now handle unicode source (ticket #125). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
181 * A `<?python ?>` processing instruction containing trailing whitespace no |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
182 longer causes a syntax error (ticket #127). |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
183 * The I18n filter now skips the content of elements that have an `xml:lang` |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
184 attribute with a fixed string value. Basically, `xml:lang` can now be used |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
185 as a flag to mark specific sections as not needing localization. |
1837f39efd6f
Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents:
500
diff
changeset
|
186 * Added plugin for message extraction via Babel (http://babel.edgewall.org/). |
500 | 187 |
188 | |
189 Version 0.4.1 | |
190 http://svn.edgewall.org/repos/genshi/tags/0.4.1/ | |
191 (May 21 2007, from branches/stable/0.4.x) | |
192 | |
193 * Fix incorrect reference to translation function in the I18N filter. | |
194 * The `ET()` function now correctly handles attributes with a namespace. | |
195 * XML declarations are now processed internally, as well as written to the | |
196 output when XML serialization is used (ticket #111). | |
197 * Added the functions `encode()` and `get_serializer()` to the `genshi.output` | |
198 module, which provide a lower-level API to the functionality previously only | |
199 available through `Stream.render()` and `Stream.serialize()`. | |
200 * The `DocType` class now has a `get(name)` function that returns a `DOCTYPE` | |
201 tuple for a given string. | |
202 * Added frameset variants to the `DocType` constants for HTML 4.01 and XHTML | |
203 1.0. | |
204 * Improved I18n extraction for pluralizable messages: for any translation | |
205 function with multiple string arguments (such as ``ngettext``), a single | |
206 item with a tuple of strings is yielded, instead an item for each string | |
207 argument. | |
208 * The `HTMLFormFiller` stream filter no longer alters form elements for which | |
209 the data element contains no corresponding item. | |
210 * Code in `<?python ?>` processing instructions no longer gets the special | |
211 treatment as Python code in template expressions, i.e. item and attribute | |
212 access are no longer interchangeable (which was broken in a number of ways | |
213 anyway, see ticket #113). This change does not affect expressions. | |
214 * Numerous fixes for the execution of Python code in `<?python ?>` processing | |
215 instructions (tickets #113 and #114). | |
216 * The `py:def` (and `#def`) directive now supports "star args" (i.e. `*args` | |
217 and `**kwargs`) in the function declaration (ticket #116). | |
218 | |
219 | |
276 | 220 Version 0.4 |
221 http://svn.edgewall.org/repos/genshi/tags/0.4.0/ | |
500 | 222 (Apr 16 2007, from branches/stable/0.4.x) |
276 | 223 |
224 * New example applications for CherryPy and web.py. | |
225 * The template loader now uses a LRU cache to limit the number of cached | |
226 templates to a configurable maximum. Also, a race condition in the template | |
227 loader was fixed by adding locking. | |
228 * A new filter (genshi.filters.HTMLFormFiller) was added, which can populate | |
229 HTML forms based on a dictionary of values. | |
277
c9fd81953169
The `HTMLSanitizer` now lets you override the default set of tag and attribute names that are considered safe.
cmlenz
parents:
276
diff
changeset
|
230 * The set of permitted tag and attribute names for the HTMLSanitizer can now |
c9fd81953169
The `HTMLSanitizer` now lets you override the default set of tag and attribute names that are considered safe.
cmlenz
parents:
276
diff
changeset
|
231 be configured per instance. |
294 | 232 * The template engine plugin now supports a range of options for |
233 configuration, for example to set the default serialization method, the | |
234 default output encoding, or the default DOCTYPE. | |
302 | 235 * The ElementTree adaptation function `ET()` has moved into the `genshi.input` |
236 module. | |
237 * Allow `when` directives to omit the test expression as long as the | |
238 associated choose directive does have one. In that case, the when branch is | |
239 followed if the expression of the choose directive evaluates to a truth | |
240 value. | |
317
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
241 * Unsuccessful attribute or item lookups now return `Undefined` objects for |
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
242 nicer error messages. |
336
5f2c7782cd8a
Refactoring: `genshi.template` is now a package, it was getting way to crowded in that file.
cmlenz
parents:
333
diff
changeset
|
243 * Split up the `genshi.template` module into multiple modules inside the new |
5f2c7782cd8a
Refactoring: `genshi.template` is now a package, it was getting way to crowded in that file.
cmlenz
parents:
333
diff
changeset
|
244 `genshi.template` package. |
344 | 245 * Results of expression evaluation are no longer implicitly called if they |
246 are callable. | |
347 | 247 * Instances of the `genshi.core.Attrs` class are now immutable (they are |
248 subclasses of `tuple` instead of `list`). | |
395 | 249 * `MarkupTemplate`s can now be instantiated from markup streams, in addition |
250 to strings and file-like objects (ticket #69). | |
251 * Improve handling of incorrectly nested tags in the HTML parser. | |
500 | 252 * Template includes can now be nested inside fallback content. |
253 * Expressions can now contain dict literals (ticket #37). | |
254 * It is now possible to have one or more escaped dollar signs in front of a | |
255 full expression (ticket #92). | |
256 * The `Markup` class is now available by default in template expressions | |
257 (ticket #67). | |
258 * The handling of namespace declarations in XML/XHTML output has been improved. | |
259 * The `Attrs` class no longer automatically wraps all attribute names in | |
260 `QName` objects. This is now the responsibility of whoever is instantiating | |
261 `Attrs` objects (for example, stream filters and generators). | |
262 * Python code blocks are now supported using the `<?python ?>` processing | |
263 instruction (ticket #84). | |
264 * The way errors in template expressions are handled can now be configured. The | |
265 option `LenientLookup` provides the same forgiving mode used in previous | |
266 Genshi versions, while `StrictLookup` raises exceptions when undefined | |
267 variables or members are accessed. The lenient mode is still the default in | |
268 this version, but that may change in the future. (ticket #88) | |
269 * If a variable is not necessarily defined at the top level of the template | |
270 data, the new built-in functions `defined(key)` and `value_of(key, default)` | |
271 can be used so that the template also works in strict lookup mode. These | |
272 functions were previously only available when using Genshi via the template | |
273 engine plugin (for compatibility with Kid). | |
274 * `style` attributes are no longer allowed by the `HTMLSanitizer` by default. | |
275 If they are explicitly added to the set of safe attributes, any unicode | |
276 escapes in the attribute value are now handled properly. | |
277 * Namespace declarations on conditional elements (for example using a `py:if` | |
278 directive`) are no longer moved to the following element when the element | |
279 originally carrying the declaration is removed from the stream (ticket #107). | |
280 * Added basic built-in support for internationalizing templates by providing | |
281 a new `Translator` class that can both extract localizable strings from a | |
282 stream, and replace those strings with their localizations at render time. | |
283 The code for this was largely taken from previous work done by Matt Good | |
284 and David Fraser. | |
395 | 285 |
286 | |
287 Version 0.3.6 | |
288 http://svn.edgewall.org/repos/genshi/tags/0.3.6/ | |
289 (Dec 11 2006, from branches/stable/0.3.x) | |
290 | |
291 * The builder API now accepts streams as children of elements and fragments. | |
292 | |
293 | |
294 Version 0.3.5 | |
295 http://svn.edgewall.org/repos/genshi/tags/0.3.5/ | |
296 (Nov 22 2006, from branches/stable/0.3.x) | |
297 | |
298 * Fix XPath traversal in match templates. Previously, `div/p` would be treated | |
299 the same as `div//p`, i.e. it would match all descendants and not just the | |
300 immediate children. | |
301 * Preserve whitespace in HTML `<pre>` elements also when they contain child | |
302 elements. | |
303 * Match templates no longer match their own output (ticket #77). | |
304 * Blank lines before directives in text templates are now preserved as | |
305 expected (ticket #62). | |
347 | 306 |
317
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
307 |
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
308 Version 0.3.4 |
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
309 http://svn.edgewall.org/repos/genshi/tags/0.3.4/ |
323 | 310 (Nov 2 2006, from branches/stable/0.3.x) |
317
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
311 |
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
312 * The encoding of HTML and XML files, as well as markup and text templates, |
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
313 can now be specified. Also, the encoding specified in XML declarations is |
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
314 now respected unless an expiclit encoding is requested. |
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
315 * Expressions used as arguments for `py:with`, `py:def`, and `py:for` |
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
316 directives can now contain non-ASCII strings. |
285 | 317 |
318 | |
288
dcd0e8918098
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
319 Version 0.3.3 |
dcd0e8918098
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
320 http://svn.edgewall.org/repos/genshi/tags/0.3.3/ |
302 | 321 (Oct 16 2006, from branches/stable/0.3.x) |
288
dcd0e8918098
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
322 |
dcd0e8918098
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
323 * Fixed bug introduced in 0.3.2 that broke the parsing of templates which |
dcd0e8918098
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
324 declare the same namespace more than once in a nested fashion. |
294 | 325 * Fixed the parsing of HTML entity references inside attribute values, both |
326 in the `XMLParser` and the `HTMLParser` classes. | |
302 | 327 * Some changes to usage of absolute vs. relative template paths to ensure that |
328 the filenamed-keyed cache employed by the TemplateLoader doesn't mix up | |
329 templates with the same name, but from different subdirectories. | |
288
dcd0e8918098
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
330 |
dcd0e8918098
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
331 |
285 | 332 Version 0.3.2 |
333 http://svn.edgewall.org/repos/genshi/tags/0.3.2/ | |
334 (Oct 12 2006, from branches/stable/0.3.x) | |
335 | |
336 * Exceptions from templates now contain the absolute path to the template file | |
337 when a search path is used. This enables tracebacks to display the line in | |
338 question. | |
339 * The template engine plugin now provides three different types: "genshi" and | |
340 "genshi-markup" map to markup templates, while "genshi-text" maps to text | |
341 templates. | |
278
8de2620504b9
Fix the handling of namespace context for match templates.
cmlenz
parents:
277
diff
changeset
|
342 * Fixed the namespace context used by XPath patterns in py:match templates. |
8de2620504b9
Fix the handling of namespace context for match templates.
cmlenz
parents:
277
diff
changeset
|
343 The were erroneously using the namespace context of the elements being |
8de2620504b9
Fix the handling of namespace context for match templates.
cmlenz
parents:
277
diff
changeset
|
344 matched, where they should rather use the context in which they were |
8de2620504b9
Fix the handling of namespace context for match templates.
cmlenz
parents:
277
diff
changeset
|
345 defined. |
285 | 346 * The contents of `<script>` and `<style>` elements are no longer escaped when |
280
e68705cb462e
The content of `<script>` and `<style>` elements is no longer escaped when serializing to HTML but declaring the XHTML namespace in the template.
cmlenz
parents:
278
diff
changeset
|
347 serializing to HTML but declaring the XHTML namespace in the template. |
285 | 348 * Improved error message raised when using the `py:for` directive on an object |
349 that is not iterable (ticket #60). | |
350 * Fixed the XPath function `starts-with()` which was always returning true | |
351 (ticket #61). | |
276 | 352 |
353 | |
260 | 354 Version 0.3.1 |
355 http://svn.edgewall.org/repos/genshi/tags/0.3.1/ | |
262 | 356 (Sep 22 2006, from branches/stable/0.3.x) |
260 | 357 |
358 * Includes and user-defined filters were not getting the correct context data | |
359 when used inside a match template (ticket #56). | |
360 * XPath patterns using the union operator (`|`) were returning only partial | |
361 results in some cases. | |
362 | |
363 | |
192
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
364 Version 0.3 |
230 | 365 http://svn.edgewall.org/repos/genshi/tags/0.3.0/ |
252 | 366 (Sep 17 2006, from branches/stable/0.3.x) |
192
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
367 |
234 | 368 * The project name was changed from "Markup" to "Genshi". See UPGRADE.txt |
369 for upgrade instructions. | |
192
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
370 * Expression evaluation now differentiates between undefined variables and |
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
371 variables that are defined but set to `None`. This also means that local |
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
372 variables can override built-ins even if the local variable are set to |
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
373 `None` (ticket #36). |
199
58284b6b0009
* Removed storage of substream in `MatchDirective`, because it's already being stored in the match templates (related to #39).
cmlenz
parents:
192
diff
changeset
|
374 * The plugin implementation now makes more functions available for use inside |
58284b6b0009
* Removed storage of substream in `MatchDirective`, because it's already being stored in the match templates (related to #39).
cmlenz
parents:
192
diff
changeset
|
375 templates: XML(), HTML(), defined(), and value-of(). These are mostly for |
58284b6b0009
* Removed storage of substream in `MatchDirective`, because it's already being stored in the match templates (related to #39).
cmlenz
parents:
192
diff
changeset
|
376 migration from Kid. |
192
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
377 * The parsing of `py:with` directives has been improved: you can now assign |
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
378 to multiple names, and semicolons inside string literals are treated as |
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
379 expected. |
199
58284b6b0009
* Removed storage of substream in `MatchDirective`, because it's already being stored in the match templates (related to #39).
cmlenz
parents:
192
diff
changeset
|
380 * Generator expressions can now be used in template expressions (ticket #16). |
200
50eab0469148
Add serialization to plain text, based on cboos' patch. Closes #41.
cmlenz
parents:
199
diff
changeset
|
381 * Added serialization to plain text (ticket #41). |
218 | 382 * Calling functions from template expressions with *args and/or **kwargs |
383 now works correctly (ticket #42). | |
384 * The `TemplateLoader` class and the `Template` instances that it manages are | |
385 now thread-safe, as they no longer keep any state related to the current | |
386 processing context. | |
387 * Stream filters and serializers can now be applied using the "pipe" (bitwise | |
388 or) operator "|". | |
389 * The execution of named template functions (`py:def`) no longer silently | |
390 swallows TypeError exceptions (ticket #44). | |
391 * The XML Parser now correctly handles unicode input (ticket #43). | |
392 * HTML entities can now be used in templates without having to declare an HTML | |
393 document type. | |
394 * Error reporting on undefined entities has been fixed. | |
395 * Fix traversal of substreams by XPath expressions. For example, the path | |
396 '*/*' no longer matches non-immediate child elements, and '@*' no longer | |
397 matches the attributes of descendants. | |
398 * Fixes for `py:match` which would get confused when it should be applied | |
399 to multiple elements (ticket #49). | |
224
e4dad1145f84
Implement support for namespace prefixes in XPath expressions.
cmlenz
parents:
218
diff
changeset
|
400 * Using namespace prefixes in XPath expressions is now supported. |
227
98b8e1a92df8
Use list comprehension instead of `map()` in the AST transformer.
cmlenz
parents:
224
diff
changeset
|
401 * Expressions now correctly handle slices (ticket #51). |
234 | 402 * A simple text-based template language is now included for generating |
403 plain text output (ticket #47). | |
192
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
404 |
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
405 |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
406 Version 0.2 |
230 | 407 http://svn.edgewall.org/repos/genshi/tags/0.2.0/ |
184
e27a48802987
Interpolate multiline expressions in templates. Thanks to Christian Boos for reporting the problem and providing the fix.
cmlenz
parents:
181
diff
changeset
|
408 (Aug 22 2006, from branches/stable/0.2.x) |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
409 |
153 | 410 * XPath syntax errors now contain position info (ticket #20). |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
411 * Errors in expression evaluation now contain the correct line number in the |
153 | 412 template (ticket #22). |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
413 * <script> and <style> element contents are no longer escaped when using HTML |
153 | 414 serialization (ticket #24). |
415 * In some cases expressions in templates did not get interpolated (ticket | |
416 #26). | |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
417 * CDATA sections are now passed through the pipeline and serialized correctly. |
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
418 That allows using <script> or <style> elements in XHTML output that is still |
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
419 compatible with HTML user agents. |
159 | 420 * The XHTML serializer now correctly handles elements in foreign namespaces |
421 (such as SVG or MathML). | |
153 | 422 * Fixed relative includes in templates on Windows (ticket #27). |
160 | 423 * Output can be encoded using legacy codecs such as ISO-8859-1. Any character |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
424 not representable in the chosen encoding gets replaced by the corresponding |
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
425 XML character reference. |
156 | 426 * String literals in XPath expressions that contain spaces are now parsed |
427 as expected. | |
428 * Added support for the XPath functions boolean(), ceiling(), concat(), | |
162
f767cf98e3e3
Implement the XPath relational operators and the `round()` function.
cmlenz
parents:
160
diff
changeset
|
429 contains(), false(), floor(), normalize-space(), number(), round(), |
f767cf98e3e3
Implement the XPath relational operators and the `round()` function.
cmlenz
parents:
160
diff
changeset
|
430 starts-with(), string-length(), substring(), substring-after(), |
f767cf98e3e3
Implement the XPath relational operators and the `round()` function.
cmlenz
parents:
160
diff
changeset
|
431 substring-before(), translate(), and true(). |
168 | 432 * Non-ASCII characters in expressions should now be handled correctly (ticket |
433 #29). | |
434 * Default values for arguments of template functions now also work with | |
435 constants and complex expressions (they only worked for string or number | |
436 literals before). | |
181
d07ce6c1dbbe
Some error message improvements for template directives. Thanks to Christian Boos for the patch!
cmlenz
parents:
169
diff
changeset
|
437 * XPath expressions in now support XPath variables ($var) in predicates |
d07ce6c1dbbe
Some error message improvements for template directives. Thanks to Christian Boos for the patch!
cmlenz
parents:
169
diff
changeset
|
438 (ticket #31). |
184
e27a48802987
Interpolate multiline expressions in templates. Thanks to Christian Boos for reporting the problem and providing the fix.
cmlenz
parents:
181
diff
changeset
|
439 * Expressions in templates can now span multiple lines if they are enclosed |
e27a48802987
Interpolate multiline expressions in templates. Thanks to Christian Boos for reporting the problem and providing the fix.
cmlenz
parents:
181
diff
changeset
|
440 in curly braces. |
185
8e5a3048b359
Fix for #34: `py:def` macros can now be invoked from within expressions in attribute values.
cmlenz
parents:
184
diff
changeset
|
441 * py:def macros can now be invoked from within expressions inside attribute |
8e5a3048b359
Fix for #34: `py:def` macros can now be invoked from within expressions in attribute values.
cmlenz
parents:
184
diff
changeset
|
442 values (ticket #34). |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
443 |
169 | 444 |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
445 Version 0.1 |
230 | 446 http://svn.edgewall.org/repos/genshi/tags/0.1.0/ |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
447 (Aug 3 2006, from branches/stable/0.1.x) |
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
448 |
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
449 * First public release |