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?
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