> On 02 Apr 2016, at 16:13, Vincent Massol <[email protected]> wrote:
> 
>> 
>> On 02 Apr 2016, at 15:38, Vincent Massol <[email protected]> wrote:
>> 
>> Hi devs,
>> 
>> One issue we have ATM is that the xhtml/1.0 parser requires valid XHTML but 
>> the xhtml/1.0 renderer generates invalid XHTML (it generates fragments 
>> only). This causes https://jira.xwiki.org/browse/XWIKI-13278 for example.
>> 
>> I’m proposing to:
>> * Modify "xhtml/1.0" renderer to generate valid XHTML (i.e. xml declaration 
>> + doctype + html element)
>> * Introduce a new "xhtmlfragment/1.0” renderer
>> * Have annotated versions of both for the WYSIWYG editor
>> 
>> WDYT?
> 
> Several points:
> * The change above could be rationalized as fixing a bug since it’s not 
> normal that an XHTML/1.0 renderer would generate invalid XHTML
> * It’s potentially going to break some scripts. For example if you have in a 
> custom vm: $services.rendering.render($panelUix.execute(), "xhtml/1.0”)
> 
> Thus if we want to make sure that we don’t break backward compatibility we 
> should instead:
> * Deprecate the “xhtml/1.0” renderer
> * Introduce 2 new renderers instead of one: “xhtmlfull/1.0” and 
> “xhtmlfragment/1.0”
> * The problem is that this is not going to work nicely since it would mean we 
> would also need to have parsers for those and the admins would need to decide 
> which syntax to allow in his wiki amongst: xhtmlfull/1.0, xhtml/1.0, 
> html/4.01, xhtmlfragment/1.0. That’s a lot to choose from…
> 
> So we have 2 real choices I think:
> * Do as I suggested above but break backward compat in some places (we need 
> to assess more precisely where it would break)
> * Or instead make the xhtml/1.0 parser support reading fragments. The 
> advantage with this is that it won’t break backward compat. The cons is that 
> it’s quite hard to implement since we have a stream/reader as input and there 
> are plenty of ways to write xhtml. But we could decide that we only support 
> the following use case:
> ** Read the first char and if it’s not ‘<‘ then add declaration + doctype  + 
> html
> ** If the first char is ‘<‘ then don’t add anything
> 
> Right now I’m going to try implementing this. Let me know what you think.

I’ve thought about another possibility. Implement a "xhtml/1.1” parser/renderer 
instead. It could also comply with XHTML 1.1.

We would “deprecate” the xhtml/1.0 syntax and favor using the 1.1 version.

This seems the best to me, wdyt? We’ve already added an html/5.0 renderer 
recently FTR.

Thanks
-Vincent

> Thanks
> -Vincent
> 
>> Thanks
>> -Vincent

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

Reply via email to