Mercurial > genshi > genshi-test
annotate ChangeLog @ 935:705727288d7e
Merge r1143 from py3k:
add support for python 3 to remaining genshi.template components:
* minor changes to track encoding=None API change in core genshi modules.
* genshi/template/directives:
* slightly odd syntax changes to make the 2to3 .next() fixer pick up *stream.next()
* minor test fix for change in behaviour of division (/) in Python 3.
* genshi/template/loader:
* add 'b' to file modes to ensure it's loaded as bytes in Python 3.
* use not isinstance(s, unicode) instead of isinstance(s, str) since the former is correctly converted by 2to3.
author | hodgestar |
---|---|
date | Fri, 18 Mar 2011 09:17:52 +0000 |
parents | 585fdbd30e05 |
children |
rev | line source |
---|---|
908
5fd4a1e28351
Fix for bug with the `HTMLFormFiller` in the handling of textareas. Thanks to Trevor Morgan for pointing this out on the mailing list.
cmlenz
parents:
897
diff
changeset
|
1 Version 0.6.1 |
5fd4a1e28351
Fix for bug with the `HTMLFormFiller` in the handling of textareas. Thanks to Trevor Morgan for pointing this out on the mailing list.
cmlenz
parents:
897
diff
changeset
|
2 http://svn.edgewall.org/repos/genshi/tags/0.6.1/ |
5fd4a1e28351
Fix for bug with the `HTMLFormFiller` in the handling of textareas. Thanks to Trevor Morgan for pointing this out on the mailing list.
cmlenz
parents:
897
diff
changeset
|
3 (???, from branches/stable/0.6.x) |
5fd4a1e28351
Fix for bug with the `HTMLFormFiller` in the handling of textareas. Thanks to Trevor Morgan for pointing this out on the mailing list.
cmlenz
parents:
897
diff
changeset
|
4 |
5fd4a1e28351
Fix for bug with the `HTMLFormFiller` in the handling of textareas. Thanks to Trevor Morgan for pointing this out on the mailing list.
cmlenz
parents:
897
diff
changeset
|
5 * Fix for error in how `HTMLFormFiller` would handle `textarea` elements if |
5fd4a1e28351
Fix for bug with the `HTMLFormFiller` in the handling of textareas. Thanks to Trevor Morgan for pointing this out on the mailing list.
cmlenz
parents:
897
diff
changeset
|
6 no value was not supplied form them. |
909
585fdbd30e05
Fix handling of checkboxes and radio buttons with an empty value attribute in `HTMLFormFiller`. Thanks to Benoit Hirbec for pointing out the problem and providing a patch.
cmlenz
parents:
908
diff
changeset
|
7 * The `HTMLFormFiller` now correctly handles check boxes and radio buttons |
585fdbd30e05
Fix handling of checkboxes and radio buttons with an empty value attribute in `HTMLFormFiller`. Thanks to Benoit Hirbec for pointing out the problem and providing a patch.
cmlenz
parents:
908
diff
changeset
|
8 with an empty `value` attribute. |
908
5fd4a1e28351
Fix for bug with the `HTMLFormFiller` in the handling of textareas. Thanks to Trevor Morgan for pointing this out on the mailing list.
cmlenz
parents:
897
diff
changeset
|
9 |
5fd4a1e28351
Fix for bug with the `HTMLFormFiller` in the handling of textareas. Thanks to Trevor Morgan for pointing this out on the mailing list.
cmlenz
parents:
897
diff
changeset
|
10 |
756 | 11 Version 0.6 |
12 http://svn.edgewall.org/repos/genshi/tags/0.6.0/ | |
897 | 13 (Apr 22 2010, from branches/stable/0.6.x) |
756 | 14 |
15 * Support for Python 2.3 has been dropped. | |
836 | 16 * Rewrite of the XPath evaluation engine for better performance and improved |
17 correctness. This is the result of integrating work done by Marcin Kurczych | |
18 during GSoC 2008. | |
19 * Updated the Python AST processing for template code evaluation to use the | |
20 `_ast` module instead of the deprecated `compiler` package, including an | |
881
fc1e28cb0bee
AST transformer now also clones excepthandler nodes (see #379).
cmlenz
parents:
877
diff
changeset
|
21 adapter layer for Python 2.4. This, too, is the result of integrating work |
fc1e28cb0bee
AST transformer now also clones excepthandler nodes (see #379).
cmlenz
parents:
877
diff
changeset
|
22 done by Marcin Kurczych during GSoC 2008. |
897 | 23 * Added caching in the serialization stage for improved performance in some |
24 cases. | |
840
878306a5b465
Ported some of the HTML sanitization improvements from Trac (see [T7658]).
cmlenz
parents:
838
diff
changeset
|
25 * Various improvements to the HTML sanitization filter. |
785
64bf70856f02
Fix for #250: ignore expressions in attribute values when inside `i18n:msg` elements.
cmlenz
parents:
778
diff
changeset
|
26 * Fix problem with I18n filter that would get confused by expressions in |
64bf70856f02
Fix for #250: ignore expressions in attribute values when inside `i18n:msg` elements.
cmlenz
parents:
778
diff
changeset
|
27 attribute values when inside an `i18n:msg` block (ticket #250). |
800
1d7b582b09a4
Fix for filter transformation, closing #290. Thanks to Stephen Compall for reporting the problem and providing a patch.
cmlenz
parents:
785
diff
changeset
|
28 * Fix problem with the transformation filter dropping events after the |
1d7b582b09a4
Fix for filter transformation, closing #290. Thanks to Stephen Compall for reporting the problem and providing a patch.
cmlenz
parents:
785
diff
changeset
|
29 selection (ticket #290). |
803
92b9b647e1fe
`for` loops in template code blocks should not establish their own locals block. Closes #259.
cmlenz
parents:
800
diff
changeset
|
30 * `for` loops in template code blocks no longer establish their own locals |
92b9b647e1fe
`for` loops in template code blocks should not establish their own locals block. Closes #259.
cmlenz
parents:
800
diff
changeset
|
31 scope, meaning you can now access variables assigned in the loop outside |
92b9b647e1fe
`for` loops in template code blocks should not establish their own locals block. Closes #259.
cmlenz
parents:
800
diff
changeset
|
32 of the loop, just as you can in regular Python code (ticket #259). |
806
9871e6ca89b0
Fix for import statements in function defs in template code blocks (#276).
cmlenz
parents:
803
diff
changeset
|
33 * Import statements inside function definitions in template code blocks no |
9871e6ca89b0
Fix for import statements in function defs in template code blocks (#276).
cmlenz
parents:
803
diff
changeset
|
34 longer result in an UndefinedError when the imported name is accessed |
9871e6ca89b0
Fix for import statements in function defs in template code blocks (#276).
cmlenz
parents:
803
diff
changeset
|
35 (ticket #276). |
838
80bce2f6f9fe
Move ChangeLog entry for [1046] to 0.5.2 release section.
cmlenz
parents:
837
diff
changeset
|
36 * Fixed handling of relative URLs with fragment identifiers containing colons |
80bce2f6f9fe
Move ChangeLog entry for [1046] to 0.5.2 release section.
cmlenz
parents:
837
diff
changeset
|
37 in the `HTMLSanitizer` (ticket #274). |
841
67ec9a402bdc
Added an option to the `HTMLFiller` to also populate password fields.
cmlenz
parents:
840
diff
changeset
|
38 * Added an option to the `HTMLFiller` to also populate password fields. |
870
1ea88e82713d
Apply patch Felix Schwarz that finally fixes the duplicated output in match template processing. Thanks so much!
cmlenz
parents:
841
diff
changeset
|
39 * Match template processing no longer produces unwanted duplicate output in |
1ea88e82713d
Apply patch Felix Schwarz that finally fixes the duplicated output in match template processing. Thanks so much!
cmlenz
parents:
841
diff
changeset
|
40 some cases (ticket #254). |
877 | 41 * Templates instantiated without a loader now get an implicit loader based on |
42 their file path, or the current directory as a fallback (ticket #320). | |
897 | 43 * Added documentation for the `TemplateLoader`. |
44 * Enhanced documentation for internationalization. | |
785
64bf70856f02
Fix for #250: ignore expressions in attribute values when inside `i18n:msg` elements.
cmlenz
parents:
778
diff
changeset
|
45 |
64bf70856f02
Fix for #250: ignore expressions in attribute values when inside `i18n:msg` elements.
cmlenz
parents:
778
diff
changeset
|
46 |
758
0ea32786b624
Fix problem with nested match templates not being applied when buffering on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the problem and providing a test case.
cmlenz
parents:
756
diff
changeset
|
47 Version 0.5.1 |
0ea32786b624
Fix problem with nested match templates not being applied when buffering on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the problem and providing a test case.
cmlenz
parents:
756
diff
changeset
|
48 http://svn.edgewall.org/repos/genshi/tags/0.5.1/ |
778 | 49 (Jul 9 2008, from branches/stable/0.5.x) |
758
0ea32786b624
Fix problem with nested match templates not being applied when buffering on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the problem and providing a test case.
cmlenz
parents:
756
diff
changeset
|
50 |
0ea32786b624
Fix problem with nested match templates not being applied when buffering on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the problem and providing a test case.
cmlenz
parents:
756
diff
changeset
|
51 * Fix problem with nested match templates not being applied when buffering |
0ea32786b624
Fix problem with nested match templates not being applied when buffering on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the problem and providing a test case.
cmlenz
parents:
756
diff
changeset
|
52 on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the |
0ea32786b624
Fix problem with nested match templates not being applied when buffering on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the problem and providing a test case.
cmlenz
parents:
756
diff
changeset
|
53 problem and providing a test case! |
762
2018fa1285f7
Fix for I18n filter problem with lazy translation functions. Closes #145.
cmlenz
parents:
758
diff
changeset
|
54 * Fix problem in `Translator` filter that would cause the translation of |
2018fa1285f7
Fix for I18n filter problem with lazy translation functions. Closes #145.
cmlenz
parents:
758
diff
changeset
|
55 text nodes to fail if the translation function returned an object that was |
2018fa1285f7
Fix for I18n filter problem with lazy translation functions. Closes #145.
cmlenz
parents:
758
diff
changeset
|
56 not directly a string, but rather something like an instance of the |
2018fa1285f7
Fix for I18n filter problem with lazy translation functions. Closes #145.
cmlenz
parents:
758
diff
changeset
|
57 `LazyProxy` class in Babel (ticket #145). |
766
584aa6bfbe54
Fix bug where in some cases match templates would incorrectly applied multiple times.
cmlenz
parents:
762
diff
changeset
|
58 * Fix problem with match templates incorrectly being applied multiple times. |
769
834e8fd2d822
Includes from templates loaded via an absolute path now include the correct file in nested directories as long if no search path has been configured. Closes #240.
cmlenz
parents:
766
diff
changeset
|
59 * Includes from templates loaded via an absolute path now include the correct |
834e8fd2d822
Includes from templates loaded via an absolute path now include the correct file in nested directories as long if no search path has been configured. Closes #240.
cmlenz
parents:
766
diff
changeset
|
60 file in nested directories as long if no search path has been configured |
834e8fd2d822
Includes from templates loaded via an absolute path now include the correct file in nested directories as long if no search path has been configured. Closes #240.
cmlenz
parents:
766
diff
changeset
|
61 (ticket #240). |
771
b4c973fbe6f5
Unbuffered match templates could result in parts of the matched content being included in the output if the match template didn't actually consume it via one or more calls to the `select()` function. Closes #243. Thanks to Felix Schwarz for the report and test case.
cmlenz
parents:
769
diff
changeset
|
62 * Unbuffered match templates could result in parts of the matched content |
b4c973fbe6f5
Unbuffered match templates could result in parts of the matched content being included in the output if the match template didn't actually consume it via one or more calls to the `select()` function. Closes #243. Thanks to Felix Schwarz for the report and test case.
cmlenz
parents:
769
diff
changeset
|
63 being included in the output if the match template didn't actually consume |
b4c973fbe6f5
Unbuffered match templates could result in parts of the matched content being included in the output if the match template didn't actually consume it via one or more calls to the `select()` function. Closes #243. Thanks to Felix Schwarz for the report and test case.
cmlenz
parents:
769
diff
changeset
|
64 it via one or more calls to the `select()` function (ticket #243). |
758
0ea32786b624
Fix problem with nested match templates not being applied when buffering on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the problem and providing a test case.
cmlenz
parents:
756
diff
changeset
|
65 |
0ea32786b624
Fix problem with nested match templates not being applied when buffering on the outer `py:match` is disabled. Thanks to Erik Bray for reporting the problem and providing a test case.
cmlenz
parents:
756
diff
changeset
|
66 |
475
bb939ed3058c
Added include directive for text templates (#115). Thanks to Alastair for the original patch.
cmlenz
parents:
473
diff
changeset
|
67 Version 0.5 |
bb939ed3058c
Added include directive for text templates (#115). Thanks to Alastair for the original patch.
cmlenz
parents:
473
diff
changeset
|
68 http://svn.edgewall.org/repos/genshi/tags/0.5.0/ |
745 | 69 (Jun 9 2008, from branches/stable/0.5.x) |
475
bb939ed3058c
Added include directive for text templates (#115). Thanks to Alastair for the original patch.
cmlenz
parents:
473
diff
changeset
|
70 |
bb939ed3058c
Added include directive for text templates (#115). Thanks to Alastair for the original patch.
cmlenz
parents:
473
diff
changeset
|
71 * Added #include directive for text templates (ticket #115). |
501
3073ac688651
Added new markup transformation filter contributed by Alec Thomas (#122). This provides gorgeous jQuery-inspired stream transformation capabilities based on XPath expressions.
cmlenz
parents:
494
diff
changeset
|
72 * Added new markup transformation filter contributed by Alec Thomas. This |
3073ac688651
Added new markup transformation filter contributed by Alec Thomas (#122). This provides gorgeous jQuery-inspired stream transformation capabilities based on XPath expressions.
cmlenz
parents:
494
diff
changeset
|
73 provides gorgeous jQuery-inspired stream transformation capabilities based |
3073ac688651
Added new markup transformation filter contributed by Alec Thomas (#122). This provides gorgeous jQuery-inspired stream transformation capabilities based on XPath expressions.
cmlenz
parents:
494
diff
changeset
|
74 on XPath expressions. |
524
49848aaa7839
Add special handling for `xml:lang` to HTML/XHTML serialization.
cmlenz
parents:
522
diff
changeset
|
75 * When using HTML or XHTML serialization, the `xml:lang` attribute is |
49848aaa7839
Add special handling for `xml:lang` to HTML/XHTML serialization.
cmlenz
parents:
522
diff
changeset
|
76 automatically translated to the `lang` attribute which HTML user agents |
49848aaa7839
Add special handling for `xml:lang` to HTML/XHTML serialization.
cmlenz
parents:
522
diff
changeset
|
77 understand. |
537 | 78 * Added support for the XPath 2 `matches()` function in XPath expressions, |
79 which allow matching against regular expressions. | |
545
6e21c89d9255
Support for Python code blocks in templates can now be disabled. Closes #123.
cmlenz
parents:
538
diff
changeset
|
80 * Support for Python code blocks in templates can now be disabled |
6e21c89d9255
Support for Python code blocks in templates can now be disabled. Closes #123.
cmlenz
parents:
538
diff
changeset
|
81 (ticket #123). |
548
c2e039c7e439
Implement static includes, which improves performance a bit when auto reloading is disabled.
cmlenz
parents:
545
diff
changeset
|
82 * Includes are now processed when the template is parsed if possible, but |
c2e039c7e439
Implement static includes, which improves performance a bit when auto reloading is disabled.
cmlenz
parents:
545
diff
changeset
|
83 only if the template loader is not set to do automatic reloading. Included |
c2e039c7e439
Implement static includes, which improves performance a bit when auto reloading is disabled.
cmlenz
parents:
545
diff
changeset
|
84 templates are basically inlined into the including template, which can |
c2e039c7e439
Implement static includes, which improves performance a bit when auto reloading is disabled.
cmlenz
parents:
545
diff
changeset
|
85 speed up rendering of that template a bit. |
592
7145e4eba2ec
Add a new syntax for text templates, which is available alongside the old syntax for now. The new syntax is more poweful and flexible, using Django-style directive notation.
cmlenz
parents:
590
diff
changeset
|
86 * Added new syntax for text templates, which is more powerful and flexible |
609
237050080827
Add support for Python code blocks in text templates using the new syntax.
cmlenz
parents:
605
diff
changeset
|
87 with respect to white-space and line breaks. It also supports Python code |
237050080827
Add support for Python code blocks in text templates using the new syntax.
cmlenz
parents:
605
diff
changeset
|
88 blocks. The old syntax is still available and the default for now, but in a |
237050080827
Add support for Python code blocks in text templates using the new syntax.
cmlenz
parents:
605
diff
changeset
|
89 future release the new syntax will become the default, and some time after |
237050080827
Add support for Python code blocks in text templates using the new syntax.
cmlenz
parents:
605
diff
changeset
|
90 that the old syntax will be removed. |
603 | 91 * Added support for passing optimization hints to `<py:match>` directives, |
92 which can speed up match templates in many cases, for example when a match | |
93 template should only be applied once to a stream, or when it should not be | |
94 applied recursively. | |
605
bc5faca93699
Text templates now default to rendering as plain text; it is no longer necessary to explicitly specify the "text" method to the `render()` or `serialize()` method of the generated markup stream. See tickets #62 and #118.
cmlenz
parents:
603
diff
changeset
|
95 * Text templates now default to rendering as plain text; it is no longer |
bc5faca93699
Text templates now default to rendering as plain text; it is no longer necessary to explicitly specify the "text" method to the `render()` or `serialize()` method of the generated markup stream. See tickets #62 and #118.
cmlenz
parents:
603
diff
changeset
|
96 necessary to explicitly specify the "text" method to the `render()` or |
bc5faca93699
Text templates now default to rendering as plain text; it is no longer necessary to explicitly specify the "text" method to the `render()` or `serialize()` method of the generated markup stream. See tickets #62 and #118.
cmlenz
parents:
603
diff
changeset
|
97 `serialize()` method of the generated markup stream. |
658
a445c9e5ee96
The `TextSerializer` class no longer strips all markup in text by default, so that it is still possible to use the Genshi `escape` function even with text templates. The old behavior is available via the `strip_markup` option of the serializer. Closes #146.
cmlenz
parents:
657
diff
changeset
|
98 * XInclude elements in markup templates now support the `parse` attribute; |
a445c9e5ee96
The `TextSerializer` class no longer strips all markup in text by default, so that it is still possible to use the Genshi `escape` function even with text templates. The old behavior is available via the `strip_markup` option of the serializer. Closes #146.
cmlenz
parents:
657
diff
changeset
|
99 when set to "xml" (the default), the include is processed as before, but |
a445c9e5ee96
The `TextSerializer` class no longer strips all markup in text by default, so that it is still possible to use the Genshi `escape` function even with text templates. The old behavior is available via the `strip_markup` option of the serializer. Closes #146.
cmlenz
parents:
657
diff
changeset
|
100 when set to "text", the included template is parsed as a text template using |
a445c9e5ee96
The `TextSerializer` class no longer strips all markup in text by default, so that it is still possible to use the Genshi `escape` function even with text templates. The old behavior is available via the `strip_markup` option of the serializer. Closes #146.
cmlenz
parents:
657
diff
changeset
|
101 the new syntax (ticket #101). |
650
0413c8817a3c
Code blocks in match templates are now executed. Closes #155. Many thanks to Andrew Sutherland for the patch!
cmlenz
parents:
629
diff
changeset
|
102 * Python code blocks inside match templates are now executed (ticket #155). |
651
168dcc0b4782
The template engine plugin no longer adds the `default_doctype` when the `fragment` parameter is `True`. Thanks to dbrattli for the patch!
cmlenz
parents:
650
diff
changeset
|
103 * The template engine plugin no longer adds the `default_doctype` when the |
168dcc0b4782
The template engine plugin no longer adds the `default_doctype` when the `fragment` parameter is `True`. Thanks to dbrattli for the patch!
cmlenz
parents:
650
diff
changeset
|
104 `fragment` parameter is `True`. |
655
b090bf737111
The `striptags` function now also removes HTML/XML-style comments. Closes #150. Thanks to Armin Ronacher for the report and suggested fix.
cmlenz
parents:
651
diff
changeset
|
105 * The `striptags` function now also removes HTML/XML-style comments (ticket |
b090bf737111
The `striptags` function now also removes HTML/XML-style comments. Closes #150. Thanks to Armin Ronacher for the report and suggested fix.
cmlenz
parents:
651
diff
changeset
|
106 #150). |
657 | 107 * The `py:replace` directive can now also be used as an element, with an |
108 attribute named `value` (ticket #144). | |
658
a445c9e5ee96
The `TextSerializer` class no longer strips all markup in text by default, so that it is still possible to use the Genshi `escape` function even with text templates. The old behavior is available via the `strip_markup` option of the serializer. Closes #146.
cmlenz
parents:
657
diff
changeset
|
109 * The `TextSerializer` class no longer strips all markup in text by default, |
a445c9e5ee96
The `TextSerializer` class no longer strips all markup in text by default, so that it is still possible to use the Genshi `escape` function even with text templates. The old behavior is available via the `strip_markup` option of the serializer. Closes #146.
cmlenz
parents:
657
diff
changeset
|
110 so that it is still possible to use the Genshi `escape` function even with |
a445c9e5ee96
The `TextSerializer` class no longer strips all markup in text by default, so that it is still possible to use the Genshi `escape` function even with text templates. The old behavior is available via the `strip_markup` option of the serializer. Closes #146.
cmlenz
parents:
657
diff
changeset
|
111 text templates. The old behavior is available via the `strip_markup` option |
a445c9e5ee96
The `TextSerializer` class no longer strips all markup in text by default, so that it is still possible to use the Genshi `escape` function even with text templates. The old behavior is available via the `strip_markup` option of the serializer. Closes #146.
cmlenz
parents:
657
diff
changeset
|
112 of the serializer (ticket #146). |
682
75795aadf920
Assigning to a variable named `data` in a Python code block no longer breaks context lookup. We now use the name `__data__` for internal data, hoping that that name is not as commonly used in templates.
cmlenz
parents:
658
diff
changeset
|
113 * Assigning to a variable named `data` in a Python code block no longer |
75795aadf920
Assigning to a variable named `data` in a Python code block no longer breaks context lookup. We now use the name `__data__` for internal data, hoping that that name is not as commonly used in templates.
cmlenz
parents:
658
diff
changeset
|
114 breaks context lookup. |
688
88814cc26d2b
The `Stream.render` now accepts an optional `out` parameter that can be used to pass in a writable file-like object to use for assembling the output, instead of building a big string and returning it.
cmlenz
parents:
682
diff
changeset
|
115 * The `Stream.render` now accepts an optional `out` parameter that can be |
88814cc26d2b
The `Stream.render` now accepts an optional `out` parameter that can be used to pass in a writable file-like object to use for assembling the output, instead of building a big string and returning it.
cmlenz
parents:
682
diff
changeset
|
116 used to pass in a writable file-like object to use for assembling the |
88814cc26d2b
The `Stream.render` now accepts an optional `out` parameter that can be used to pass in a writable file-like object to use for assembling the output, instead of building a big string and returning it.
cmlenz
parents:
682
diff
changeset
|
117 output, instead of building a big string and returning it. |
689
46a21414151b
The XHTML serializer now strips `xml:space` attributes as they are only allowed on very few tags.
cmlenz
parents:
688
diff
changeset
|
118 * The XHTML serializer now strips `xml:space` attributes as they are only |
46a21414151b
The XHTML serializer now strips `xml:space` attributes as they are only allowed on very few tags.
cmlenz
parents:
688
diff
changeset
|
119 allowed on very few tags. |
694
812671b40022
Match templates are now applied in a more controlled fashion: in the order they are declared in the template source, all match templates up to (and including) the matching template itself are applied to the matched content, whereas the match templates declared after the matching template are only applied to the generated content. Fixes #186. Many thanks to Matt Chaput for reporting the problem and providing a test case.
cmlenz
parents:
689
diff
changeset
|
120 * Match templates are now applied in a more controlled fashion: in the order |
812671b40022
Match templates are now applied in a more controlled fashion: in the order they are declared in the template source, all match templates up to (and including) the matching template itself are applied to the matched content, whereas the match templates declared after the matching template are only applied to the generated content. Fixes #186. Many thanks to Matt Chaput for reporting the problem and providing a test case.
cmlenz
parents:
689
diff
changeset
|
121 they are declared in the template source, all match templates up to (and |
812671b40022
Match templates are now applied in a more controlled fashion: in the order they are declared in the template source, all match templates up to (and including) the matching template itself are applied to the matched content, whereas the match templates declared after the matching template are only applied to the generated content. Fixes #186. Many thanks to Matt Chaput for reporting the problem and providing a test case.
cmlenz
parents:
689
diff
changeset
|
122 including) the matching template itself are applied to the matched content, |
812671b40022
Match templates are now applied in a more controlled fashion: in the order they are declared in the template source, all match templates up to (and including) the matching template itself are applied to the matched content, whereas the match templates declared after the matching template are only applied to the generated content. Fixes #186. Many thanks to Matt Chaput for reporting the problem and providing a test case.
cmlenz
parents:
689
diff
changeset
|
123 whereas the match templates declared after the matching template are only |
812671b40022
Match templates are now applied in a more controlled fashion: in the order they are declared in the template source, all match templates up to (and including) the matching template itself are applied to the matched content, whereas the match templates declared after the matching template are only applied to the generated content. Fixes #186. Many thanks to Matt Chaput for reporting the problem and providing a test case.
cmlenz
parents:
689
diff
changeset
|
124 applied to the generated content (ticket #186). |
714
7e6496bde18a
The `Template` class and its subclasses, as well as the interpolation API, now take an `filepath` parameter instead of `basedir`. Closes #207. Thanks to Waldemar Kornewald for the patch.
cmlenz
parents:
713
diff
changeset
|
125 * The `TemplateLoader` class now provides an `_instantiate()` method that can |
695
3d11d6b1d3d4
The `TemplateLoader` class now provides an `instantiate()` method that can be overridden by subclasses to implement advanced template instantiation logic. Fixes #204.
cmlenz
parents:
694
diff
changeset
|
126 be overridden by subclasses to implement advanced template instantiation |
3d11d6b1d3d4
The `TemplateLoader` class now provides an `instantiate()` method that can be overridden by subclasses to implement advanced template instantiation logic. Fixes #204.
cmlenz
parents:
694
diff
changeset
|
127 logic (ticket #204). |
696
87b8e23610d4
More flexible template loader allowing for loading from package data and dispatching to different template directories based on path prefix. Can be easily extended for using custom template loading. Closes #182.
cmlenz
parents:
695
diff
changeset
|
128 * The search path of the `TemplateLoader` class can now contain ''load |
87b8e23610d4
More flexible template loader allowing for loading from package data and dispatching to different template directories based on path prefix. Can be easily extended for using custom template loading. Closes #182.
cmlenz
parents:
695
diff
changeset
|
129 functions'' in addition to path strings. A load function is passed the |
87b8e23610d4
More flexible template loader allowing for loading from package data and dispatching to different template directories based on path prefix. Can be easily extended for using custom template loading. Closes #182.
cmlenz
parents:
695
diff
changeset
|
130 name of the requested template file, and should return a file-like object |
87b8e23610d4
More flexible template loader allowing for loading from package data and dispatching to different template directories based on path prefix. Can be easily extended for using custom template loading. Closes #182.
cmlenz
parents:
695
diff
changeset
|
131 and some metadata. New load functions are supplied for loading from egg |
87b8e23610d4
More flexible template loader allowing for loading from package data and dispatching to different template directories based on path prefix. Can be easily extended for using custom template loading. Closes #182.
cmlenz
parents:
695
diff
changeset
|
132 package data, and loading from different loaders depending on the path |
87b8e23610d4
More flexible template loader allowing for loading from package data and dispatching to different template directories based on path prefix. Can be easily extended for using custom template loading. Closes #182.
cmlenz
parents:
695
diff
changeset
|
133 prefix of the requested filename (ticket #182). |
700
8d079cee6822
Add option for unbuffered match template processing, which could cause excessive memory usage. Closes #190.
cmlenz
parents:
696
diff
changeset
|
134 * Match templates can now be processed without keeping the complete matched |
8d079cee6822
Add option for unbuffered match template processing, which could cause excessive memory usage. Closes #190.
cmlenz
parents:
696
diff
changeset
|
135 content in memory, which could cause excessive memory use on long pages. |
8d079cee6822
Add option for unbuffered match template processing, which could cause excessive memory usage. Closes #190.
cmlenz
parents:
696
diff
changeset
|
136 The buffering can be disabled using the new `buffer` optimization hint on |
8d079cee6822
Add option for unbuffered match template processing, which could cause excessive memory usage. Closes #190.
cmlenz
parents:
696
diff
changeset
|
137 the `<py:match>` directive. |
702
ebae1774d188
Improve error reporting when accessing an attribute in a Python expression raises an `AttributeError`. Closes #191. Thanks to Michele Cella for the patch!
cmlenz
parents:
700
diff
changeset
|
138 * Improve error reporting when accessing an attribute in a Python expression |
ebae1774d188
Improve error reporting when accessing an attribute in a Python expression raises an `AttributeError`. Closes #191. Thanks to Michele Cella for the patch!
cmlenz
parents:
700
diff
changeset
|
139 raises an `AttributeError` (ticket #191). |
713
a58a50e89d04
The `Markup` class now supports mappings for right hand of the `%` (modulo) operator in the same way the Python string classes do, except that the substituted values are escape. Also, the special constructor which took positional arguments that would be substituted was removed. Thus the `Markup` class now supports the same arguments as that of its `unicode` base class. Closes #211. Many thanks to Christian Boos for the patch!
cmlenz
parents:
702
diff
changeset
|
140 * The `Markup` class now supports mappings for right hand of the `%` (modulo) |
a58a50e89d04
The `Markup` class now supports mappings for right hand of the `%` (modulo) operator in the same way the Python string classes do, except that the substituted values are escape. Also, the special constructor which took positional arguments that would be substituted was removed. Thus the `Markup` class now supports the same arguments as that of its `unicode` base class. Closes #211. Many thanks to Christian Boos for the patch!
cmlenz
parents:
702
diff
changeset
|
141 operator in the same way the Python string classes do, except that the |
a58a50e89d04
The `Markup` class now supports mappings for right hand of the `%` (modulo) operator in the same way the Python string classes do, except that the substituted values are escape. Also, the special constructor which took positional arguments that would be substituted was removed. Thus the `Markup` class now supports the same arguments as that of its `unicode` base class. Closes #211. Many thanks to Christian Boos for the patch!
cmlenz
parents:
702
diff
changeset
|
142 substituted values are escape. Also, the special constructor which took |
a58a50e89d04
The `Markup` class now supports mappings for right hand of the `%` (modulo) operator in the same way the Python string classes do, except that the substituted values are escape. Also, the special constructor which took positional arguments that would be substituted was removed. Thus the `Markup` class now supports the same arguments as that of its `unicode` base class. Closes #211. Many thanks to Christian Boos for the patch!
cmlenz
parents:
702
diff
changeset
|
143 positional arguments that would be substituted was removed. Thus the |
a58a50e89d04
The `Markup` class now supports mappings for right hand of the `%` (modulo) operator in the same way the Python string classes do, except that the substituted values are escape. Also, the special constructor which took positional arguments that would be substituted was removed. Thus the `Markup` class now supports the same arguments as that of its `unicode` base class. Closes #211. Many thanks to Christian Boos for the patch!
cmlenz
parents:
702
diff
changeset
|
144 `Markup` class now supports the same arguments as that of its `unicode` |
a58a50e89d04
The `Markup` class now supports mappings for right hand of the `%` (modulo) operator in the same way the Python string classes do, except that the substituted values are escape. Also, the special constructor which took positional arguments that would be substituted was removed. Thus the `Markup` class now supports the same arguments as that of its `unicode` base class. Closes #211. Many thanks to Christian Boos for the patch!
cmlenz
parents:
702
diff
changeset
|
145 base class (ticket #211). |
714
7e6496bde18a
The `Template` class and its subclasses, as well as the interpolation API, now take an `filepath` parameter instead of `basedir`. Closes #207. Thanks to Waldemar Kornewald for the patch.
cmlenz
parents:
713
diff
changeset
|
146 * The `Template` class and its subclasses, as well as the interpolation API, |
7e6496bde18a
The `Template` class and its subclasses, as well as the interpolation API, now take an `filepath` parameter instead of `basedir`. Closes #207. Thanks to Waldemar Kornewald for the patch.
cmlenz
parents:
713
diff
changeset
|
147 now take an `filepath` parameter instead of `basedir` (ticket #207). |
729 | 148 * The `XHTMLSerializer` now has a `drop_xml_decl` option that defaults to |
149 `True`. Setting it to `False` will cause any XML decl in the serialized | |
150 stream to be included in the output as it would for XML serialization. | |
739 | 151 * Add support for a protocol that would allow interoperability of different |
152 Python packages that generate and/or consume markup, based on the special | |
153 `__html__()` method (ticket #202). | |
475
bb939ed3058c
Added include directive for text templates (#115). Thanks to Alastair for the original patch.
cmlenz
parents:
473
diff
changeset
|
154 |
bb939ed3058c
Added include directive for text templates (#115). Thanks to Alastair for the original patch.
cmlenz
parents:
473
diff
changeset
|
155 |
579
71e3205925e6
Fix for augmented assignments to local variables. Thanks to Erik Bray for reporting the problem.
cmlenz
parents:
574
diff
changeset
|
156 Version 0.4.4 |
71e3205925e6
Fix for augmented assignments to local variables. Thanks to Erik Bray for reporting the problem.
cmlenz
parents:
574
diff
changeset
|
157 http://svn.edgewall.org/repos/genshi/tags/0.4.4/ |
596
f436c7db99f5
Follow-up to [708]. The added `extract_text` option wasn't actually being handled by the Babel extraction plugin.
cmlenz
parents:
594
diff
changeset
|
158 (Aug 14, 2007, from branches/stable/0.4.x) |
579
71e3205925e6
Fix for augmented assignments to local variables. Thanks to Erik Bray for reporting the problem.
cmlenz
parents:
574
diff
changeset
|
159 |
71e3205925e6
Fix for augmented assignments to local variables. Thanks to Erik Bray for reporting the problem.
cmlenz
parents:
574
diff
changeset
|
160 * Fixed augmented assignment to local variables in Python code blocks. |
588 | 161 * Fixed handling of nested function and class definitions in Python code |
162 blocks. | |
590
880b1a75d046
Fix includes so that they again raise an exception when the included template is not found and no fallback has been provided.
cmlenz
parents:
588
diff
changeset
|
163 * Includes were not raising `TemplateNotFound` exceptions even when no |
880b1a75d046
Fix includes so that they again raise an exception when the included template is not found and no fallback has been provided.
cmlenz
parents:
588
diff
changeset
|
164 fallback has been specified. That has been corrected. |
880b1a75d046
Fix includes so that they again raise an exception when the included template is not found and no fallback has been provided.
cmlenz
parents:
588
diff
changeset
|
165 * The template loader now raises a `TemplateNotFound` error when a previously |
880b1a75d046
Fix includes so that they again raise an exception when the included template is not found and no fallback has been provided.
cmlenz
parents:
588
diff
changeset
|
166 cached template is removed or renamed, where it previously was passing up |
880b1a75d046
Fix includes so that they again raise an exception when the included template is not found and no fallback has been provided.
cmlenz
parents:
588
diff
changeset
|
167 an `OSError`. |
594
0fb43dc2e165
Add option to I18n filter to only extract strings in gettext function calls.
cmlenz
parents:
592
diff
changeset
|
168 * The Genshi I18n filter can be configured to only extract messages found in |
596
f436c7db99f5
Follow-up to [708]. The added `extract_text` option wasn't actually being handled by the Babel extraction plugin.
cmlenz
parents:
594
diff
changeset
|
169 `gettext` function calls, ignoring any text nodes and attribute values |
f436c7db99f5
Follow-up to [708]. The added `extract_text` option wasn't actually being handled by the Babel extraction plugin.
cmlenz
parents:
594
diff
changeset
|
170 (ticket #138). |
579
71e3205925e6
Fix for augmented assignments to local variables. Thanks to Erik Bray for reporting the problem.
cmlenz
parents:
574
diff
changeset
|
171 |
71e3205925e6
Fix for augmented assignments to local variables. Thanks to Erik Bray for reporting the problem.
cmlenz
parents:
574
diff
changeset
|
172 |
535
c8806216aec4
The I18n filter no longer extracts or translates literal strings in attribute values that also contain expressions.
cmlenz
parents:
528
diff
changeset
|
173 Version 0.4.3 |
c8806216aec4
The I18n filter no longer extracts or translates literal strings in attribute values that also contain expressions.
cmlenz
parents:
528
diff
changeset
|
174 http://svn.edgewall.org/repos/genshi/tags/0.4.3/ |
574 | 175 (Jul 17 2007, from branches/stable/0.4.x) |
535
c8806216aec4
The I18n filter no longer extracts or translates literal strings in attribute values that also contain expressions.
cmlenz
parents:
528
diff
changeset
|
176 |
c8806216aec4
The I18n filter no longer extracts or translates literal strings in attribute values that also contain expressions.
cmlenz
parents:
528
diff
changeset
|
177 * The I18n filter no longer extracts or translates literal strings in |
c8806216aec4
The I18n filter no longer extracts or translates literal strings in attribute values that also contain expressions.
cmlenz
parents:
528
diff
changeset
|
178 attribute values that also contain expressions. |
538
19c7dc1e4dd5
Add `loader_callback` option to plugin interface as requested in #130.
cmlenz
parents:
537
diff
changeset
|
179 * Added `loader_callback` option to plugin interface, which allows specifying |
19c7dc1e4dd5
Add `loader_callback` option to plugin interface as requested in #130.
cmlenz
parents:
537
diff
changeset
|
180 a callback function that the template loader should invoke whenever a new |
19c7dc1e4dd5
Add `loader_callback` option to plugin interface as requested in #130.
cmlenz
parents:
537
diff
changeset
|
181 template is loaded (ticket #130). Note that the value for this option can |
19c7dc1e4dd5
Add `loader_callback` option to plugin interface as requested in #130.
cmlenz
parents:
537
diff
changeset
|
182 not be specified as a string, only as an actual function object, which means |
19c7dc1e4dd5
Add `loader_callback` option to plugin interface as requested in #130.
cmlenz
parents:
537
diff
changeset
|
183 it is not available for use through configuration files. |
550 | 184 * The I18n filter now extracts messages from gettext functions even inside |
185 ignored tags (ticket #132). | |
556
d5cb5c200045
The HTML sanitizer now strips any CSS comments in style attributes, which could previously be used to hide malicious property values.
cmlenz
parents:
550
diff
changeset
|
186 * The HTML sanitizer now strips any CSS comments in style attributes, which |
d5cb5c200045
The HTML sanitizer now strips any CSS comments in style attributes, which could previously be used to hide malicious property values.
cmlenz
parents:
550
diff
changeset
|
187 could previously be used to hide malicious property values. |
571
5815ad5f75a4
* Cleaned up the implementation of the `HTMLSanitizer`.
cmlenz
parents:
569
diff
changeset
|
188 * The HTML sanitizer now also removes any HTML comments encountered, as those |
5815ad5f75a4
* Cleaned up the implementation of the `HTMLSanitizer`.
cmlenz
parents:
569
diff
changeset
|
189 may be used to hide malicious payloads targetting a certain "innovative" |
5815ad5f75a4
* Cleaned up the implementation of the `HTMLSanitizer`.
cmlenz
parents:
569
diff
changeset
|
190 browser that goes and interprets the content of specially prepared comments. |
569
4cbd8031ed76
Attribute access in template expressions no longer silently ignores exceptions other than `AttributeError` raised in the attribute accessor.
cmlenz
parents:
556
diff
changeset
|
191 * Attribute access in template expressions no longer silently ignores |
4cbd8031ed76
Attribute access in template expressions no longer silently ignores exceptions other than `AttributeError` raised in the attribute accessor.
cmlenz
parents:
556
diff
changeset
|
192 exceptions other than `AttributeError` raised in the attribute accessor. |
535
c8806216aec4
The I18n filter no longer extracts or translates literal strings in attribute values that also contain expressions.
cmlenz
parents:
528
diff
changeset
|
193 |
c8806216aec4
The I18n filter no longer extracts or translates literal strings in attribute values that also contain expressions.
cmlenz
parents:
528
diff
changeset
|
194 |
494
8a90e761d5ff
The `doctype` parameter for serializers can now be a string.
cmlenz
parents:
489
diff
changeset
|
195 Version 0.4.2 |
8a90e761d5ff
The `doctype` parameter for serializers can now be a string.
cmlenz
parents:
489
diff
changeset
|
196 http://svn.edgewall.org/repos/genshi/tags/0.4.2/ |
574 | 197 (Jun 20 2007, from branches/stable/0.4.x) |
494
8a90e761d5ff
The `doctype` parameter for serializers can now be a string.
cmlenz
parents:
489
diff
changeset
|
198 |
8a90e761d5ff
The `doctype` parameter for serializers can now be a string.
cmlenz
parents:
489
diff
changeset
|
199 * The `doctype` parameter of the markup serializers now also accepts the "name" |
8a90e761d5ff
The `doctype` parameter for serializers can now be a string.
cmlenz
parents:
489
diff
changeset
|
200 of the doctype as string, in addition to the `(name, pubid, sysid)` tuple. |
8a90e761d5ff
The `doctype` parameter for serializers can now be a string.
cmlenz
parents:
489
diff
changeset
|
201 * The I18n filter was not replacing the original attributes with the |
8a90e761d5ff
The `doctype` parameter for serializers can now be a string.
cmlenz
parents:
489
diff
changeset
|
202 translation, but instead adding a second attribute with the same name. |
512
bdaf75981ec7
Fix for #125 (text template handling unicode source). Thanks to Christian Boos for the patch.
cmlenz
parents:
501
diff
changeset
|
203 * `TextTemplate` can now handle unicode source (ticket #125). |
520
ced12be33858
Applied patch by Dale Sedivec to fix #127. Many thanks!
cmlenz
parents:
512
diff
changeset
|
204 * A `<?python ?>` processing instruction containing trailing whitespace no |
ced12be33858
Applied patch by Dale Sedivec to fix #127. Many thanks!
cmlenz
parents:
512
diff
changeset
|
205 longer causes a syntax error (ticket #127). |
522
c1738dec04d9
The I18n filter now skips the content of elements that have an `xml:lang` attribute with a fixed string value. Basically, `xml:lang` can now be used as a flag to mark specific sections as not needing localization.
cmlenz
parents:
520
diff
changeset
|
206 * The I18n filter now skips the content of elements that have an `xml:lang` |
c1738dec04d9
The I18n filter now skips the content of elements that have an `xml:lang` attribute with a fixed string value. Basically, `xml:lang` can now be used as a flag to mark specific sections as not needing localization.
cmlenz
parents:
520
diff
changeset
|
207 attribute with a fixed string value. Basically, `xml:lang` can now be used |
c1738dec04d9
The I18n filter now skips the content of elements that have an `xml:lang` attribute with a fixed string value. Basically, `xml:lang` can now be used as a flag to mark specific sections as not needing localization.
cmlenz
parents:
520
diff
changeset
|
208 as a flag to mark specific sections as not needing localization. |
528
f38ce008ab0a
Integrated [http://babel.edgewall.org/ Babel] message extraction plugin, and added I18n doc page.
cmlenz
parents:
524
diff
changeset
|
209 * Added plugin for message extraction via Babel (http://babel.edgewall.org/). |
494
8a90e761d5ff
The `doctype` parameter for serializers can now be a string.
cmlenz
parents:
489
diff
changeset
|
210 |
8a90e761d5ff
The `doctype` parameter for serializers can now be a string.
cmlenz
parents:
489
diff
changeset
|
211 |
456
fe1c1b0391a9
Fix incorrect reference to translation function in the I18N filter.
cmlenz
parents:
452
diff
changeset
|
212 Version 0.4.1 |
fe1c1b0391a9
Fix incorrect reference to translation function in the I18N filter.
cmlenz
parents:
452
diff
changeset
|
213 http://svn.edgewall.org/repos/genshi/tags/0.4.1/ |
489
ebe8480c95e3
Set date for [milestone:0.4.1] release in ChangeLog.
cmlenz
parents:
479
diff
changeset
|
214 (May 21 2007, from branches/stable/0.4.x) |
456
fe1c1b0391a9
Fix incorrect reference to translation function in the I18N filter.
cmlenz
parents:
452
diff
changeset
|
215 |
fe1c1b0391a9
Fix incorrect reference to translation function in the I18N filter.
cmlenz
parents:
452
diff
changeset
|
216 * Fix incorrect reference to translation function in the I18N filter. |
458
160f787cc818
The `ET()` function now correctly handles attributes with a namespace.
cmlenz
parents:
456
diff
changeset
|
217 * The `ET()` function now correctly handles attributes with a namespace. |
460
6b5544bb5a99
Apply patch by Alec Thomas for processing XML declarations (#111). Thanks!
cmlenz
parents:
458
diff
changeset
|
218 * XML declarations are now processed internally, as well as written to the |
6b5544bb5a99
Apply patch by Alec Thomas for processing XML declarations (#111). Thanks!
cmlenz
parents:
458
diff
changeset
|
219 output when XML serialization is used (ticket #111). |
462 | 220 * Added the functions `encode()` and `get_serializer()` to the `genshi.output` |
221 module, which provide a lower-level API to the functionality previously only | |
222 available through `Stream.render()` and `Stream.serialize()`. | |
464
dafc6f4c20fb
Move the mapping of doctype names to tuples out of the plugin into the `DocType` class.
cmlenz
parents:
462
diff
changeset
|
223 * The `DocType` class now has a `get(name)` function that returns a `DOCTYPE` |
dafc6f4c20fb
Move the mapping of doctype names to tuples out of the plugin into the `DocType` class.
cmlenz
parents:
462
diff
changeset
|
224 tuple for a given string. |
dafc6f4c20fb
Move the mapping of doctype names to tuples out of the plugin into the `DocType` class.
cmlenz
parents:
462
diff
changeset
|
225 * Added frameset variants to the `DocType` constants for HTML 4.01 and XHTML |
dafc6f4c20fb
Move the mapping of doctype names to tuples out of the plugin into the `DocType` class.
cmlenz
parents:
462
diff
changeset
|
226 1.0. |
469
5eae4a5c42ac
The I18n extraction now returns a tuple of strings for `ngettext` and similar functions.
cmlenz
parents:
464
diff
changeset
|
227 * Improved I18n extraction for pluralizable messages: for any translation |
5eae4a5c42ac
The I18n extraction now returns a tuple of strings for `ngettext` and similar functions.
cmlenz
parents:
464
diff
changeset
|
228 function with multiple string arguments (such as ``ngettext``), a single |
5eae4a5c42ac
The I18n extraction now returns a tuple of strings for `ngettext` and similar functions.
cmlenz
parents:
464
diff
changeset
|
229 item with a tuple of strings is yielded, instead an item for each string |
5eae4a5c42ac
The I18n extraction now returns a tuple of strings for `ngettext` and similar functions.
cmlenz
parents:
464
diff
changeset
|
230 argument. |
471
17ce8bf006d7
The `HTMLFormFiller` stream filter no longer alters form elements for which the data element contains no corresponding item.
cmlenz
parents:
469
diff
changeset
|
231 * The `HTMLFormFiller` stream filter no longer alters form elements for which |
17ce8bf006d7
The `HTMLFormFiller` stream filter no longer alters form elements for which the data element contains no corresponding item.
cmlenz
parents:
469
diff
changeset
|
232 the data element contains no corresponding item. |
473 | 233 * Code in `<?python ?>` processing instructions no longer gets the special |
234 treatment as Python code in template expressions, i.e. item and attribute | |
235 access are no longer interchangeable (which was broken in a number of ways | |
236 anyway, see ticket #113). This change does not affect expressions. | |
237 * Numerous fixes for the execution of Python code in `<?python ?>` processing | |
238 instructions (tickets #113 and #114). | |
479 | 239 * The `py:def` (and `#def`) directive now supports "star args" (i.e. `*args` |
240 and `**kwargs`) in the function declaration (ticket #116). | |
456
fe1c1b0391a9
Fix incorrect reference to translation function in the I18N filter.
cmlenz
parents:
452
diff
changeset
|
241 |
fe1c1b0391a9
Fix incorrect reference to translation function in the I18N filter.
cmlenz
parents:
452
diff
changeset
|
242 |
276 | 243 Version 0.4 |
244 http://svn.edgewall.org/repos/genshi/tags/0.4.0/ | |
452 | 245 (Apr 16 2007, from branches/stable/0.4.x) |
276 | 246 |
247 * New example applications for CherryPy and web.py. | |
248 * The template loader now uses a LRU cache to limit the number of cached | |
249 templates to a configurable maximum. Also, a race condition in the template | |
250 loader was fixed by adding locking. | |
251 * A new filter (genshi.filters.HTMLFormFiller) was added, which can populate | |
252 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
|
253 * 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
|
254 be configured per instance. |
294 | 255 * The template engine plugin now supports a range of options for |
256 configuration, for example to set the default serialization method, the | |
257 default output encoding, or the default DOCTYPE. | |
302 | 258 * The ElementTree adaptation function `ET()` has moved into the `genshi.input` |
259 module. | |
260 * Allow `when` directives to omit the test expression as long as the | |
261 associated choose directive does have one. In that case, the when branch is | |
262 followed if the expression of the choose directive evaluates to a truth | |
263 value. | |
317
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
264 * 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
|
265 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
|
266 * 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
|
267 `genshi.template` package. |
343
4ff2338e89cd
Remove automatic calling of expression evaluation results if they are callable. See [http://groups.google.com/group/genshi/browse_thread/thread/f515986760918d41 this mailing list thread].
cmlenz
parents:
336
diff
changeset
|
268 * Results of expression evaluation are no longer implicitly called if they |
4ff2338e89cd
Remove automatic calling of expression evaluation results if they are callable. See [http://groups.google.com/group/genshi/browse_thread/thread/f515986760918d41 this mailing list thread].
cmlenz
parents:
336
diff
changeset
|
269 are callable. |
345 | 270 * Instances of the `genshi.core.Attrs` class are now immutable (they are |
271 subclasses of `tuple` instead of `list`). | |
374
ca46dc9c7761
`MarkupTemplate`s can now be instantiated from markup streams, in addition to strings and file-like objects. Thanks to David Fraser for the patch. Closes #69.
cmlenz
parents:
371
diff
changeset
|
272 * `MarkupTemplate`s can now be instantiated from markup streams, in addition |
ca46dc9c7761
`MarkupTemplate`s can now be instantiated from markup streams, in addition to strings and file-like objects. Thanks to David Fraser for the patch. Closes #69.
cmlenz
parents:
371
diff
changeset
|
273 to strings and file-like objects (ticket #69). |
378
fff4a81ffc56
Improve handling of incorrectly nested tags in the HTML parser.
cmlenz
parents:
374
diff
changeset
|
274 * Improve handling of incorrectly nested tags in the HTML parser. |
399
4a7358313ee8
Rework parsing of expressions in template text, to be able to:
cmlenz
parents:
387
diff
changeset
|
275 * Template includes can now be nested inside fallback content. |
4a7358313ee8
Rework parsing of expressions in template text, to be able to:
cmlenz
parents:
387
diff
changeset
|
276 * Expressions can now contain dict literals (ticket #37). |
4a7358313ee8
Rework parsing of expressions in template text, to be able to:
cmlenz
parents:
387
diff
changeset
|
277 * It is now possible to have one or more escaped dollar signs in front of a |
4a7358313ee8
Rework parsing of expressions in template text, to be able to:
cmlenz
parents:
387
diff
changeset
|
278 full expression (ticket #92). |
401
9582328f82e5
Make the `Markup` class available by default in template expressions. Closes #67.
cmlenz
parents:
399
diff
changeset
|
279 * The `Markup` class is now available by default in template expressions |
9582328f82e5
Make the `Markup` class available by default in template expressions. Closes #67.
cmlenz
parents:
399
diff
changeset
|
280 (ticket #67). |
411 | 281 * The handling of namespace declarations in XML/XHTML output has been improved. |
282 * The `Attrs` class no longer automatically wraps all attribute names in | |
283 `QName` objects. This is now the responsibility of whoever is instantiating | |
284 `Attrs` objects (for example, stream filters and generators). | |
285 * Python code blocks are now supported using the `<?python ?>` processing | |
286 instruction (ticket #84). | |
442
ff7c72b52fb2
Back out [510] and instead implement configurable error handling modes. The default is the old 0.3.x behaviour, but more strict error handling is available as an option.
cmlenz
parents:
437
diff
changeset
|
287 * The way errors in template expressions are handled can now be configured. The |
ff7c72b52fb2
Back out [510] and instead implement configurable error handling modes. The default is the old 0.3.x behaviour, but more strict error handling is available as an option.
cmlenz
parents:
437
diff
changeset
|
288 option `LenientLookup` provides the same forgiving mode used in previous |
ff7c72b52fb2
Back out [510] and instead implement configurable error handling modes. The default is the old 0.3.x behaviour, but more strict error handling is available as an option.
cmlenz
parents:
437
diff
changeset
|
289 Genshi versions, while `StrictLookup` raises exceptions when undefined |
ff7c72b52fb2
Back out [510] and instead implement configurable error handling modes. The default is the old 0.3.x behaviour, but more strict error handling is available as an option.
cmlenz
parents:
437
diff
changeset
|
290 variables or members are accessed. The lenient mode is still the default in |
ff7c72b52fb2
Back out [510] and instead implement configurable error handling modes. The default is the old 0.3.x behaviour, but more strict error handling is available as an option.
cmlenz
parents:
437
diff
changeset
|
291 this version, but that may change in the future. (ticket #88) |
ff7c72b52fb2
Back out [510] and instead implement configurable error handling modes. The default is the old 0.3.x behaviour, but more strict error handling is available as an option.
cmlenz
parents:
437
diff
changeset
|
292 * If a variable is not necessarily defined at the top level of the template |
ff7c72b52fb2
Back out [510] and instead implement configurable error handling modes. The default is the old 0.3.x behaviour, but more strict error handling is available as an option.
cmlenz
parents:
437
diff
changeset
|
293 data, the new built-in functions `defined(key)` and `value_of(key, default)` |
ff7c72b52fb2
Back out [510] and instead implement configurable error handling modes. The default is the old 0.3.x behaviour, but more strict error handling is available as an option.
cmlenz
parents:
437
diff
changeset
|
294 can be used so that the template also works in strict lookup mode. These |
ff7c72b52fb2
Back out [510] and instead implement configurable error handling modes. The default is the old 0.3.x behaviour, but more strict error handling is available as an option.
cmlenz
parents:
437
diff
changeset
|
295 functions were previously only available when using Genshi via the template |
ff7c72b52fb2
Back out [510] and instead implement configurable error handling modes. The default is the old 0.3.x behaviour, but more strict error handling is available as an option.
cmlenz
parents:
437
diff
changeset
|
296 engine plugin (for compatibility with Kid). |
432 | 297 * `style` attributes are no longer allowed by the `HTMLSanitizer` by default. |
446
90f5908cd10a
Add basic I18n/L10n functionality, based on GenshiRecipes/Localization.
cmlenz
parents:
442
diff
changeset
|
298 If they are explicitly added to the set of safe attributes, any unicode |
90f5908cd10a
Add basic I18n/L10n functionality, based on GenshiRecipes/Localization.
cmlenz
parents:
442
diff
changeset
|
299 escapes in the attribute value are now handled properly. |
437 | 300 * Namespace declarations on conditional elements (for example using a `py:if` |
301 directive`) are no longer moved to the following element when the element | |
302 originally carrying the declaration is removed from the stream (ticket #107). | |
446
90f5908cd10a
Add basic I18n/L10n functionality, based on GenshiRecipes/Localization.
cmlenz
parents:
442
diff
changeset
|
303 * Added basic built-in support for internationalizing templates by providing |
90f5908cd10a
Add basic I18n/L10n functionality, based on GenshiRecipes/Localization.
cmlenz
parents:
442
diff
changeset
|
304 a new `Translator` class that can both extract localizable strings from a |
90f5908cd10a
Add basic I18n/L10n functionality, based on GenshiRecipes/Localization.
cmlenz
parents:
442
diff
changeset
|
305 stream, and replace those strings with their localizations at render time. |
90f5908cd10a
Add basic I18n/L10n functionality, based on GenshiRecipes/Localization.
cmlenz
parents:
442
diff
changeset
|
306 The code for this was largely taken from previous work done by Matt Good |
90f5908cd10a
Add basic I18n/L10n functionality, based on GenshiRecipes/Localization.
cmlenz
parents:
442
diff
changeset
|
307 and David Fraser. |
365
85d910b8f9e5
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
308 |
85d910b8f9e5
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
309 |
387 | 310 Version 0.3.6 |
311 http://svn.edgewall.org/repos/genshi/tags/0.3.6/ | |
312 (Dec 11 2006, from branches/stable/0.3.x) | |
313 | |
314 * The builder API now accepts streams as children of elements and fragments. | |
315 | |
316 | |
365
85d910b8f9e5
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
317 Version 0.3.5 |
387 | 318 http://svn.edgewall.org/repos/genshi/tags/0.3.5/ |
365
85d910b8f9e5
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
319 (Nov 22 2006, from branches/stable/0.3.x) |
85d910b8f9e5
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
320 |
371 | 321 * Fix XPath traversal in match templates. Previously, `div/p` would be treated |
322 the same as `div//p`, i.e. it would match all descendants and not just the | |
323 immediate children. | |
365
85d910b8f9e5
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
324 * Preserve whitespace in HTML `<pre>` elements also when they contain child |
85d910b8f9e5
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
325 elements. |
85d910b8f9e5
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
326 * Match templates no longer match their own output (ticket #77). |
85d910b8f9e5
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
327 * Blank lines before directives in text templates are now preserved as |
85d910b8f9e5
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
328 expected (ticket #62). |
346
2304e080ec07
Whitespace was not getting preserved in HTML `<pre>` elements that contained other HTML elements.
cmlenz
parents:
345
diff
changeset
|
329 |
317
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
330 |
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
331 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
|
332 http://svn.edgewall.org/repos/genshi/tags/0.3.4/ |
323 | 333 (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
|
334 |
8ba12f886c8a
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
335 * 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
|
336 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
|
337 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
|
338 * 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
|
339 directives can now contain non-ASCII strings. |
285 | 340 |
341 | |
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
|
342 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
|
343 http://svn.edgewall.org/repos/genshi/tags/0.3.3/ |
302 | 344 (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
|
345 |
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
|
346 * 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
|
347 declare the same namespace more than once in a nested fashion. |
294 | 348 * Fixed the parsing of HTML entity references inside attribute values, both |
349 in the `XMLParser` and the `HTMLParser` classes. | |
302 | 350 * Some changes to usage of absolute vs. relative template paths to ensure that |
351 the filenamed-keyed cache employed by the TemplateLoader doesn't mix up | |
352 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
|
353 |
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
|
354 |
285 | 355 Version 0.3.2 |
356 http://svn.edgewall.org/repos/genshi/tags/0.3.2/ | |
357 (Oct 12 2006, from branches/stable/0.3.x) | |
358 | |
359 * Exceptions from templates now contain the absolute path to the template file | |
360 when a search path is used. This enables tracebacks to display the line in | |
361 question. | |
362 * The template engine plugin now provides three different types: "genshi" and | |
363 "genshi-markup" map to markup templates, while "genshi-text" maps to text | |
364 templates. | |
278
8de2620504b9
Fix the handling of namespace context for match templates.
cmlenz
parents:
277
diff
changeset
|
365 * 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
|
366 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
|
367 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
|
368 defined. |
285 | 369 * 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
|
370 serializing to HTML but declaring the XHTML namespace in the template. |
285 | 371 * Improved error message raised when using the `py:for` directive on an object |
372 that is not iterable (ticket #60). | |
373 * Fixed the XPath function `starts-with()` which was always returning true | |
374 (ticket #61). | |
276 | 375 |
376 | |
260 | 377 Version 0.3.1 |
378 http://svn.edgewall.org/repos/genshi/tags/0.3.1/ | |
262 | 379 (Sep 22 2006, from branches/stable/0.3.x) |
260 | 380 |
381 * Includes and user-defined filters were not getting the correct context data | |
382 when used inside a match template (ticket #56). | |
383 * XPath patterns using the union operator (`|`) were returning only partial | |
384 results in some cases. | |
385 | |
386 | |
192
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
387 Version 0.3 |
230 | 388 http://svn.edgewall.org/repos/genshi/tags/0.3.0/ |
252 | 389 (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
|
390 |
234 | 391 * The project name was changed from "Markup" to "Genshi". See UPGRADE.txt |
392 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
|
393 * 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
|
394 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
|
395 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
|
396 `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
|
397 * 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
|
398 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
|
399 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
|
400 * 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
|
401 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
|
402 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
|
403 * 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
|
404 * Added serialization to plain text (ticket #41). |
218 | 405 * Calling functions from template expressions with *args and/or **kwargs |
406 now works correctly (ticket #42). | |
407 * The `TemplateLoader` class and the `Template` instances that it manages are | |
408 now thread-safe, as they no longer keep any state related to the current | |
409 processing context. | |
410 * Stream filters and serializers can now be applied using the "pipe" (bitwise | |
411 or) operator "|". | |
412 * The execution of named template functions (`py:def`) no longer silently | |
413 swallows TypeError exceptions (ticket #44). | |
414 * The XML Parser now correctly handles unicode input (ticket #43). | |
415 * HTML entities can now be used in templates without having to declare an HTML | |
416 document type. | |
417 * Error reporting on undefined entities has been fixed. | |
418 * Fix traversal of substreams by XPath expressions. For example, the path | |
419 '*/*' no longer matches non-immediate child elements, and '@*' no longer | |
420 matches the attributes of descendants. | |
421 * Fixes for `py:match` which would get confused when it should be applied | |
422 to multiple elements (ticket #49). | |
224
e4dad1145f84
Implement support for namespace prefixes in XPath expressions.
cmlenz
parents:
218
diff
changeset
|
423 * 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
|
424 * Expressions now correctly handle slices (ticket #51). |
234 | 425 * A simple text-based template language is now included for generating |
426 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
|
427 |
cda3bdfc19ed
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
428 |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
429 Version 0.2 |
230 | 430 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
|
431 (Aug 22 2006, from branches/stable/0.2.x) |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
432 |
153 | 433 * XPath syntax errors now contain position info (ticket #20). |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
434 * Errors in expression evaluation now contain the correct line number in the |
153 | 435 template (ticket #22). |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
436 * <script> and <style> element contents are no longer escaped when using HTML |
153 | 437 serialization (ticket #24). |
438 * In some cases expressions in templates did not get interpolated (ticket | |
439 #26). | |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
440 * 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
|
441 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
|
442 compatible with HTML user agents. |
159 | 443 * The XHTML serializer now correctly handles elements in foreign namespaces |
444 (such as SVG or MathML). | |
153 | 445 * Fixed relative includes in templates on Windows (ticket #27). |
160 | 446 * 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
|
447 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
|
448 XML character reference. |
156 | 449 * String literals in XPath expressions that contain spaces are now parsed |
450 as expected. | |
451 * 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
|
452 contains(), false(), floor(), normalize-space(), number(), round(), |
f767cf98e3e3
Implement the XPath relational operators and the `round()` function.
cmlenz
parents:
160
diff
changeset
|
453 starts-with(), string-length(), substring(), substring-after(), |
f767cf98e3e3
Implement the XPath relational operators and the `round()` function.
cmlenz
parents:
160
diff
changeset
|
454 substring-before(), translate(), and true(). |
168 | 455 * Non-ASCII characters in expressions should now be handled correctly (ticket |
456 #29). | |
457 * Default values for arguments of template functions now also work with | |
458 constants and complex expressions (they only worked for string or number | |
459 literals before). | |
181
d07ce6c1dbbe
Some error message improvements for template directives. Thanks to Christian Boos for the patch!
cmlenz
parents:
169
diff
changeset
|
460 * 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
|
461 (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
|
462 * 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
|
463 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
|
464 * 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
|
465 values (ticket #34). |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
466 |
169 | 467 |
148
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
468 Version 0.1 |
230 | 469 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
|
470 (Aug 3 2006, from branches/stable/0.1.x) |
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
471 |
a0a52cf4e4de
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
472 * First public release |