On Apr 9, 2010, at 2:14 PM, Andreas Jonsson wrote:

> Hi,
> 
> I prefer a solution where the end token is changed rather than
> the content.  Look at the embedded parser construction in
> MoinMoin syntax for an example.
> 
> I instead propose to introduce an instruction to the parser in
> the start-tag to expect a different end token.  Something like:
> 
> {{foo #endtag:foobar}}
> content
> {{/foo}}
> still content
> {{/foobar}}

Not a bad idea. It would be backward compatible too.

> For verbatim we could use the same technique as MoinMoin, either:
> 
> {{{{
> content
> }}}
> more content
> }}}}
> 
> or:
> 
> {{{arbitrarystringofalphanumerics
> content
> }}}
> more content
> arbitrarystringofalphanumerics}}}

This would change our syntax since right now we can write: {{{hello}}}

Your solution would loose the ability to have inline verbatim.

Thanks
-Vincent

> 
> 
> Best regards,
> 
> Andreas Jonsson
> 
> 
> Thomas Mortagne wrote:
>> Hi devs,
>> 
>> We have a limitation in the xwiki/2.0 parser related to the way macros
>> are parsed: impossible to have the ending syntax of a macro as content
>> of this macro.
>> 
>> Here is the related jira issue: http://jira.xwiki.org/jira/browse/XWIKI-5077
>> 
>> A good example is: i want to have "{{/code}}" alone as the content of
>> a code macro. That's impossible.
>> 
>> The only way to have {{/code}} in the content is with:
>> 
>> {{code}}
>> {{code}}
>> {{/code}}
>> {{/code}}
>> 
>> or
>> 
>> {{code}}
>> ~{{/code}}
>> {{/code}}
>> 
>> but in the first case you get "{{code}}" you did not want and in the
>> second you get "~" you did not want.
>> 
>> Only solution i can see is to specifically handle escaping of ending
>> macro syntax inside macros of the same name.
>> 
>> Here is some examples:
>> 
>> 1)
>> 
>> {{code}}
>> ~{{/code}}
>> {{/code}}
>> 
>> would give code macro containing "{{/code}}"
>> 
>> 2)
>> 
>> {{code}}
>> ~{{/somemacro}}
>> {{/code}}
>> 
>> would give code macro containing "~{{/somemacro}}"
>> 
>> 3)
>> 
>> {{code}}
>> ~~{{/code}}
>> {{/code}}
>> 
>> would give code macro containing "~" followed by the text "{{/code}}"
>> 
>> 4)
>> 
>> {{code}}
>> ~~~{{/code}}
>> {{/code}}
>> 
>> would give code macro containing "~{{/code}}"
>> 
>> 5)
>> 
>> Then double escaping for each level to escape:
>> 
>> {{box}}
>> {{box}}
>> ~~~{{/box}}
>> {{/box}}
>> {{/box}}
>> 
>> would give box macro containing a box macro containing the text
>> "{{/box}}": the first pass change "~~~{{/box}}" into "~{{/box}}" like
>> in example 4) and the second pass escape "{{/box}}" like in example
>> 1).
>> 
>> So WDYT ?
>> 
>> Here is my +1

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

Reply via email to