On May 5, 2009, at 5:01 PM, Pascal Voitot wrote: > I will try to compile it and deploy it on my website... > > To be quicker, what module have you modified?
xwiki-xml xwiki-rendering-api xwiki-rendering-macro-html You can also wait for a snapshot build at http://maven.xwiki.org Thanks -Vincent > regards > Pascal > > On Tue, May 5, 2009 at 4:58 PM, Vincent Massol <[email protected]> > wrote: > >> >> On May 5, 2009, at 4:16 PM, Pascal Voitot wrote: >> >>> no better idea... >>> a very special case to remind in the syntax help to my mind... >> >> Just committed the new behavior. Would be great if some users/devs >> could verify it works on their use cases. >> >> Thanks >> -Vincent >> >>> Pascal >>> >>> On Tue, May 5, 2009 at 9:40 AM, Vincent Massol <[email protected]> >>> wrote: >>> >>>> After trying to implement it I've found the following caveats: >>>> >>>> * if the user wants an html comment he needs to escape the -- >>>> * if the user wants a NL he'll need to enter <br/> >>>> * if the user wants a paragraph he'll need to enter <p>...</p> >>>> * And the most problematic one IMO: the user needs to be very >>>> careful >>>> about new lines since: >>>> >>>> <table> >>>> <tr> >>>> <td> >>>> * [[listitem]] >>>> </td> >>>> </tr> >>>> </table> >>>> >>>> is very different from >>>> >>>> <table> >>>> <tr> >>>> <td> >>>> * [[listitem]] >>>> >>>> </td> >>>> </tr> >>>> </table> >>>> >>>> In the first case the </td>, </tr> and </table> and continuation of >>>> the list item written in wiki syntax since the wiki parser accepts >>>> multiline content... hence you'll get in XHTML: >>>> >>>> <table><tbody><tr><td><ul><li><!--startwikilink:listitem--><span >>>> class="wikicreatelink"><a href="/xwiki/bin/view/listitem? >>>> parent=xwiki:Space.Page"><span >>>> class="wikigeneratedlinkcontent">Page</ >>>> span></a></span><!--stopwikilink--></td></tr></tbody></table></ >>>> li></ >>>> ul> >>>> >>>> which is completely invalid. >>>> >>>> The same applies for: >>>> >>>> {{macro/}} >>>> </td> >>>> >>>> vs >>>> >>>> {{macro/}} >>>> >>>> </td> >>>> >>>> in the first case the macro is inline and will generate inline >>>> content >>>> and in the second case it's standalone. >>>> >>>> Still trying to figure out a best solution but I don't see one >>>> right >>>> now... >>>> >>>> If you have any idea, shoot! >>>> >>>> Thanks >>>> -Vincent >>>> >>>> On May 4, 2009, at 3:25 PM, Vincent Massol wrote: >>>> >>>>> Hi, >>>>> >>>>> After discussing with Thomas we've reached the conclusion that we >>>>> should change the way the HTML macro handle its content when >>>>> wiki=true. >>>>> For ex take the following input: >>>>> >>>>> {{velocity}} >>>>> ... >>>>> {{html wiki="true"}} >>>>> <form> >>>>> $xwiki.includeForm("XWiki.MyClassSheet") >>>>> <br /> >>>>> <p> >>>>> <input type="submit" name="submit" value="Create this new >>>>> Workpackage" /> >>>>> </p> >>>>> </form> >>>>> {{/html}} >>>>> ... >>>>> {{/velocity}} >>>>> >>>>> And assume that MyClassSheet has some $doc.display() velocity code >>>>> which thus generate {{html}} macros. >>>>> >>>>> Current Result >>>>> ============ >>>>> >>>>> Right now here's what happens: >>>>> 1) velocity macro is executed and $xwiki.includeForm executes >>>>> 2) MyClassSheet generate {{html}} macro content thus yielding: >>>>> >>>>> {{html wiki="true"}} >>>>> <form> >>>>> {{html}}...<someTag>...</someTag>{{/html}} >>>>> </form> >>>>> {{/html}} >>>>> >>>>> 3) After velocity has finished executing the velocity macro calls >>>>> the wiki parser on the result and thus the top level HTML macro >>>>> executes >>>>> 4) since wiki=true the content is given to a SAX parser and each >>>>> XML >>>>> tag content is given to the wiki parser. Thus "{{html}}...", "..." >>>>> and "{{/html}}" will be parser by the wiki parser separately >>>>> (because <someTag> is valid XML), thus generating non expected >>>>> content as a result. >>>>> >>>>> Proposed change >>>>> ============== >>>>> >>>>> Modify the HTML behavior so that the wiki parser executes first >>>>> (instead of the SAX parser) and render the result using a special >>>>> renderer that prints the special symbols and text as is. >>>>> >>>>> When run on our example this would give (same steps 1) and 2)): >>>>> >>>>> 3) wiki parser executes and generate XDOM. Render it using the >>>>> special renderer >>>>> >>>>> Note that this means that if in HTML your write content that has a >>>>> meaning in some wiki syntax you'll need to escape it. For >>>>> example if >>>>> you have: >>>>> >>>>> {{html wiki=true}} >>>>> <!--hello--> >>>>> {{/html}} >>>>> >>>>> you'll get some strikethrough. So you'll need to write instead: >>>>> >>>>> {{html wiki=true}} >>>>> <!~-~-hello~-~-> >>>>> {{/html}} >>>>> >>>>> WDYT? >>>>> >>>>> Here's my +1 >>>>> >>>>> Thanks >>>>> -Vincent >>>>> >>>> >>>> _______________________________________________ >>>> devs mailing list >>>> [email protected] >>>> http://lists.xwiki.org/mailman/listinfo/devs >>>> >>> _______________________________________________ >>> devs mailing list >>> [email protected] >>> http://lists.xwiki.org/mailman/listinfo/devs >> >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs >> > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

