annotate ChangeLog @ 902:09cc3627654c experimental-inline

Sync `experimental/inline` branch with [source:trunk@1126].
author cmlenz
date Fri, 23 Apr 2010 21:08:26 +0000
parents de82830f8816
children
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/
902
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
3 (Apr 22 2010, from branches/stable/0.6.x)
820
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.
902
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
6 * Rewrite of the XPath evaluation engine for better performance and improved
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
7 correctness. This is the result of integrating work done by Marcin Kurczych
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
8 during GSoC 2008.
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
9 * Updated the Python AST processing for template code evaluation to use the
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
10 `_ast` module instead of the deprecated `compiler` package, including an
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
11 adapter layer for Python 2.4. This, too, is the result of integrating work
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
12 done by Marcin Kurczych during GSoC 2008.
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
13 * Added caching in the serialization stage for improved performance in some
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
14 cases.
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
15 * Various improvements to the HTML sanitization filter.
820
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
16 * 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
17 attribute values when inside an `i18n:msg` block (ticket #250).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
18 * Fix problem with the transformation filter dropping events after the
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
19 selection (ticket #290).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
20 * `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
21 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
22 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
23 * Import statements inside function definitions in template code blocks no
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
24 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
25 (ticket #276).
902
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
26 * Fixed handling of relative URLs with fragment identifiers containing colons
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
27 in the `HTMLSanitizer` (ticket #274).
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
28 * Added an option to the `HTMLFiller` to also populate password fields.
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
29 * Match template processing no longer produces unwanted duplicate output in
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
30 some cases (ticket #254).
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
31 * Templates instantiated without a loader now get an implicit loader based on
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
32 their file path, or the current directory as a fallback (ticket #320).
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
33 * Added documentation for the `TemplateLoader`.
09cc3627654c Sync `experimental/inline` branch with [source:trunk@1126].
cmlenz
parents: 830
diff changeset
34 * Enhanced documentation for internationalization.
820
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
35
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
36
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
37 Version 0.5.1
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
38 http://svn.edgewall.org/repos/genshi/tags/0.5.1/
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
39 (Jul 9 2008, from branches/stable/0.5.x)
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
40
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
41 * 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
42 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
43 problem and providing a test case!
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
44 * 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
45 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
46 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
47 `LazyProxy` class in Babel (ticket #145).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
48 * Fix problem with match templates incorrectly being applied multiple times.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
49 * 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
50 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
51 (ticket #240).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
52 * 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
53 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
54 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
55
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
56
500
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
57 Version 0.5
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
58 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
59 (Jun 9 2008, from branches/stable/0.5.x)
500
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
60
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
61 * Added #include directive for text templates (ticket #115).
820
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
62 * Added new markup transformation filter contributed by Alec Thomas. This
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
63 provides gorgeous jQuery-inspired stream transformation capabilities based
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
64 on XPath expressions.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
65 * 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
66 automatically translated to the `lang` attribute which HTML user agents
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
67 understand.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
68 * 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
69 which allow matching against regular expressions.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
70 * 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
71 (ticket #123).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
72 * 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
73 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
74 templates are basically inlined into the including template, which can
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
75 speed up rendering of that template a bit.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
76 * 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
77 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
78 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
79 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
80 that the old syntax will be removed.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
81 * Added support for passing optimization hints to `<py:match>` directives,
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
82 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
83 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
84 applied recursively.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
85 * 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
86 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
87 `serialize()` method of the generated markup stream.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
88 * XInclude elements in markup templates now support the `parse` attribute;
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
89 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
90 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
91 the new syntax (ticket #101).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
92 * 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
93 * 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
94 `fragment` parameter is `True`.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
95 * 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
96 #150).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
97 * 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
98 attribute named `value` (ticket #144).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
99 * 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
100 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
101 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
102 of the serializer (ticket #146).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
103 * 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
104 breaks context lookup.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
105 * 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
106 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
107 output, instead of building a big string and returning it.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
108 * 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
109 allowed on very few tags.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
110 * 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
111 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
112 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
113 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
114 applied to the generated content (ticket #186).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
115 * The `TemplateLoader` class now provides an `_instantiate()` method that can
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
116 be overridden by subclasses to implement advanced template instantiation
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
117 logic (ticket #204).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
118 * 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
119 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
120 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
121 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
122 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
123 prefix of the requested filename (ticket #182).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
124 * 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
125 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
126 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
127 the `<py:match>` directive.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
128 * 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
129 raises an `AttributeError` (ticket #191).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
130 * 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
131 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
132 substituted values are escape. Also, the special constructor which took
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
133 positional arguments that would be substituted was removed. Thus the
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
134 `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
135 base class (ticket #211).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
136 * 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
137 now take an `filepath` parameter instead of `basedir` (ticket #207).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
138 * 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
139 `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
140 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
141 * 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
142 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
143 `__html__()` method (ticket #202).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
144
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
145
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
146 Version 0.4.4
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
147 http://svn.edgewall.org/repos/genshi/tags/0.4.4/
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
148 (Aug 14, 2007, from branches/stable/0.4.x)
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 * Fixed augmented assignment to local variables in Python code blocks.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
151 * 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
152 blocks.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
153 * Includes were not raising `TemplateNotFound` exceptions even when no
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
154 fallback has been specified. That has been corrected.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
155 * 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
156 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
157 an `OSError`.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
158 * 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
159 `gettext` function calls, ignoring any text nodes and attribute values
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
160 (ticket #138).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
161
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
162
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
163 Version 0.4.3
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
164 http://svn.edgewall.org/repos/genshi/tags/0.4.3/
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
165 (Jul 17 2007, from branches/stable/0.4.x)
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
166
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
167 * 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
168 attribute values that also contain expressions.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
169 * Added `loader_callback` option to plugin interface, which allows specifying
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
170 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
171 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
172 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
173 it is not available for use through configuration files.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
174 * 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
175 ignored tags (ticket #132).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
176 * 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
177 could previously be used to hide malicious property values.
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
178 * 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
179 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
180 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
181 * Attribute access in template expressions no longer silently ignores
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
182 exceptions other than `AttributeError` raised in the attribute accessor.
500
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
183
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
184
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
185 Version 0.4.2
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
186 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
187 (Jun 20 2007, from branches/stable/0.4.x)
500
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
188
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
189 * The `doctype` parameter of the markup serializers now also accepts the "name"
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
190 of the doctype as string, in addition to the `(name, pubid, sysid)` tuple.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
191 * The I18n filter was not replacing the original attributes with the
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
192 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
193 * `TextTemplate` can now handle unicode source (ticket #125).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
194 * A `<?python ?>` processing instruction containing trailing whitespace no
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
195 longer causes a syntax error (ticket #127).
1837f39efd6f Sync (old) experimental inline branch with trunk@1027.
cmlenz
parents: 500
diff changeset
196 * 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
197 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
198 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
199 * Added plugin for message extraction via Babel (http://babel.edgewall.org/).
500
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
200
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
201
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
202 Version 0.4.1
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
203 http://svn.edgewall.org/repos/genshi/tags/0.4.1/
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
204 (May 21 2007, from branches/stable/0.4.x)
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
205
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
206 * Fix incorrect reference to translation function in the I18N filter.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
207 * The `ET()` function now correctly handles attributes with a namespace.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
208 * XML declarations are now processed internally, as well as written to the
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
209 output when XML serialization is used (ticket #111).
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
210 * Added the functions `encode()` and `get_serializer()` to the `genshi.output`
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
211 module, which provide a lower-level API to the functionality previously only
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
212 available through `Stream.render()` and `Stream.serialize()`.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
213 * The `DocType` class now has a `get(name)` function that returns a `DOCTYPE`
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
214 tuple for a given string.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
215 * Added frameset variants to the `DocType` constants for HTML 4.01 and XHTML
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
216 1.0.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
217 * Improved I18n extraction for pluralizable messages: for any translation
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
218 function with multiple string arguments (such as ``ngettext``), a single
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
219 item with a tuple of strings is yielded, instead an item for each string
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
220 argument.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
221 * The `HTMLFormFiller` stream filter no longer alters form elements for which
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
222 the data element contains no corresponding item.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
223 * Code in `<?python ?>` processing instructions no longer gets the special
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
224 treatment as Python code in template expressions, i.e. item and attribute
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
225 access are no longer interchangeable (which was broken in a number of ways
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
226 anyway, see ticket #113). This change does not affect expressions.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
227 * Numerous fixes for the execution of Python code in `<?python ?>` processing
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
228 instructions (tickets #113 and #114).
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
229 * The `py:def` (and `#def`) directive now supports "star args" (i.e. `*args`
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
230 and `**kwargs`) in the function declaration (ticket #116).
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
231
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
232
276
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
233 Version 0.4
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
234 http://svn.edgewall.org/repos/genshi/tags/0.4.0/
500
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
235 (Apr 16 2007, from branches/stable/0.4.x)
276
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
236
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
237 * New example applications for CherryPy and web.py.
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
238 * The template loader now uses a LRU cache to limit the number of cached
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
239 templates to a configurable maximum. Also, a race condition in the template
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
240 loader was fixed by adding locking.
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
241 * A new filter (genshi.filters.HTMLFormFiller) was added, which can populate
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
242 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
243 * 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
244 be configured per instance.
294
2281dc992155 Updated change log.
cmlenz
parents: 288
diff changeset
245 * The template engine plugin now supports a range of options for
2281dc992155 Updated change log.
cmlenz
parents: 288
diff changeset
246 configuration, for example to set the default serialization method, the
2281dc992155 Updated change log.
cmlenz
parents: 288
diff changeset
247 default output encoding, or the default DOCTYPE.
302
dd6a18206119 Updated change log.
cmlenz
parents: 294
diff changeset
248 * The ElementTree adaptation function `ET()` has moved into the `genshi.input`
dd6a18206119 Updated change log.
cmlenz
parents: 294
diff changeset
249 module.
dd6a18206119 Updated change log.
cmlenz
parents: 294
diff changeset
250 * Allow `when` directives to omit the test expression as long as the
dd6a18206119 Updated change log.
cmlenz
parents: 294
diff changeset
251 associated choose directive does have one. In that case, the when branch is
dd6a18206119 Updated change log.
cmlenz
parents: 294
diff changeset
252 followed if the expression of the choose directive evaluates to a truth
dd6a18206119 Updated change log.
cmlenz
parents: 294
diff changeset
253 value.
317
8ba12f886c8a Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents: 302
diff changeset
254 * 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
255 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
256 * 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
257 `genshi.template` package.
344
eb4ef44ea1ad inline branch: Merged [419:421/trunk].
cmlenz
parents: 336
diff changeset
258 * Results of expression evaluation are no longer implicitly called if they
eb4ef44ea1ad inline branch: Merged [419:421/trunk].
cmlenz
parents: 336
diff changeset
259 are callable.
347
c0a4114786cc cspeedups branch: Merged [423:426/trunk].
cmlenz
parents: 344
diff changeset
260 * Instances of the `genshi.core.Attrs` class are now immutable (they are
c0a4114786cc cspeedups branch: Merged [423:426/trunk].
cmlenz
parents: 344
diff changeset
261 subclasses of `tuple` instead of `list`).
395
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
262 * `MarkupTemplate`s can now be instantiated from markup streams, in addition
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
263 to strings and file-like objects (ticket #69).
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
264 * Improve handling of incorrectly nested tags in the HTML parser.
500
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
265 * Template includes can now be nested inside fallback content.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
266 * Expressions can now contain dict literals (ticket #37).
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
267 * It is now possible to have one or more escaped dollar signs in front of a
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
268 full expression (ticket #92).
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
269 * The `Markup` class is now available by default in template expressions
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
270 (ticket #67).
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
271 * The handling of namespace declarations in XML/XHTML output has been improved.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
272 * The `Attrs` class no longer automatically wraps all attribute names in
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
273 `QName` objects. This is now the responsibility of whoever is instantiating
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
274 `Attrs` objects (for example, stream filters and generators).
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
275 * Python code blocks are now supported using the `<?python ?>` processing
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
276 instruction (ticket #84).
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
277 * The way errors in template expressions are handled can now be configured. The
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
278 option `LenientLookup` provides the same forgiving mode used in previous
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
279 Genshi versions, while `StrictLookup` raises exceptions when undefined
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
280 variables or members are accessed. The lenient mode is still the default in
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
281 this version, but that may change in the future. (ticket #88)
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
282 * If a variable is not necessarily defined at the top level of the template
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
283 data, the new built-in functions `defined(key)` and `value_of(key, default)`
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
284 can be used so that the template also works in strict lookup mode. These
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
285 functions were previously only available when using Genshi via the template
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
286 engine plugin (for compatibility with Kid).
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
287 * `style` attributes are no longer allowed by the `HTMLSanitizer` by default.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
288 If they are explicitly added to the set of safe attributes, any unicode
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
289 escapes in the attribute value are now handled properly.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
290 * Namespace declarations on conditional elements (for example using a `py:if`
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
291 directive`) are no longer moved to the following element when the element
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
292 originally carrying the declaration is removed from the stream (ticket #107).
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
293 * Added basic built-in support for internationalizing templates by providing
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
294 a new `Translator` class that can both extract localizable strings from a
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
295 stream, and replace those strings with their localizations at render time.
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
296 The code for this was largely taken from previous work done by Matt Good
0742f421caba Merged revisions 487-603 via svnmerge from
cmlenz
parents: 395
diff changeset
297 and David Fraser.
395
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
298
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
299
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
300 Version 0.3.6
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
301 http://svn.edgewall.org/repos/genshi/tags/0.3.6/
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
302 (Dec 11 2006, from branches/stable/0.3.x)
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
303
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
304 * The builder API now accepts streams as children of elements and fragments.
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
305
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
306
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
307 Version 0.3.5
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
308 http://svn.edgewall.org/repos/genshi/tags/0.3.5/
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
309 (Nov 22 2006, from branches/stable/0.3.x)
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
310
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
311 * Fix XPath traversal in match templates. Previously, `div/p` would be treated
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
312 the same as `div//p`, i.e. it would match all descendants and not just the
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
313 immediate children.
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
314 * Preserve whitespace in HTML `<pre>` elements also when they contain child
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
315 elements.
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
316 * Match templates no longer match their own output (ticket #77).
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
317 * Blank lines before directives in text templates are now preserved as
55cf81951686 inline branch: Merged [439:479/trunk].
cmlenz
parents: 347
diff changeset
318 expected (ticket #62).
347
c0a4114786cc cspeedups branch: Merged [423:426/trunk].
cmlenz
parents: 344
diff changeset
319
317
8ba12f886c8a Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents: 302
diff changeset
320
8ba12f886c8a Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents: 302
diff changeset
321 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
322 http://svn.edgewall.org/repos/genshi/tags/0.3.4/
323
192433e67756 Prepare for [milestone:0.3.4] release.
cmlenz
parents: 317
diff changeset
323 (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
324
8ba12f886c8a Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents: 302
diff changeset
325 * 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
326 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
327 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
328 * 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
329 directives can now contain non-ASCII strings.
285
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
330
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
331
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
332 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
333 http://svn.edgewall.org/repos/genshi/tags/0.3.3/
302
dd6a18206119 Updated change log.
cmlenz
parents: 294
diff changeset
334 (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
335
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
336 * 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
337 declare the same namespace more than once in a nested fashion.
294
2281dc992155 Updated change log.
cmlenz
parents: 288
diff changeset
338 * Fixed the parsing of HTML entity references inside attribute values, both
2281dc992155 Updated change log.
cmlenz
parents: 288
diff changeset
339 in the `XMLParser` and the `HTMLParser` classes.
302
dd6a18206119 Updated change log.
cmlenz
parents: 294
diff changeset
340 * Some changes to usage of absolute vs. relative template paths to ensure that
dd6a18206119 Updated change log.
cmlenz
parents: 294
diff changeset
341 the filenamed-keyed cache employed by the TemplateLoader doesn't mix up
dd6a18206119 Updated change log.
cmlenz
parents: 294
diff changeset
342 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
343
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
344
285
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
345 Version 0.3.2
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
346 http://svn.edgewall.org/repos/genshi/tags/0.3.2/
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
347 (Oct 12 2006, from branches/stable/0.3.x)
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
348
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
349 * Exceptions from templates now contain the absolute path to the template file
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
350 when a search path is used. This enables tracebacks to display the line in
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
351 question.
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
352 * The template engine plugin now provides three different types: "genshi" and
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
353 "genshi-markup" map to markup templates, while "genshi-text" maps to text
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
354 templates.
278
8de2620504b9 Fix the handling of namespace context for match templates.
cmlenz
parents: 277
diff changeset
355 * 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
356 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
357 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
358 defined.
285
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
359 * 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
360 serializing to HTML but declaring the XHTML namespace in the template.
285
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
361 * Improved error message raised when using the `py:for` directive on an object
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
362 that is not iterable (ticket #60).
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
363 * Fixed the XPath function `starts-with()` which was always returning true
408879d805fb Updated change log.
cmlenz
parents: 280
diff changeset
364 (ticket #61).
276
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
365
a5bc6784dade Updated change log.
cmlenz
parents: 262
diff changeset
366
260
08d954368e14 Updated change log.
cmlenz
parents: 252
diff changeset
367 Version 0.3.1
08d954368e14 Updated change log.
cmlenz
parents: 252
diff changeset
368 http://svn.edgewall.org/repos/genshi/tags/0.3.1/
262
77d92c5c23d3 Prepare [milestone:0.3.1] release.
cmlenz
parents: 260
diff changeset
369 (Sep 22 2006, from branches/stable/0.3.x)
260
08d954368e14 Updated change log.
cmlenz
parents: 252
diff changeset
370
08d954368e14 Updated change log.
cmlenz
parents: 252
diff changeset
371 * Includes and user-defined filters were not getting the correct context data
08d954368e14 Updated change log.
cmlenz
parents: 252
diff changeset
372 when used inside a match template (ticket #56).
08d954368e14 Updated change log.
cmlenz
parents: 252
diff changeset
373 * XPath patterns using the union operator (`|`) were returning only partial
08d954368e14 Updated change log.
cmlenz
parents: 252
diff changeset
374 results in some cases.
08d954368e14 Updated change log.
cmlenz
parents: 252
diff changeset
375
08d954368e14 Updated change log.
cmlenz
parents: 252
diff changeset
376
192
cda3bdfc19ed Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents: 185
diff changeset
377 Version 0.3
230
24757b771651 Renamed Markup to Genshi in repository.
cmlenz
parents: 227
diff changeset
378 http://svn.edgewall.org/repos/genshi/tags/0.3.0/
252
61050b9245c8 Add release date to change log.
cmlenz
parents: 234
diff changeset
379 (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
380
234
4501f2fef82f * Minor simplification of XPath engine.
cmlenz
parents: 230
diff changeset
381 * The project name was changed from "Markup" to "Genshi". See UPGRADE.txt
4501f2fef82f * Minor simplification of XPath engine.
cmlenz
parents: 230
diff changeset
382 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
383 * 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
384 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
385 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
386 `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
387 * 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
388 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
389 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
390 * 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
391 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
392 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
393 * 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
394 * Added serialization to plain text (ticket #41).
218
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
395 * Calling functions from template expressions with *args and/or **kwargs
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
396 now works correctly (ticket #42).
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
397 * The `TemplateLoader` class and the `Template` instances that it manages are
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
398 now thread-safe, as they no longer keep any state related to the current
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
399 processing context.
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
400 * Stream filters and serializers can now be applied using the "pipe" (bitwise
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
401 or) operator "|".
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
402 * The execution of named template functions (`py:def`) no longer silently
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
403 swallows TypeError exceptions (ticket #44).
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
404 * The XML Parser now correctly handles unicode input (ticket #43).
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
405 * HTML entities can now be used in templates without having to declare an HTML
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
406 document type.
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
407 * Error reporting on undefined entities has been fixed.
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
408 * Fix traversal of substreams by XPath expressions. For example, the path
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
409 '*/*' no longer matches non-immediate child elements, and '@*' no longer
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
410 matches the attributes of descendants.
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
411 * Fixes for `py:match` which would get confused when it should be applied
af15e231d972 Updated change log.
cmlenz
parents: 200
diff changeset
412 to multiple elements (ticket #49).
224
e4dad1145f84 Implement support for namespace prefixes in XPath expressions.
cmlenz
parents: 218
diff changeset
413 * 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
414 * Expressions now correctly handle slices (ticket #51).
234
4501f2fef82f * Minor simplification of XPath engine.
cmlenz
parents: 230
diff changeset
415 * A simple text-based template language is now included for generating
4501f2fef82f * Minor simplification of XPath engine.
cmlenz
parents: 230
diff changeset
416 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
417
cda3bdfc19ed Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents: 185
diff changeset
418
148
a0a52cf4e4de Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff changeset
419 Version 0.2
230
24757b771651 Renamed Markup to Genshi in repository.
cmlenz
parents: 227
diff changeset
420 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
421 (Aug 22 2006, from branches/stable/0.2.x)
148
a0a52cf4e4de Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff changeset
422
153
7a4086c22a64 Fix relative includes on Windows. Closes #27.
cmlenz
parents: 148
diff changeset
423 * XPath syntax errors now contain position info (ticket #20).
148
a0a52cf4e4de Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff changeset
424 * Errors in expression evaluation now contain the correct line number in the
153
7a4086c22a64 Fix relative includes on Windows. Closes #27.
cmlenz
parents: 148
diff changeset
425 template (ticket #22).
148
a0a52cf4e4de Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff changeset
426 * <script> and <style> element contents are no longer escaped when using HTML
153
7a4086c22a64 Fix relative includes on Windows. Closes #27.
cmlenz
parents: 148
diff changeset
427 serialization (ticket #24).
7a4086c22a64 Fix relative includes on Windows. Closes #27.
cmlenz
parents: 148
diff changeset
428 * In some cases expressions in templates did not get interpolated (ticket
7a4086c22a64 Fix relative includes on Windows. Closes #27.
cmlenz
parents: 148
diff changeset
429 #26).
148
a0a52cf4e4de Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff changeset
430 * 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
431 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
432 compatible with HTML user agents.
159
03a0cca25cf6 Another changelog update
cmlenz
parents: 156
diff changeset
433 * The XHTML serializer now correctly handles elements in foreign namespaces
03a0cca25cf6 Another changelog update
cmlenz
parents: 156
diff changeset
434 (such as SVG or MathML).
153
7a4086c22a64 Fix relative includes on Windows. Closes #27.
cmlenz
parents: 148
diff changeset
435 * Fixed relative includes in templates on Windows (ticket #27).
160
faea6db52ef1 Attribute order in parsed XML is now preserved.
cmlenz
parents: 159
diff changeset
436 * 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
437 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
438 XML character reference.
156
cc707c5873f3 Updated !ChangeLog to reflect [197].
cmlenz
parents: 153
diff changeset
439 * String literals in XPath expressions that contain spaces are now parsed
cc707c5873f3 Updated !ChangeLog to reflect [197].
cmlenz
parents: 153
diff changeset
440 as expected.
cc707c5873f3 Updated !ChangeLog to reflect [197].
cmlenz
parents: 153
diff changeset
441 * 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
442 contains(), false(), floor(), normalize-space(), number(), round(),
f767cf98e3e3 Implement the XPath relational operators and the `round()` function.
cmlenz
parents: 160
diff changeset
443 starts-with(), string-length(), substring(), substring-after(),
f767cf98e3e3 Implement the XPath relational operators and the `round()` function.
cmlenz
parents: 160
diff changeset
444 substring-before(), translate(), and true().
168
40b32b020fd6 Added recent changes to change log file.
cmlenz
parents: 162
diff changeset
445 * Non-ASCII characters in expressions should now be handled correctly (ticket
40b32b020fd6 Added recent changes to change log file.
cmlenz
parents: 162
diff changeset
446 #29).
40b32b020fd6 Added recent changes to change log file.
cmlenz
parents: 162
diff changeset
447 * Default values for arguments of template functions now also work with
40b32b020fd6 Added recent changes to change log file.
cmlenz
parents: 162
diff changeset
448 constants and complex expressions (they only worked for string or number
40b32b020fd6 Added recent changes to change log file.
cmlenz
parents: 162
diff changeset
449 literals before).
181
d07ce6c1dbbe Some error message improvements for template directives. Thanks to Christian Boos for the patch!
cmlenz
parents: 169
diff changeset
450 * 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
451 (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
452 * 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
453 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
454 * 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
455 values (ticket #34).
148
a0a52cf4e4de Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff changeset
456
169
ce0bfdff334c Fix syntax error in `path` module.
cmlenz
parents: 168
diff changeset
457
148
a0a52cf4e4de Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff changeset
458 Version 0.1
230
24757b771651 Renamed Markup to Genshi in repository.
cmlenz
parents: 227
diff changeset
459 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
460 (Aug 3 2006, from branches/stable/0.1.x)
a0a52cf4e4de Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff changeset
461
a0a52cf4e4de Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff changeset
462 * First public release
Copyright (C) 2012-2017 Edgewall Software