[Zope3-Users] z3c.zrtresource or zc.resourcelibrary
Jeff Shell
eucci.group at gmail.com
Wed Nov 1 19:39:42 EST 2006
On 10/31/06, Gary Poster <gary at zope.com> wrote:
> > I do a lot inline in my Python code, using our nevow.Stan inspired tag
> > generation system and little bits and pieces I threw together to ease
> > in generating short bits of JS from within Python. In particular,
> > marshalling of basic Python structures to Javascript using a modified
> > `jsonencode` module from the `simplejson` package.
>
> What are the modifications? The things you list below all sound like
> normal simplejson stuff.
The main modification is that it pass over 'raw' JS Code - statements
that have already been encoded, function calls, raw names, etc. I
think I did some tweaks to its string quoting system as well, but I
don't recall.
::
>>> print js.encode('raw')
'raw'
>>> print js.encode(js.raw('raw'))
raw
This gets to be handy when generating function calls. `js.call` str's
the first option, and then encodes the rest to create an arguments
list, which it returns as a `js.raw` object so that it won't be quoted
as a string::
>>> dumbalert = js.call('window.alert', 'Stupid simple example')
>>> print dumbalert
window.alert('Stupid simple example')
>>> print js.anonymous(js.expr(dumbalert))
function() {window.alert('Stupid simple example');}
>>> print js.call('setTimeout', js.anonymous(js.expr(dumbalert)), 5*1000)
setTimeout(function() {window.alert('Stupid simple example');}, 5000)
It's simple, but helpful, especially as calls and data build up. But
even without building up a little system like this, it's probably good
to use tools like `simplejson` to keep javascript data pretty, even in
generated strings such as in TAL/TALES, just as it's good practice to
use SQL Quoting.
> >> Other JS-related bits to know about (you'll have to do your own
> >> reading sometime :-): http://zif.hill-street.net/headincludes (WSGI
> >> variation on resourcelibrary), http://zif.hill-street.net/gzipper/
> >> (WSGI, gzips all output for smaller browser page sizes), http://
> >> zif.hill-street.net/jsmin/ (WSGI, compresses JS for smaller browser
> >> page sizes), and http://svn.zope.org/z3c.javascript/
> >> (resourcelibrary-
> >> aware collection of mochikit, dojo, et al).
> >
> > Ah, the real reason for my response here: how does one use third party
> > WSGI "Middleware" with Zope?
>
> zope.paste, maybe (http://svn.zope.org/zope.paste/)? I think that's
> what Jim Washington has used.
Ahh, thanks, I'll take a look.
--
Jeff Shell
More information about the Zope3-users
mailing list