Mercurial > genshi > mirror
annotate ChangeLog @ 381:b9fc7a1f76ca trunk
Fix for #80: fallback only shown when the template to include wasn't found. In addition, the nesting of includes and fallback content should work correctly, and directives/expressions/etc inside fallback content are processed. Thanks to Christian Boos for the original patch and unit tests.
author | cmlenz |
---|---|
date | Wed, 29 Nov 2006 14:26:45 +0000 |
parents | e1d659c87ddf |
children | 9c88f4137b03 |
rev | line source |
---|---|
276 | 1 Version 0.4 |
2 http://svn.edgewall.org/repos/genshi/tags/0.4.0/ | |
3 (?, from branches/stable/0.4.x) | |
4 | |
5 * New example applications for CherryPy and web.py. | |
6 * The template loader now uses a LRU cache to limit the number of cached | |
7 templates to a configurable maximum. Also, a race condition in the template | |
8 loader was fixed by adding locking. | |
9 * A new filter (genshi.filters.HTMLFormFiller) was added, which can populate | |
10 HTML forms based on a dictionary of values. | |
277
7e30bfa966ab
The `HTMLSanitizer` now lets you override the default set of tag and attribute names that are considered safe.
cmlenz
parents:
276
diff
changeset
|
11 * The set of permitted tag and attribute names for the HTMLSanitizer can now |
7e30bfa966ab
The `HTMLSanitizer` now lets you override the default set of tag and attribute names that are considered safe.
cmlenz
parents:
276
diff
changeset
|
12 be configured per instance. |
294 | 13 * The template engine plugin now supports a range of options for |
14 configuration, for example to set the default serialization method, the | |
15 default output encoding, or the default DOCTYPE. | |
302 | 16 * The ElementTree adaptation function `ET()` has moved into the `genshi.input` |
17 module. | |
18 * Allow `when` directives to omit the test expression as long as the | |
19 associated choose directive does have one. In that case, the when branch is | |
20 followed if the expression of the choose directive evaluates to a truth | |
21 value. | |
317
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
22 * Unsuccessful attribute or item lookups now return `Undefined` objects for |
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
23 nicer error messages. |
336
7763f7aec949
Refactoring: `genshi.template` is now a package, it was getting way to crowded in that file.
cmlenz
parents:
333
diff
changeset
|
24 * Split up the `genshi.template` module into multiple modules inside the new |
7763f7aec949
Refactoring: `genshi.template` is now a package, it was getting way to crowded in that file.
cmlenz
parents:
333
diff
changeset
|
25 `genshi.template` package. |
343
35189e960252
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
|
26 * Results of expression evaluation are no longer implicitly called if they |
35189e960252
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
|
27 are callable. |
345 | 28 * Instances of the `genshi.core.Attrs` class are now immutable (they are |
29 subclasses of `tuple` instead of `list`). | |
374
b146277eb54a
`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
|
30 * `MarkupTemplate`s can now be instantiated from markup streams, in addition |
b146277eb54a
`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
|
31 to strings and file-like objects (ticket #69). |
378
873ca2a7ec05
Improve handling of incorrectly nested tags in the HTML parser.
cmlenz
parents:
374
diff
changeset
|
32 * Improve handling of incorrectly nested tags in the HTML parser. |
379
e1d659c87ddf
The builder API now accepts streams as children of elements and fragments.
cmlenz
parents:
378
diff
changeset
|
33 * The builder API now accepts streams as children of elements and fragments. |
381
b9fc7a1f76ca
Fix for #80: fallback only shown when the template to include wasn't found. In addition, the nesting of includes and fallback content should work correctly, and directives/expressions/etc inside fallback content are processed. Thanks to Christian Boos for the original patch and unit tests.
cmlenz
parents:
379
diff
changeset
|
34 * Template includes can you be nested inside fallback content. |
365
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
35 |
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
36 |
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
37 Version 0.3.5 |
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
38 http://svn.edgewall.org/repos/genshi/tags/0.3.4/ |
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
39 (Nov 22 2006, from branches/stable/0.3.x) |
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
40 |
371 | 41 * Fix XPath traversal in match templates. Previously, `div/p` would be treated |
42 the same as `div//p`, i.e. it would match all descendants and not just the | |
43 immediate children. | |
365
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
44 * Preserve whitespace in HTML `<pre>` elements also when they contain child |
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
45 elements. |
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
46 * Match templates no longer match their own output (ticket #77). |
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
47 * Blank lines before directives in text templates are now preserved as |
4f431931d64e
Fix for #62: preserve whitespace in front of directives.
cmlenz
parents:
346
diff
changeset
|
48 expected (ticket #62). |
346
96882a191686
Whitespace was not getting preserved in HTML `<pre>` elements that contained other HTML elements.
cmlenz
parents:
345
diff
changeset
|
49 |
317
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
50 |
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
51 Version 0.3.4 |
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
52 http://svn.edgewall.org/repos/genshi/tags/0.3.4/ |
323 | 53 (Nov 2 2006, from branches/stable/0.3.x) |
317
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
54 |
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
55 * The encoding of HTML and XML files, as well as markup and text templates, |
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
56 can now be specified. Also, the encoding specified in XML declarations is |
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
57 now respected unless an expiclit encoding is requested. |
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
58 * Expressions used as arguments for `py:with`, `py:def`, and `py:for` |
efa7870b63cb
Update change log, and some minor tweaks to keyword argument ordering for the new `encoding` parameter.
cmlenz
parents:
302
diff
changeset
|
59 directives can now contain non-ASCII strings. |
285 | 60 |
61 | |
288
e09c5b7a64ae
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
62 Version 0.3.3 |
e09c5b7a64ae
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
63 http://svn.edgewall.org/repos/genshi/tags/0.3.3/ |
302 | 64 (Oct 16 2006, from branches/stable/0.3.x) |
288
e09c5b7a64ae
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
65 |
e09c5b7a64ae
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
66 * Fixed bug introduced in 0.3.2 that broke the parsing of templates which |
e09c5b7a64ae
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
67 declare the same namespace more than once in a nested fashion. |
294 | 68 * Fixed the parsing of HTML entity references inside attribute values, both |
69 in the `XMLParser` and the `HTMLParser` classes. | |
302 | 70 * Some changes to usage of absolute vs. relative template paths to ensure that |
71 the filenamed-keyed cache employed by the TemplateLoader doesn't mix up | |
72 templates with the same name, but from different subdirectories. | |
288
e09c5b7a64ae
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
73 |
e09c5b7a64ae
Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
cmlenz
parents:
285
diff
changeset
|
74 |
285 | 75 Version 0.3.2 |
76 http://svn.edgewall.org/repos/genshi/tags/0.3.2/ | |
77 (Oct 12 2006, from branches/stable/0.3.x) | |
78 | |
79 * Exceptions from templates now contain the absolute path to the template file | |
80 when a search path is used. This enables tracebacks to display the line in | |
81 question. | |
82 * The template engine plugin now provides three different types: "genshi" and | |
83 "genshi-markup" map to markup templates, while "genshi-text" maps to text | |
84 templates. | |
278
d6c58473a9d0
Fix the handling of namespace context for match templates.
cmlenz
parents:
277
diff
changeset
|
85 * Fixed the namespace context used by XPath patterns in py:match templates. |
d6c58473a9d0
Fix the handling of namespace context for match templates.
cmlenz
parents:
277
diff
changeset
|
86 The were erroneously using the namespace context of the elements being |
d6c58473a9d0
Fix the handling of namespace context for match templates.
cmlenz
parents:
277
diff
changeset
|
87 matched, where they should rather use the context in which they were |
d6c58473a9d0
Fix the handling of namespace context for match templates.
cmlenz
parents:
277
diff
changeset
|
88 defined. |
285 | 89 * The contents of `<script>` and `<style>` elements are no longer escaped when |
280
ce848f7c41f1
The content of `<script>` and `<style>` elements is no longer escaped when serializing to HTML but declaring the XHTML namespace in the template.
cmlenz
parents:
278
diff
changeset
|
90 serializing to HTML but declaring the XHTML namespace in the template. |
285 | 91 * Improved error message raised when using the `py:for` directive on an object |
92 that is not iterable (ticket #60). | |
93 * Fixed the XPath function `starts-with()` which was always returning true | |
94 (ticket #61). | |
276 | 95 |
96 | |
260 | 97 Version 0.3.1 |
98 http://svn.edgewall.org/repos/genshi/tags/0.3.1/ | |
262 | 99 (Sep 22 2006, from branches/stable/0.3.x) |
260 | 100 |
101 * Includes and user-defined filters were not getting the correct context data | |
102 when used inside a match template (ticket #56). | |
103 * XPath patterns using the union operator (`|`) were returning only partial | |
104 results in some cases. | |
105 | |
106 | |
192
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
107 Version 0.3 |
230 | 108 http://svn.edgewall.org/repos/genshi/tags/0.3.0/ |
252 | 109 (Sep 17 2006, from branches/stable/0.3.x) |
192
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
110 |
234 | 111 * The project name was changed from "Markup" to "Genshi". See UPGRADE.txt |
112 for upgrade instructions. | |
192
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
113 * Expression evaluation now differentiates between undefined variables and |
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
114 variables that are defined but set to `None`. This also means that local |
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
115 variables can override built-ins even if the local variable are set to |
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
116 `None` (ticket #36). |
199
71ce4b5335ba
* Removed storage of substream in `MatchDirective`, because it's already being stored in the match templates (related to #39).
cmlenz
parents:
192
diff
changeset
|
117 * The plugin implementation now makes more functions available for use inside |
71ce4b5335ba
* Removed storage of substream in `MatchDirective`, because it's already being stored in the match templates (related to #39).
cmlenz
parents:
192
diff
changeset
|
118 templates: XML(), HTML(), defined(), and value-of(). These are mostly for |
71ce4b5335ba
* Removed storage of substream in `MatchDirective`, because it's already being stored in the match templates (related to #39).
cmlenz
parents:
192
diff
changeset
|
119 migration from Kid. |
192
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
120 * The parsing of `py:with` directives has been improved: you can now assign |
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
121 to multiple names, and semicolons inside string literals are treated as |
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
122 expected. |
199
71ce4b5335ba
* Removed storage of substream in `MatchDirective`, because it's already being stored in the match templates (related to #39).
cmlenz
parents:
192
diff
changeset
|
123 * Generator expressions can now be used in template expressions (ticket #16). |
200
5861f4446c26
Add serialization to plain text, based on cboos' patch. Closes #41.
cmlenz
parents:
199
diff
changeset
|
124 * Added serialization to plain text (ticket #41). |
218 | 125 * Calling functions from template expressions with *args and/or **kwargs |
126 now works correctly (ticket #42). | |
127 * The `TemplateLoader` class and the `Template` instances that it manages are | |
128 now thread-safe, as they no longer keep any state related to the current | |
129 processing context. | |
130 * Stream filters and serializers can now be applied using the "pipe" (bitwise | |
131 or) operator "|". | |
132 * The execution of named template functions (`py:def`) no longer silently | |
133 swallows TypeError exceptions (ticket #44). | |
134 * The XML Parser now correctly handles unicode input (ticket #43). | |
135 * HTML entities can now be used in templates without having to declare an HTML | |
136 document type. | |
137 * Error reporting on undefined entities has been fixed. | |
138 * Fix traversal of substreams by XPath expressions. For example, the path | |
139 '*/*' no longer matches non-immediate child elements, and '@*' no longer | |
140 matches the attributes of descendants. | |
141 * Fixes for `py:match` which would get confused when it should be applied | |
142 to multiple elements (ticket #49). | |
224
90d62225f411
Implement support for namespace prefixes in XPath expressions.
cmlenz
parents:
218
diff
changeset
|
143 * Using namespace prefixes in XPath expressions is now supported. |
227
96a7e5011c69
Use list comprehension instead of `map()` in the AST transformer.
cmlenz
parents:
224
diff
changeset
|
144 * Expressions now correctly handle slices (ticket #51). |
234 | 145 * A simple text-based template language is now included for generating |
146 plain text output (ticket #47). | |
192
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
147 |
b64e36bc1100
Expression evaluation now differentiates between undefined variables and variables that are defined but set to `None`.
cmlenz
parents:
185
diff
changeset
|
148 |
148
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
149 Version 0.2 |
230 | 150 http://svn.edgewall.org/repos/genshi/tags/0.2.0/ |
184
181d292eafa2
Interpolate multiline expressions in templates. Thanks to Christian Boos for reporting the problem and providing the fix.
cmlenz
parents:
181
diff
changeset
|
151 (Aug 22 2006, from branches/stable/0.2.x) |
148
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
152 |
153 | 153 * XPath syntax errors now contain position info (ticket #20). |
148
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
154 * Errors in expression evaluation now contain the correct line number in the |
153 | 155 template (ticket #22). |
148
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
156 * <script> and <style> element contents are no longer escaped when using HTML |
153 | 157 serialization (ticket #24). |
158 * In some cases expressions in templates did not get interpolated (ticket | |
159 #26). | |
148
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
160 * CDATA sections are now passed through the pipeline and serialized correctly. |
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
161 That allows using <script> or <style> elements in XHTML output that is still |
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
162 compatible with HTML user agents. |
159 | 163 * The XHTML serializer now correctly handles elements in foreign namespaces |
164 (such as SVG or MathML). | |
153 | 165 * Fixed relative includes in templates on Windows (ticket #27). |
160 | 166 * Output can be encoded using legacy codecs such as ISO-8859-1. Any character |
148
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
167 not representable in the chosen encoding gets replaced by the corresponding |
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
168 XML character reference. |
156 | 169 * String literals in XPath expressions that contain spaces are now parsed |
170 as expected. | |
171 * Added support for the XPath functions boolean(), ceiling(), concat(), | |
162
456039594db9
Implement the XPath relational operators and the `round()` function.
cmlenz
parents:
160
diff
changeset
|
172 contains(), false(), floor(), normalize-space(), number(), round(), |
456039594db9
Implement the XPath relational operators and the `round()` function.
cmlenz
parents:
160
diff
changeset
|
173 starts-with(), string-length(), substring(), substring-after(), |
456039594db9
Implement the XPath relational operators and the `round()` function.
cmlenz
parents:
160
diff
changeset
|
174 substring-before(), translate(), and true(). |
168 | 175 * Non-ASCII characters in expressions should now be handled correctly (ticket |
176 #29). | |
177 * Default values for arguments of template functions now also work with | |
178 constants and complex expressions (they only worked for string or number | |
179 literals before). | |
181
e103b75a96ce
Some error message improvements for template directives. Thanks to Christian Boos for the patch!
cmlenz
parents:
169
diff
changeset
|
180 * XPath expressions in now support XPath variables ($var) in predicates |
e103b75a96ce
Some error message improvements for template directives. Thanks to Christian Boos for the patch!
cmlenz
parents:
169
diff
changeset
|
181 (ticket #31). |
184
181d292eafa2
Interpolate multiline expressions in templates. Thanks to Christian Boos for reporting the problem and providing the fix.
cmlenz
parents:
181
diff
changeset
|
182 * Expressions in templates can now span multiple lines if they are enclosed |
181d292eafa2
Interpolate multiline expressions in templates. Thanks to Christian Boos for reporting the problem and providing the fix.
cmlenz
parents:
181
diff
changeset
|
183 in curly braces. |
185
95c3813a00de
Fix for #34: `py:def` macros can now be invoked from within expressions in attribute values.
cmlenz
parents:
184
diff
changeset
|
184 * py:def macros can now be invoked from within expressions inside attribute |
95c3813a00de
Fix for #34: `py:def` macros can now be invoked from within expressions in attribute values.
cmlenz
parents:
184
diff
changeset
|
185 values (ticket #34). |
148
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
186 |
169 | 187 |
148
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
188 Version 0.1 |
230 | 189 http://svn.edgewall.org/repos/genshi/tags/0.1.0/ |
148
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
190 (Aug 3 2006, from branches/stable/0.1.x) |
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
191 |
dcc9dc25bc59
Added changelog file, plus some README and setup tweaks.
cmlenz
parents:
diff
changeset
|
192 * First public release |