comparison ChangeLog @ 820:9755836bb396 experimental-inline

Sync (old) experimental inline branch with trunk@1027.
author cmlenz
date Wed, 11 Mar 2009 17:51:06 +0000
parents 3eb30e4ece8c
children a55e4d51b8ff
comparison
equal deleted inserted replaced
500:3eb30e4ece8c 820:9755836bb396
1 Version 0.6
2 http://svn.edgewall.org/repos/genshi/tags/0.6.0/
3 (???, from branches/stable/0.6.x)
4
5 * Support for Python 2.3 has been dropped.
6
7
8 Version 0.5.2
9 http://svn.edgewall.org/repos/genshi/tags/0.5.2/
10 (???, from branches/stable/0.5.x)
11
12 * Fix problem with I18n filter that would get confused by expressions in
13 attribute values when inside an `i18n:msg` block (ticket #250).
14 * Fix problem with the transformation filter dropping events after the
15 selection (ticket #290).
16 * `for` loops in template code blocks no longer establish their own locals
17 scope, meaning you can now access variables assigned in the loop outside
18 of the loop, just as you can in regular Python code (ticket #259).
19 * Import statements inside function definitions in template code blocks no
20 longer result in an UndefinedError when the imported name is accessed
21 (ticket #276).
22
23
24 Version 0.5.1
25 http://svn.edgewall.org/repos/genshi/tags/0.5.1/
26 (Jul 9 2008, from branches/stable/0.5.x)
27
28 * Fix problem with nested match templates not being applied when buffering
29 on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the
30 problem and providing a test case!
31 * Fix problem in `Translator` filter that would cause the translation of
32 text nodes to fail if the translation function returned an object that was
33 not directly a string, but rather something like an instance of the
34 `LazyProxy` class in Babel (ticket #145).
35 * Fix problem with match templates incorrectly being applied multiple times.
36 * Includes from templates loaded via an absolute path now include the correct
37 file in nested directories as long if no search path has been configured
38 (ticket #240).
39 * Unbuffered match templates could result in parts of the matched content
40 being included in the output if the match template didn't actually consume
41 it via one or more calls to the `select()` function (ticket #243).
42
43
1 Version 0.5 44 Version 0.5
2 http://svn.edgewall.org/repos/genshi/tags/0.5.0/ 45 http://svn.edgewall.org/repos/genshi/tags/0.5.0/
3 (?, from branches/stable/0.5.x) 46 (Jun 9 2008, from branches/stable/0.5.x)
4 47
5 * Added #include directive for text templates (ticket #115). 48 * Added #include directive for text templates (ticket #115).
49 * Added new markup transformation filter contributed by Alec Thomas. This
50 provides gorgeous jQuery-inspired stream transformation capabilities based
51 on XPath expressions.
52 * When using HTML or XHTML serialization, the `xml:lang` attribute is
53 automatically translated to the `lang` attribute which HTML user agents
54 understand.
55 * Added support for the XPath 2 `matches()` function in XPath expressions,
56 which allow matching against regular expressions.
57 * Support for Python code blocks in templates can now be disabled
58 (ticket #123).
59 * Includes are now processed when the template is parsed if possible, but
60 only if the template loader is not set to do automatic reloading. Included
61 templates are basically inlined into the including template, which can
62 speed up rendering of that template a bit.
63 * Added new syntax for text templates, which is more powerful and flexible
64 with respect to white-space and line breaks. It also supports Python code
65 blocks. The old syntax is still available and the default for now, but in a
66 future release the new syntax will become the default, and some time after
67 that the old syntax will be removed.
68 * Added support for passing optimization hints to `<py:match>` directives,
69 which can speed up match templates in many cases, for example when a match
70 template should only be applied once to a stream, or when it should not be
71 applied recursively.
72 * Text templates now default to rendering as plain text; it is no longer
73 necessary to explicitly specify the "text" method to the `render()` or
74 `serialize()` method of the generated markup stream.
75 * XInclude elements in markup templates now support the `parse` attribute;
76 when set to "xml" (the default), the include is processed as before, but
77 when set to "text", the included template is parsed as a text template using
78 the new syntax (ticket #101).
79 * Python code blocks inside match templates are now executed (ticket #155).
80 * The template engine plugin no longer adds the `default_doctype` when the
81 `fragment` parameter is `True`.
82 * The `striptags` function now also removes HTML/XML-style comments (ticket
83 #150).
84 * The `py:replace` directive can now also be used as an element, with an
85 attribute named `value` (ticket #144).
86 * The `TextSerializer` class no longer strips all markup in text by default,
87 so that it is still possible to use the Genshi `escape` function even with
88 text templates. The old behavior is available via the `strip_markup` option
89 of the serializer (ticket #146).
90 * Assigning to a variable named `data` in a Python code block no longer
91 breaks context lookup.
92 * The `Stream.render` now accepts an optional `out` parameter that can be
93 used to pass in a writable file-like object to use for assembling the
94 output, instead of building a big string and returning it.
95 * The XHTML serializer now strips `xml:space` attributes as they are only
96 allowed on very few tags.
97 * Match templates are now applied in a more controlled fashion: in the order
98 they are declared in the template source, all match templates up to (and
99 including) the matching template itself are applied to the matched content,
100 whereas the match templates declared after the matching template are only
101 applied to the generated content (ticket #186).
102 * The `TemplateLoader` class now provides an `_instantiate()` method that can
103 be overridden by subclasses to implement advanced template instantiation
104 logic (ticket #204).
105 * The search path of the `TemplateLoader` class can now contain ''load
106 functions'' in addition to path strings. A load function is passed the
107 name of the requested template file, and should return a file-like object
108 and some metadata. New load functions are supplied for loading from egg
109 package data, and loading from different loaders depending on the path
110 prefix of the requested filename (ticket #182).
111 * Match templates can now be processed without keeping the complete matched
112 content in memory, which could cause excessive memory use on long pages.
113 The buffering can be disabled using the new `buffer` optimization hint on
114 the `<py:match>` directive.
115 * Improve error reporting when accessing an attribute in a Python expression
116 raises an `AttributeError` (ticket #191).
117 * The `Markup` class now supports mappings for right hand of the `%` (modulo)
118 operator in the same way the Python string classes do, except that the
119 substituted values are escape. Also, the special constructor which took
120 positional arguments that would be substituted was removed. Thus the
121 `Markup` class now supports the same arguments as that of its `unicode`
122 base class (ticket #211).
123 * The `Template` class and its subclasses, as well as the interpolation API,
124 now take an `filepath` parameter instead of `basedir` (ticket #207).
125 * The `XHTMLSerializer` now has a `drop_xml_decl` option that defaults to
126 `True`. Setting it to `False` will cause any XML decl in the serialized
127 stream to be included in the output as it would for XML serialization.
128 * Add support for a protocol that would allow interoperability of different
129 Python packages that generate and/or consume markup, based on the special
130 `__html__()` method (ticket #202).
131
132
133 Version 0.4.4
134 http://svn.edgewall.org/repos/genshi/tags/0.4.4/
135 (Aug 14, 2007, from branches/stable/0.4.x)
136
137 * Fixed augmented assignment to local variables in Python code blocks.
138 * Fixed handling of nested function and class definitions in Python code
139 blocks.
140 * Includes were not raising `TemplateNotFound` exceptions even when no
141 fallback has been specified. That has been corrected.
142 * The template loader now raises a `TemplateNotFound` error when a previously
143 cached template is removed or renamed, where it previously was passing up
144 an `OSError`.
145 * The Genshi I18n filter can be configured to only extract messages found in
146 `gettext` function calls, ignoring any text nodes and attribute values
147 (ticket #138).
148
149
150 Version 0.4.3
151 http://svn.edgewall.org/repos/genshi/tags/0.4.3/
152 (Jul 17 2007, from branches/stable/0.4.x)
153
154 * The I18n filter no longer extracts or translates literal strings in
155 attribute values that also contain expressions.
156 * Added `loader_callback` option to plugin interface, which allows specifying
157 a callback function that the template loader should invoke whenever a new
158 template is loaded (ticket #130). Note that the value for this option can
159 not be specified as a string, only as an actual function object, which means
160 it is not available for use through configuration files.
161 * The I18n filter now extracts messages from gettext functions even inside
162 ignored tags (ticket #132).
163 * The HTML sanitizer now strips any CSS comments in style attributes, which
164 could previously be used to hide malicious property values.
165 * The HTML sanitizer now also removes any HTML comments encountered, as those
166 may be used to hide malicious payloads targetting a certain "innovative"
167 browser that goes and interprets the content of specially prepared comments.
168 * Attribute access in template expressions no longer silently ignores
169 exceptions other than `AttributeError` raised in the attribute accessor.
6 170
7 171
8 Version 0.4.2 172 Version 0.4.2
9 http://svn.edgewall.org/repos/genshi/tags/0.4.2/ 173 http://svn.edgewall.org/repos/genshi/tags/0.4.2/
10 (?, from branches/stable/0.4.x) 174 (Jun 20 2007, from branches/stable/0.4.x)
11 175
12 * The `doctype` parameter of the markup serializers now also accepts the "name" 176 * The `doctype` parameter of the markup serializers now also accepts the "name"
13 of the doctype as string, in addition to the `(name, pubid, sysid)` tuple. 177 of the doctype as string, in addition to the `(name, pubid, sysid)` tuple.
14 * The I18n filter was not replacing the original attributes with the 178 * The I18n filter was not replacing the original attributes with the
15 translation, but instead adding a second attribute with the same name. 179 translation, but instead adding a second attribute with the same name.
180 * `TextTemplate` can now handle unicode source (ticket #125).
181 * A `<?python ?>` processing instruction containing trailing whitespace no
182 longer causes a syntax error (ticket #127).
183 * The I18n filter now skips the content of elements that have an `xml:lang`
184 attribute with a fixed string value. Basically, `xml:lang` can now be used
185 as a flag to mark specific sections as not needing localization.
186 * Added plugin for message extraction via Babel (http://babel.edgewall.org/).
16 187
17 188
18 Version 0.4.1 189 Version 0.4.1
19 http://svn.edgewall.org/repos/genshi/tags/0.4.1/ 190 http://svn.edgewall.org/repos/genshi/tags/0.4.1/
20 (May 21 2007, from branches/stable/0.4.x) 191 (May 21 2007, from branches/stable/0.4.x)
Copyright (C) 2012-2017 Edgewall Software