On Wed, Jan 26, 2011 at 7:16 PM, Vincent Massol <vincent(a)massol.net> 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? 
There are use case where the approach Marius proposes is interesting,
over specialized macros.
I have in mind for example the behavioral "maximizable" CSS class name
(See
http://platform.xwiki.org/xwiki/bin/view/DevGuide/SpecialCSSClasses#HB2.Beh…
)
Right now one have to explicitly write down the SSX/JSX imports.
Of course we could as well write a {{maximizable}} macro that takes
care of that.
But I'm not sure we want to offer specialized macros for each
behavioral CSS class name we want to support and that requires JS
and/or CSS. I understand your remark about the added complexity
though.
Jerome.
 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
 devs(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/devs