|
List Info
Thread: ITemplateStreamFilter and Genshi Transforms
|
|
| ITemplateStreamFilter and Genshi
Transforms |
  United States |
2007-12-17 08:36:34 |
Hi All,
I'm trying to make a plugin that changes some specific terms
on the
various web pages (just experimenting with the interface
right now,
though) and have some strange behaviour with Genshi
transforms and the
ITemplateStreamFilter interface. Here's my basic plugin:
from genshi.filters import Transformer
class UIPlugin(Component):
"""Substitute various terms on various
templates.
This plugin uses the ITemplateStreamFilter to filter
various
terms on specific pages, replacing ticket with task,
milestone
with job, etc..
"""
implements(ITemplateStreamFilter)
# ITemplateStreamFilter methods
def filter_stream(self, req, method, filename, stream,
data):
filter =
Transformer('//img[ src="/chrome/common/trac_logo_mini.png"]')
return stream | filter.substitute('common',
'site')
I'm getting a page (wiki front), but the contents are being
interpreted
as plain text instead of html. I am basing the above plugin
on the
ticket_clone example, but I'm clearly missing something.
Any
suggestions on what I'm doing wrong?
-Scott
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the
Google Groups "Trac Development" group.
To post to this group, send email to trac-dev googlegroups.com
To unsubscribe from this group, send email to
trac-dev-unsubscribe googlegroups.com
For more options, visit this group at http://
groups.google.com/group/trac-dev?hl=en
-~----------~----~----~----~------~----~------~--~---
|
|
| Re: ITemplateStreamFilter and Genshi
Transforms |
  Germany |
2007-12-17 11:13:18 |
Hello Scott,
Scott Sharkey wrote:
> Hi All,
>
> I'm trying to make a plugin that changes some specific
terms on the
> various web pages (just experimenting with the
interface right now,
> though) and have some strange behaviour with Genshi
transforms and the
> ITemplateStreamFilter interface. Here's my basic
plugin:
>
> from genshi.filters import Transformer
>
> class UIPlugin(Component):
> """Substitute various terms on
various templates.
>
> This plugin uses the ITemplateStreamFilter to
filter various
> terms on specific pages, replacing ticket with
task, milestone
> with job, etc..
> """
>
> implements(ITemplateStreamFilter)
>
> # ITemplateStreamFilter methods
>
> def filter_stream(self, req, method, filename,
stream, data):
> filter =
> Transformer('//img[ src="/chrome/common/trac_logo_mini.png"]')
> return stream | filter.substitute('common',
'site')
>
(please next time provide the sample plugin as an
attachment, thanks!)
> I'm getting a page (wiki front), but the contents are
being interpreted
> as plain text instead of html. I am basing the above
plugin on the
> ticket_clone example, but I'm clearly missing
something. Any
> suggestions on what I'm doing wrong?
The HTML-escaped text you're seeing actually comes from a
Genshi bug [1].
Now the other problem you have in your example is that
substitute() is
not (currently?) supposed to work on the attribute values of
the matched
element, only on the text content.
Other than that, and for your general use case (replacing
ticket with
task, milestone with job, etc.), the plugin should work fine
once the
bug is fixed.
-- Christian
[1] - http://genshi.e
dgewall.org/ticket/168
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the
Google Groups "Trac Development" group.
To post to this group, send email to trac-dev googlegroups.com
To unsubscribe from this group, send email to
trac-dev-unsubscribe googlegroups.com
For more options, visit this group at http://
groups.google.com/group/trac-dev?hl=en
-~----------~----~----~----~------~----~------~--~---
|
|
| Re: ITemplateStreamFilter and Genshi
Transforms |

|
2007-12-17 11:30:02 |
On 18/12/2007, Christian Boos <cboos neuf.fr> wrote:
> The HTML-escaped text you're seeing actually comes from
a Genshi bug [1].
> Now the other problem you have in your example is that
substitute() is
> not (currently?) supposed to work on the attribute
values of the matched
> element, only on the text content.
Replying to Christian for context, but this is for Scott:
The function you want is "attr()":
http:/
/genshi.edgewall.org/wiki/ApiDocs/genshi.filters.transform#g
enshi.filters.transform:Transformer:attr
--
Evolution: Taking care of those too stupid to take care of
themselves.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the
Google Groups "Trac Development" group.
To post to this group, send email to trac-dev googlegroups.com
To unsubscribe from this group, send email to
trac-dev-unsubscribe googlegroups.com
For more options, visit this group at http://
groups.google.com/group/trac-dev?hl=en
-~----------~----~----~----~------~----~------~--~---
|
|
| Re: ITemplateStreamFilter and Genshi
Transforms |
  United States |
2007-12-17 13:08:11 |
Christian Boos wrote:
> Scott Sharkey wrote:
>> I'm trying to make a plugin that changes some
specific terms on the
>> various web pages (just experimenting with the
interface right now,
>> though) and have some strange behaviour with Genshi
transforms and the
>> ITemplateStreamFilter interface. Here's my basic
plugin:
Plugin deleted.
> (please next time provide the sample plugin as an
attachment, thanks!)
Will do - sorry!
>> I'm getting a page (wiki front), but the contents
are being interpreted
>> as plain text instead of html. I am basing the
above plugin on the
>> ticket_clone example, but I'm clearly missing
something. Any
>> suggestions on what I'm doing wrong?
>
> The HTML-escaped text you're seeing actually comes from
a Genshi bug [1].
> Now the other problem you have in your example is that
substitute() is
> not (currently?) supposed to work on the attribute
values of the matched
> element, only on the text content.
I actually figured that out almost immediately after I sent
the message
(isn't that always the way!). Wasn't aware of the bug, but
I got it
working for me by rearranging the selection criteria.
> Other than that, and for your general use case
(replacing ticket with
> task, milestone with job, etc.), the plugin should work
fine once the
> bug is fixed.
Thanks a BUNCH!
-Scott
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the
Google Groups "Trac Development" group.
To post to this group, send email to trac-dev googlegroups.com
To unsubscribe from this group, send email to
trac-dev-unsubscribe googlegroups.com
For more options, visit this group at http://
groups.google.com/group/trac-dev?hl=en
-~----------~----~----~----~------~----~------~--~---
|
|
| Re: ITemplateStreamFilter and Genshi
Transforms |
  United States |
2007-12-17 13:09:11 |
Alec Thomas wrote:
> On 18/12/2007, Christian Boos <cboos neuf.fr> wrote:
>> The HTML-escaped text you're seeing actually comes
from a Genshi bug [1].
>> Now the other problem you have in your example is
that substitute() is
>> not (currently?) supposed to work on the attribute
values of the matched
>> element, only on the text content.
>
> Replying to Christian for context, but this is for
Scott:
>
> The function you want is "attr()":
>
> http:/
/genshi.edgewall.org/wiki/ApiDocs/genshi.filters.transform#g
enshi.filters.transform:Transformer:attr
>
Yes, I went back and studied the genshi.filters.transform
doc's again,
and realized I had the wrong selection.
Thanks!
-Scott
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the
Google Groups "Trac Development" group.
To post to this group, send email to trac-dev googlegroups.com
To unsubscribe from this group, send email to
trac-dev-unsubscribe googlegroups.com
For more options, visit this group at http://
groups.google.com/group/trac-dev?hl=en
-~----------~----~----~----~------~----~------~--~---
|
|
[1-5]
|
|