Index: markup/plugin.py =================================================================== --- markup/plugin.py (revision 34) +++ markup/plugin.py (working copy) @@ -20,7 +20,19 @@ from pkg_resources import resource_filename from markup.template import Context, Template, TemplateLoader +from markup.core import Stream, QName +def ET(element): + yield (Stream.START, (QName(element.tag), element.items()), + ('', 0, 0)) + if element.text: + yield Stream.TEXT, element.text, ('', 0, 0) + for child in element.getchildren(): + for item in ET(child): + yield item + yield Stream.END, QName(element.tag), ('', 0, 0) + if element.tail: + yield Stream.TEXT, element.tail, ('', 0, 0) class TemplateEnginePlugin(object): """Implementation of the plugin API.""" @@ -53,7 +65,7 @@ if not isinstance(template, Template): template = self.load_template(template) - data = {} + data = {'ET': ET} if self.get_extra_vars: data.update(self.get_extra_vars()) data.update(info)