Ticket #101: genshi-xinclude-parse-attr.patch
| File genshi-xinclude-parse-attr.patch, 1.9 KB (added by djc@…, 17 years ago) |
|---|
-
filters.py
old new 137 137 @param stream: the markup event stream to filter 138 138 @param ctxt: the template context 139 139 """ 140 from genshi.template import MarkupTemplate, TextTemplate 140 141 from genshi.template import TemplateError, TemplateNotFound 141 142 142 143 ns_prefixes = [] 143 144 in_fallback = False 144 include_href, fallback_stream =None, None145 include_href, parse, fallback_stream = None, None, None 145 146 namespace = self.NAMESPACE 146 147 147 148 for kind, data, pos in stream: … … 150 151 tag, attrib = data 151 152 if tag.localname == 'include': 152 153 include_href = attrib.get('href') 154 parse = attrib.get('parse') 153 155 elif tag.localname == 'fallback': 154 156 in_fallback = True 155 157 fallback_stream = [] … … 160 162 if not include_href: 161 163 raise TemplateError('Include misses required ' 162 164 'attribute "href"') 165 if parse == 'xml': cls = MarkupTemplate 166 elif parse == 'text': cls = TextTemplate 167 else: raise TemplateError('Unknown value "%s" for ' 168 'attribute "parse"' % 169 repr(parse)) 163 170 template = self.loader.load(include_href, 164 relative_to=pos[0]) 171 relative_to=pos[0], 172 cls=cls) 165 173 for event in template.generate(ctxt): 166 174 yield event 167 175
