Hi,
 We really need to close this before 1.9 final. After discussing it
 with Thomas here's what we propose:
 * Introduce a "mode" parameter to the Velocity macro. It's a
 cleaning mode.
 * Implement 2 modes for now:
 - the current mode where no cleaning is done
 - the B2 mode as defined below (using $nl and $sp)
 * Introduce a xwiki.properties config to define the default mode
 (which would be B2 by default for now)
 This allows users who are already using the 2.0 syntax today to keep
 using the current mode. It also allows us to introduce new cleaning
 mode later on (such as the one Ludovic wanted).
 WDYT?
 Here's my +1
 Thanks
 -Vincent
 PS: Please answer ASAP since 1.9 is supposed to be today and Thomas
 will need a few hours to implement this.
 On Thu, Apr 16, 2009 at 3:56 PM, Vincent Massol
 <vincent(a)massol.net> wrote:
  Hi devs,
 We need to come to a conclusion for handling New Lines(NL) and
 white spaces
 (WS) in HTML and Velocity Macro.
 If you remember from 
http://markmail.org/thread/mhqhxnz5twhev5se
 the current
 problem is that we cannot indent scripts since WS and NL are
 meaningful.
 I'd like to reiterate the proposal that was sent but not enough
 people voted
 on it (only Thomas did).
 A) For the HTML macro, we propose to make the following changes:
 - strip NL/WS between elements (elements that don't accept CDATA)
 - strip leading/trailing NL/WS for element content before passing
 them to
 the wiki syntax parser
 B) for the Velocity macro we have 2 choices I can think of:
 1) strip all leading spaces for all lines (but keep NL)
 Note that this means that inside a velocity macro you wouldn't be
 able to
 have a line break with the new line starting with spaces without
 escaping
 the leading space with ~(space).
 Note also that this means we will not be able to add extra new
 lines to
 format the text nicely (since that would add new paragraphs) or
 split a
 single line into several lines for extra readability. This is the
 case today
 with the old syntax and it's a pain not to be able to aerate the
 text with
 empty lines.
 Ex:
     some text
     ~ next line #if (...) this goes on the same line
 #something(...) #end
     This is a new paragraph
 In this example notice that we need the velocity #if to be on the
 same line
 since NL are significant.
 2) strip all leading spaces for all lines + remove all NL too.
 This means we need to ensure we still have one space remaining
 between
 "words" (same as HTML).
 The user would use something like $nl and $sp to explicitely enter
 new lines
 and spaces.
 The advantage is that you control completely the formatting (no
 magic
 anymore) at the cost of a little extra work (adding the $nl where
 required).
 Basically this means the same pros/cons as when you work with HTML
 where you
 need to explicitly add <br/> when you want new lines.
 Ex:
     some text $nl
     $sp next line
     #if (...)
       this goes on the same line
       #something(...) <-- this is also on the same line
     #end
     $nl $nl
     This a new paragraph
 Note: I've aerated the text by putting extra new lines around the
 velocity
 #if to show that it would work.
 3) Same as 1) + strip 1 NL (i.e. line breaks) and only allow
 "forced" line
 breaks with "\\".
 The exact algorithm is: if there's 1 NL remove it, if there's more
 than 1
 leave them.
 Ex:
     some text\\
     ~ next line
     #if (...)
       this goes on the same line
       #something(...) <-- this is also on the same line
     #end
     This a new paragraph
 I'm +1 for A)
 For B) I think the most flexible is 2) but I'm wondering if it's
 too big a
 change for our users or not. If not 2) then 3).
 Thanks
 -Vincent
 
 _______________________________________________
 devs mailing list
 devs(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/devs
 
 Skype: ldubost GTalk: ldubost
 _______________________________________________
 devs mailing list
 devs(a)xwiki.org