view UPGRADE.txt @ 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.
author cmlenz
date Mon, 13 Aug 2007 12:40:56 +0000
parents 0ed55216e8f2
children
line wrap: on
line source
Upgrading Genshi
================

Upgrading from Genshi 0.4.x to 0.5.x
------------------------------------

Genshi 0.5 introduces a new, alternative syntax for text templates, which is
more flexible and powerful compared to the old syntax. For backwards
compatibility, this new syntax is not used by default, though it will be in
a future version. It is recommended that you migrate to using this new syntax.
To do so, simply rename any references in your code to `TextTemplate` to
`NewTextTemplate`. To explicitly use the old syntax, use `OldTextTemplate`
instead, so that you can be sure you'll be using the same language when the
default in Genshi is changed (at least until the old implementation is
completely removed).


Upgrading from Genshi 0.3.x to 0.4.x
------------------------------------

The modules ``genshi.filters`` and ``genshi.template`` have been
refactored into packages containing multiple modules. While code using
the regular APIs should continue to work without problems, you should
make sure to remove any leftover traces of the ``template.py`` file on
the installation path. This is not necessary when Genshi was installed
as a Python egg.

Results of evaluating template expressions are no longer implicitly
called if they are callable. If you have been using that feature, you
will need to add the parenthesis to actually call the function.

Instances of `genshi.core.Attrs` are now immutable. Filters
manipulating the attributes in a stream may need to be updated. Also,
the `Attrs` class no longer automatically wraps all attribute names
in `QName` objects, so users of the `Attrs` class need to do this
themselves. See the documentation of the `Attrs` class for more
information.


Upgrading from Markup
---------------------

Prior to version 0.3, the name of the Genshi project was "Markup". The
name change means that you will have to adjust your import statements
and the namespace URI of XML templates, among other things:

 * The package name was changed from "markup" to "genshi". Please
   adjust any import statements referring to the old package name.
 * The namespace URI for directives in Genshi XML templates has changed
   from http://markup.edgewall.org/ to http://genshi.edgewall.org/.
   Please update the xmlns:py declaration in your template files
   accordingly.

Furthermore, due to the inclusion of a text-based template language,
the class:

  `markup.template.Template`

has been renamed to:

  `genshi.template.MarkupTemplate`

If you've been using the Template class directly, you'll need to
update your code (a simple find/replace should do--the API itself
did not change).
Copyright (C) 2012-2017 Edgewall Software