Vincent Massol wrote:
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.
I am not proposing that this style is used for inlined verbatim only for blocks. So the start token is only a start token if it stands on a line by itself outside of any pargraph. Best regards, Andreas Jonsson
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