I had a discussion with Leszek about whitespaces in cTemplate. He made a proposal about solving the problem once and for all. Comments are welcome!

Leszek Gawron wrote:
Reinhard,

I hope you don't mind bringing this to public list. I'd like others to comment on my proposal.

Reinhard Poetz wrote:

Leszek Gawron wrote:

Hello,

Reinhard Poetz wrote:

Hi,

I would need to have something similar to xsl:text in cTemplate. What do you think, is it difficult (for me) to implement jx:text?



Could you give me some usecase?

Do you need your <jx:text/> not to resolve expressions like:
<jx:text>${this goes as it looks even without matching brace </jx:text>

It is fairly easy to create new instructions. I could do it for you though if you gave me your requirements.

    lg


It's about stripping of whitesapces:

<jx:forEach ...>
  <xyz>
    ${abc.name}
  </xyz>
</jx:forEach>

That leads to

<xyz>
   name_1
</xyz>
<xyz>
   name_2
</xyz>

What I'd need is

<xyz>name_1</xyz>
<xyz>name_2</xyz>

I know, using another formatting in the template, this can be worked around, but sometimes this isn't readable anymore (who want's to study lines of 200 characters).

Do you know what I mean?


Yes .. but isn't it just the opposite to xsl:text? xsl:text is about preserving whitespace and not removeing it. Another question for you is: how would you like this to be handled:

<jx:forEach ...>
  <xyz>
    ${abc.name}
    <nested-tag>            ${abc.description}             </nested-tag>
  </xyz>
</jx:forEach>

should nested-tag also have whitespace stripped? If this functionality should be inherited we could have something like:

<xyz jx:strip-whitespace="true">
  ${abc.name}
  <nested-tag>            ${abc.description}             </nested-tag>
</xyz>

which would lead to:
<xyz jx:strip-whitespace="true">name_1<nested-tag>desc</nested-tag></xyz>

we could also introduce jx:strip-whitespace stack so you could override your setting in deeper section of the document

<xyz jx:strip-whitespace="true">
  ${abc.name}
<nested-tag jx:strip-whitespace="false"> ${abc.description} </nested-tag>
</xyz>

That would give you:

<xyz jx:strip-whitespace="true">name_1<nested-tag> desc </nested-tag></xyz>

(this might be unreadable because my thunderbird tries to outsmart me:))


in general it could be: <jx:strip-space="true|false|inherit"> (where inherit is something that equals to no jx-strip-space attr).

whitespace problem affects separate .jx files with macros - you get a loooooot of whitespace imported into your document. We should come up with some generic functionality about preserving/keeping whitespace.

I suppose <jx:import uri="view/macros.jx" jx:strip-whitespace="true"/> could be of great use for macros only inclusions.

WDYT?

        

        
                
___________________________________________________________ Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de

Reply via email to