All Genshi filters should always be generators. --Noah
> -----Original Message----- > From: [email protected] [mailto:[email protected]] > On Behalf Of David Champion > Sent: Monday, April 27, 2009 4:42 PM > To: [email protected] > Subject: [Trac] genshi stream consumption in trac filter plugin > > > I don't know whether this is a genshi question or a trac question, but > I'll start here and relocate if need be. > > I have two plugins for my Trac installation. Each of them has perhaps > a > peculiar need: they each implement ITemplateStreamFilter.filter_stream, > and in filter_stream they each need to examine stream content to make > decisions about what filter operation to perform. > > I don't know a lot about what I'm doing, but it seems that as soon as > I do anything (.render(), .select()) to the stream, it is consumed > completely and is no longer available to be filtered. I've determined > that I can "copy" it by rendering HTML and re-parsing that: > > html = stream.render() > # or: html = stream.select('.').render() > copy = genshi.XML(html) > stream = genshi.XML(html) > > This works, as far as my immediate needs. However, each of my plugins > also uses trac.web.chrome.add_script() to add a javascript source to > the > output. But somehow, for reasons I've been unable to find, if I > consume > my stream and reinstantiate it, all the scripts added by plugins to the > request via add_script() are lost. (I could probably use Transformer > to > work around this in my plugin, but it still ruins the day for any other > plugins making use of add_script().) > > Can anyone tell me what I'm doing wrong, where to find documentation > relating to this problem, anything? I'm feeling pretty exhausted on > it. > > Thanks. > -- > -D. [email protected] NSIT University of Chicago > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Trac Users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/trac-users?hl=en -~----------~----~----~----~------~----~------~--~---
