Vincent Massol 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). >
+1 for A and B2 -- Sergiu Dumitriu http://purl.org/net/sergiu/ _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

