annotate ChangeLog @ 830:a55e4d51b8ff experimental-inline

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