On Thu, Jan 27, 2011 at 13:54, Marius Dumitru Florea
<[email protected]> wrote:
> On 01/27/2011 02:37 PM, Vincent Massol wrote:
>>
>> On Jan 27, 2011, at 12:59 PM, Marius Dumitru Florea wrote:
>>
>>> On 01/27/2011 01:41 PM, Vincent Massol wrote:
>>>>
>>>> On Jan 27, 2011, at 10:05 AM, Marius Dumitru Florea wrote:
>>>>
>>>>> On 01/26/2011 08:16 PM, Vincent Massol wrote:
>>>>>> Hi Marius,
>>>>>>
>>>>>> While this is technically interesting isn't this adding too much
>>>>>> complexity for the gain it brings?
>>>>>>
>>>>>> For ex:
>>>>>> * the transformation will run always on all pages for all content, thus
>>>>>> adding some small performance lag
>>>>>> * it's a little bit too magical maybe
>>>>>>
>>>>>> I feel your example doesn't clearly show the advantage:
>>>>>> * the grouping is saving 1 line of code in the example
>>>>>> * the automatic import is saving 4 lines at the expense of clarity
>>>>>>
>>>>>> Personally I think i'd *much* prefer to hide all this behind a gallery
>>>>>> macro:
>>>>>>
>>>>>> {{gallery}}
>>>>>> image:first.png
>>>>>> ...
>>>>>> image:last.png
>>>>>> {{/gallery}}
>>>>>>
>>>>>> That macro would automatically add the SSX/JSX + class, thus hiding all
>>>>>> complexity and implementation details from users.
>>>>>>
>>>>>> WDYT?
>>>>>
>>>>> Indeed, this will do for my purpose (office presentation viewer). But,
>>>>> as Jerome said, sometimes using style names is more convenient.
>>>>
>>>> Yes but in that case we allow it (as you've shown in your example below)
>>>> even if not 100% convenient (it's not that bad) :)
>>>>
>>>
>>>> I think it's good to direct users to package more complex things into
>>>> macros, especially since it's easy to package as a wiki macro. It has
>>>> several advantages, one of them being that it makes the "snippet" reusable.
>>>
>>> One issue we have is that wiki macros that import JS/CSS can't be used
>>> inside velocity code.
>>
>
>> what's the problem?
>
> Nested script macros. We should introduce a:
Wiki macros are supposed to break nested script protection like
include macro and i'm pretty sure there is tests for it so I don't see
what's the issue here.
>
> {{use type="jsx" resource="Space.Page"/}}
>
> to overcome this issue.
>
> Thanks,
> Marius
>
>>
>> Thanks
>> -Vincent
>>
>>>
>>> Thanks,
>>> Marius
>>>
>>>>
>>>> Thanks
>>>> -Vincent
>>>>
>>>>>> On Jan 24, 2011, at 5:08 PM, Marius Dumitru Florea wrote:
>>>>>>
>>>>>>> Hi devs,
>>>>>>>
>>>>>>> I have this wiki syntax:
>>>>>>>
>>>>>>> ----------8<----------
>>>>>>> {{velocity output="false"}}
>>>>>>> $xwiki.ssrx.use('uicomponents/widgets/gallery.css')
>>>>>>> $xwiki.jsrx.use('uicomponents/widgets/gallery.js')
>>>>>>> {{/velocity}}
>>>>>>> (% class="gallery" %)(((
>>>>>>> image:first.png
>>>>>>> ...
>>>>>>> image:last.png
>>>>>>> )))
>>>>>>> ---------->8----------
>>>>>>>
>>>>>>> and I'd like to make the resource import automatic. I think we can
>>>>>>> achieve this in two steps.
>>>>>>>
>>>>>>> (1) Add a way to group skin extensions. I'd like to be able to write
>>>>>>> this:
>>>>>>>
>>>>>>> ----------8<----------
>>>>>>> {{velocity output="false"}}
>>>>>>> $xwiki.gsx.use('gallery')
>>>>>>> {{/velocity}}
>>>>>>> (% class="gallery" %)(((
>>>>>>> image:first.png
>>>>>>> ...
>>>>>>> image:last.png
>>>>>>> )))
>>>>>>> ---------->8----------
>>>>>>>
>>>>>>> (2) Write a rendering transformation that looks for style names (CSS
>>>>>>> classes) in the content and imports the skin extension group with the
>>>>>>> same name. This way I'd be able to write just:
>>>>>>>
>>>>>>> ----------8<----------
>>>>>>> (% class="gallery" %)(((
>>>>>>> image:first.png
>>>>>>> ...
>>>>>>> image:last.png
>>>>>>> )))
>>>>>>> ---------->8----------
>>>>>>>
>>>>>>> Let's consider the technical details now:
>>>>>>>
>>>>>>> (1) I propose we add two XWiki classes:
>>>>>>>
>>>>>>> XWiki.SkinExtension
>>>>>>> * type (StaticList): jsrx
>>>>>>> * resource (String): uicomponents/widgets/gallery.js
>>>>>>>
>>>>>>> XWiki.SkinExtensionRole
>>>>>>> * role (String): gallery
>>>>>>>
>>>>>>> which will be used by a new SkinExtension plugin and component
>>>>>>> (hint=gsx). The XWiki.SkinExtensionRole objects will be joined with
>>>>>>> XWiki.SkinExtension objects by document id. In other words, in order to
>>>>>>> create a skin extension group you have to add a XWiki.SkinExtensionRole
>>>>>>> object and multiple XWiki.SkinExtension objects to a document.
>>>>>>>
>>>>>>> To make group creation easier for StyleSheetExtension and
>>>>>>> JavaScriptExtension the new skin extension plugin will include them
>>>>>>> automatically in the group defined by the XWiki.SkinExtensionRole. In
>>>>>>> other words if you want to group a JSX and a SSX that are on the same
>>>>>>> document you just have to add a XWiki.SkinExtensionRole object to that
>>>>>>> document.
>>>>>>>
>>>>>>> (2) The rendering transformation that will automatically import the skin
>>>>>>> extension groups based on style names will use the skin extension
>>>>>>> component defined at step (1). This transformation should be the last
>>>>>>> one executed.
>>>>>>>
>>>>>>> WDYT? I'd like to implement this ASAP as it doesn't seem to be very
>>>>>>> complicated.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Marius
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
--
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs