Can't we make NL be removed only before velocity directives: (\n\s+)#if (\n\s+)#foreach (\n\s+)#set (\n\s+)#else (\n\s+)#elseif
This would sound much better to me Ludovic Vincent Massol a écrit : > On Apr 17, 2009, at 12:01 AM, Vincent Massol wrote: > > >> On Apr 16, 2009, at 11:49 PM, Ludovic Dubost wrote: >> >> >>> I'm a bit afraid by B2.. It sound really weird to me to have all this >>> >>> 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 >>> >>> >>> Not produce something that would look more like what is typed. >>> > > The problem is that this is scripting and some construct take several > lines for ex and you don't want to put everything on the same line > when you code so we definitely not want to display what is typed. > > -Vincent > > >>> The stripping of leading white spaces sounds ok to me. >>> But the stripping of new lines sounds bad to me. >>> >>> We can still use ## for spacing out code if I don't want a line for >>> it. >>> This sounds a good solution to me. >>> >> B1 means that have to put velocity code on the same line if it goes >> on the same line and we cannot align it on following lines (as shown >> in the example below). >> >> For ex: >> >> hello #if (...) >> ... >> #end >> >> The following will generate an extra NL: >> >> hello >> #if (...) >> ... >> #end >> >> Right now we already have an important issue in velocity code that >> make it awkward and generate lots of problems: the fact that code >> cannot be spaced out and empty lines generate paragraphs. With B1 we >> have the same problems but worse since NL are significants. >> >> >>> I don't really understand the issur with line breaks with the new >>> line >>> starting with space. >>> >> If you strip leading spaces you need a way to force a leading space >> when you have a line break and want to have the second line with >> leading spaces. >> >> >>> For splitting code over 2 lines, could we use \ at the end of the >>> line >>> to remove the new line ? >>> >> \\ forces a line break so it's the opposite. You don't need \\ with >> B1 since NL are significant. >> >> BTW if you want to see more exampleq, see >> http://jira.xwiki.org/jira/browse/XWIKI-3107?focusedCommentId=37707&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_37707 >> >> Another example is: >> >> hello #if (...) >> ... >> #end #if (...) >> ... >> >> meaning you have to make sure you put velocity commands one next to >> the other or they'll be displayed on the next line. >> >> Thanks >> -Vincent >> >> >>> So I'm +1 B1/ -1 on B2/ >>> >>> I'm not sure to understand the implications of A/ >>> >>> Vincent Massol a écrit : >>> >>>> 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 > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > > -- Ludovic Dubost Blog: http://blog.ludovic.org/ XWiki: http://www.xwiki.com Skype: ldubost GTalk: ldubost _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

