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.
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
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs