> On 02 Apr 2016, at 16:21, Vincent Massol <[email protected]> wrote:
> 
>> 
>> 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.

To be clear this would mean:
* Introduce "xhtml/1.1" parser and renderer
* Introduce a “xhtmlfragment/1.1” renderer

Another option is to do the same but with xhtml/5.0 (especially since we’ve 
introduced html/5.0 already).

WDYT?

Thanks
-Vincent

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

Reply via email to