On Tue, May 5, 2009 at 5:04 PM, Vincent Massol <[email protected]> wrote:
> > 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 > I love compiling, this is a hobby ;););) > > 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 > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

