On 11/13/09 9:56 PM, Jerome Velociter wrote:
> On 11/13/09 8:44 PM, Guillaume Lerouge wrote:
>    
>> Hi,
>>
>> On Fri, Nov 13, 2009 at 8:31 PM, Jerome Velociter<[email protected]>   wrote:
>>
>>      
>>> On 11/13/09 8:16 PM, Guillaume Lerouge wrote:
>>>        
>>>> Hi,
>>>>
>>>> On Fri, Nov 13, 2009 at 8:05 PM, Jerome Velociter<[email protected]>
>>>>          
>>>    wrote:
>>>        
>>>>          
>>>>> On 11/12/09 3:54 PM, Marius Dumitru Florea wrote:
>>>>>
>>>>> [snip]
>>>>>            
>>>>>>> BTW is it such a good idea to load extensions in edit mode?
>>>>>>> I'm not very convinced, since some extensions could affect the content
>>>>>>> of the edited DOM, leading to weird content. (Think about the addSizes
>>>>>>> extension of the SX tutorial for example
>>>>>>>
>>>>>>>                
>>>>>            
>>> http://platform.xwiki.org/xwiki/bin/view/DevGuide/SkinExtensionsTutorial).
>>>        
>>>>>> There were some complains regarding the fact that the live table
>>>>>>              
>>> doesn't
>>>        
>>>>>> look the same in edit mode so I had to load the extensions in edit mode
>>>>>> ( http://jira.xwiki.org/jira/browse/XWIKI-3991 ). This is just an
>>>>>> example. Once we have transformation markers any JSX will be able to
>>>>>> change the DOM provided the changes are marked. Also, I'm thinking that
>>>>>> a macro could use a JSX to "draw" something on the page. If JSX are not
>>>>>> loaded in edit mode the page will look different.
>>>>>>
>>>>>> Marius
>>>>>>
>>>>>>              
>>>>> http://markmail.org/thread/rubnuunk4vd25bzt see :)
>>>>>
>>>>> I don't remember we've voted on that, we probably should have. I'm
>>>>> really not fan of executing the scripts in the WYSIWYG, in the end.
>>>>> Even the "mark DOM changes" technique will not be enough, as we can't
>>>>> control how JS libraries we use do inject their content (typically the
>>>>> lightbox code here) and most extensions are made of/rely on external
>>>>> libraries.
>>>>>
>>>>>            
>>>> I'm pretty sure we discussed it since I recall discussing about this with
>>>> Vincent about this in the past (maybe 1 year ago, when we started working
>>>>          
>>> on
>>>        
>>>> the new editor.)  Marius eventually implemented full rendering and we
>>>>          
>>> went
>>>        
>>>> along with it up to today.
>>>>
>>>> It has some great advantages (live macro rendering looks cool in demos)
>>>>          
>>> but
>>>        
>>>> also some drawbacks. Additionally, I'm afraid that the cost of making
>>>>          
>>> live
>>>        
>>>> rendering in edition mode work flawlessly will take a *lot* of work given
>>>> the huge complexity and variety of situations that might be encoutered.
>>>>
>>>> For the livetables ( http://jira.xwiki.org/jira/browse/XWIKI-3991 ) I
>>>>          
>>>>> tend to think it would have been enough to have the proper CSS, but not
>>>>> the JS (and have the table would remain empty). I don't see the value of
>>>>> having the tables really work in edit mode.  (Except for saying "it's
>>>>> really WYSIWYG").
>>>>>
>>>>>            
>>>> I agree with Jérôme here. I think we might have been aiming too high.
>>>>          
>>> While
>>>        
>>>> it's very cool to have simple macros such as the ToC one execute right
>>>>          
>>> away
>>>        
>>>> in the browser, maybe we could add a default "executeInEditMode"
>>>>          
>>> parameter
>>>        
>>>> to all macros that lets the macro authors and/or users state whether they
>>>> want their macros to get executed in the WYSIWYG or to use a placeholder
>>>> instead.
>>>>          
>>> Well rendering macros and executing javascript code are different
>>> things. I think still in favor of executing macros (though maybe the
>>> parameter makes sense, I haven't though about it too much).
>>>
>>> Executing JS is different, it potentially can affect the whole document
>>> content, and there is no way we will be able to deal with it 100%, even
>>> introducing the transformation markers (how do we manage the extensions
>>> that remove content,  can we mark that ? how do we manage external
>>> libraries like the lightbox one that are not aware of the WYWISYG and
>>> its markers ? etc.)
>>>
>>> Jerome.
>>>
>>>        
>>>> In many cases, trying to display what's in the macro / embedded code
>>>>          
>>> leads
>>>        
>>>> to issues of usability, performance and sometimes plain bugs as
>>>>          
>>> illustrated
>>>        
>>>> by the livetable example. We're already going back in some cases such as
>>>>          
>>> the
>>>        
>>>> Flash one.
>>>>
>>>> WDYT?
>>>>
>>>> I don't like too much the strategy that would say "extensions developers
>>>>          
>>>>> have to check if they are executed in the WYSIWYG (I guess it's
>>>>> possible, not tried yet) and adapt the extension behavior accordingly"
>>>>> Feels somehow a bit too complex.
>>>>>            
>>>        
>> Actually maybe this is a non-issue / best practice to publish for macro
>> writers since it's very easy to write something like:
>>
>> {{velocity}}
>> #if($context.action == 'edit')
>> Placeholder
>> #else
>> JavaScript Code
>> #end
>> {{/velocity}}
>>
>> WDYT?
>>      
> That's both not the problem, and a wrong solution :)
>    
> That's not the problem, because the javascript code is not inline (it's
> in a script tag that get injected in the<head>  by the SX plugins), and
> can be there because it's an "Always used" extension (so no
> $xwiki.jsx.use call that you could skip in edit mode).
>
> And that would have not been a solution because the WYSIWYG renders
> actually the content in view mode, not edit.
>    
OK, the solution would have worked in fact, so that leave it just "not 
the problem" :)

Jerome.
> When I mentioned the strategy of developers testing if they are getting
> executed in the WYSIWYG, it was from the pure JavaScript side, not from
> the wiki content / velocity one. So something like checking for the
> presence of some functions/variables that exists only in the context of
> the WYSIWYG, or looking at structure of the frame to know if current
> frame is the top level window or not, etc - haven't looked into it really).
>
> Hope it clarifies,
> Jerome.
>
>    
>> Guillaume
>>
>>      
>>>>
>>>> I agree. The "don't execute in WYSIWYG editor" parameter for macros could
>>>>          
>>> be
>>>        
>>>> a solution here.
>>>>
>>>> Guillaume
>>>>
>>>> Jerome.
>>>>          
>>>>> _______________________________________________
>>>>> 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

Reply via email to