On Apr 17, 2009, at 3:10 PM, Ludovic Dubost wrote:

>
> Let's be clear with exact examples:
>
> With B2/ rule what do we get for
>
> I like this
> #if($a==1)
> apple
> #else
> orange
> #end
> blabla
>
> I would like to get
>
> I like this
> apple
> blabla
>
> Which is passed to the following rendered.
>
> I agree that white spaces should be non meaningful
>
> I like this
>    #if($a==1)
>       apple
>    #else
>      orange
>    #end
>      blabla

In B2 you'd be able to write:

------ start here -----
I like this

## Compute the list of fruits to be...
#if  ($a == 1)
   apple
#else
   orange
#end

$nl
blabla
------ stop here -----

Note the extra lines to present the code in a clean manner that is  
readable (as we do for any java code - count the number of empty new  
lines we have in code just to make it more readable).

-Vincent

> Should get the exact same result
>
> I like this
> apple
> blabla
>
> Basically I think it should give about the same result it used to  
> get in
> syntax 1.0
>
> Ludovic
>
>
> Sergiu Dumitriu a écrit :
>> Ludovic Dubost wrote:
>>
>>> 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
>>>
>>
>> Note that velocity also has its own newline removal rules, which we
>> can't control. This means that even if we want it, we can't  
>> introduce a
>> newline here:
>>
>> Start the line #set($x = 'x')
>> ... and this is on the same line
>>
>>
>>> 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
>>>>>>>
>>>>>>>
>>
>>
>>
>
>
> -- 
> 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

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to