[Zope-dev] RE: Additional Quoting; Exposing Auxiliary Tag Functions via "_"

Casey Duncan casey.duncan@state.co.us
Mon, 31 Jul 2000 08:21:44 -0600


Dieter Maurer writes:
> The existing "quote features" name the context for which quoting
> is needed. The context determines what needs to be quoted and
> how quoting has to be done.
> Your proposal does not state the context but only the how.
> Otherwise, I would think such an extension would be good.

You are right here. I just came up with "slash_quote" off the top of my
head. "string_quote" is a good language-neutral name I think that is similar
in spirit to the present format options.

> Thus, I propose:

> 1. new quoting directive "string_quote" quoting Python strings
>    i.e. ", ' and \ are quoted.
>    This would work for Javascript (and other languages with
>    C-like quotation and string literals), too.

> 2. all auxiliary functions for DTML tags, especially quoting,
>    should be available via the namespace.

>    To avaid namespace pollution, they may go into a separate
>    module, say 'aux'.
>    E.g. I would like to use quoting, formatting etc.
>    inside DTML embedded Python expressions in a form like that:

>   <dtml-var "... _.aux.fmt(x,'%m/%d/%Y')...">
>    and
>    <dtml-var ".... _.aux.sql_quote(x)...">

This idea has merit, and extends the usefulness of these options to parts of
an expression rather than just the whole thing. I think calling the module
'aux' might not be the best for code readability sake though. Perhaps it
should just be called fmt or format. Perhaps like so:

<dtml-var "... _.fmt.expr(x, '%.2f') ...">
and
<dtml-var "... _.fmt.string_quote(x) ...">

newbie format methods could be added too (Feature creep alert!) like:

<dtml-var "... _.fmt.currency(x) ...">

in place of the first one.