Update:
I have made a proof of concept on my machine (but I cannot commit it yet).
On /resources/icons, I have created a file called "default.iconset".
The content of this file is:
----
## General settings
xwiki.iconset.cssfile =
$services.webjar.url('font-awesome/4.1.0/css/font-awesome.min.css')
xwiki.iconset.type = font
xwiki.iconset.render.wiki = {{html clean="false"}}<span class="fa
fa-$icon"></span>{{/html}}
xwiki.iconset.render.html = <span class="fa fa-$icon"></span>
## Icons
transmit = anchor
earth = globe
-----
I have also created a script services $services.icon, with the following
methods:
$services.icon.render() which display the icon,
$services.icon.renderHTML() which display the icon on an HTML context.
eg:
$services.icon.render('transmit') generates:
{{html clean="false"}}<span class="fa fa-transmit"></span>{{/html}}
and
$services.icon.renderHTML('transmit') generates:
<span class="fa fa-transmit"></span>
If I want to use images instead of a font-based icon, I can do something
like
---
xwiki.iconset.render.wiki = image:IconSets.MyIconSet@${icon}.png
xwiki.iconset.render.html = <img
src="$xwiki.getAttachmentURL('IconSets.MyIconSet', "${icon}.png)"
alt="icon" />
---
So, depending of the current icon theme, it generates a <span> tag (for
font-based icon) or an <img> tag (for image-based icons).
Of course, we can create our own icon set directly on the wiki, exactly
like we create translation documents.
I will also add an "iconTheme" setting in XWikiPreferences, so the user is
able to select the icon theme she wants to use, exactly as she can select
her color theme.
WDYT?
Guillaume
2014-07-16 16:42 GMT+02:00 Guillaume "Louis-Marie" Delhumeau <
[email protected]>:
> Hi Vincent,
>
> 2014-07-16 16:21 GMT+02:00 [email protected] <[email protected]>:
>
> Hi Guillaume,
>>
>> Good start.
>>
>> I think you also list all the Use Cases that we wish to support to make
>> them explicit and to be sure we’re not missing any.
>>
>> Some comments:
>>
>> 1) I think it’s nice to be able to use different icon set if I want, like:
>>
>> - image:icon:accept (default xwiki icon set)
>> - image:icon:silk:accept (silk icon set)
>> - image:icon:whatever:somename (whatever icon set)
>>
>> Note that this point 1) is not in opposition to your proposal, it’s
>> orthogonal (and it should be put only in XWiki Syntax 2.2).
>>
>
> I have think about it, and decided that it could go in an other proposal.
> I wanted this one to be little :)
>
>
>>
>> 2) What happens to the current icons from the silk icon set that are not
>> in the XWiki Icon Set?
>>
>> So if I was using, say, image:icon:film_edit, I guess it’s going to break
>> when I upgrade since “film_edit” wouldn’t be part of the XWiki Icon Set.
>>
>
> I don't know. Maybe a fallback to silk? WDYT?
>
>
>>
>> 3) You haven’t specified how we would perform the binding precisely (one
>> xproperty per binding might be too much IMO), we might want another more
>> compact format (in plain text for example)
>>
>
> I was thinking about 1 xproperty per icon, to use our XWiki Model. But now
> I think we can use a format similar to our translation pages.
>
>
>>
>> 4) How do you bind an icon set to a skin? How do you say that Flamingo is
>> going to use the “iconset1” icon set by default and Colibri is using
>> “iconset2” by default?
>>
>
> To be consistent with the color themes, I don't handle this use-case. (see
> 8)
>
>
>>
>> 5) How do I specify the size of the icon I wish to use when using the
>> wiki syntax: For example if I want to use 16px or 32px how do I specify it
>> in “image:icon:accept”? For example when writing the Applications Panel, if
>> the panel has a “large” width I’m going to use the 16px and if it has
>> “small” width I want to use the 32px.
>>
>
> We can extend the Wiki Syntax to have the size, example:
> image:icon:accept:lg (for large)
> image:icon:accept:sm (for small)
>
>
>>
>> 6) Should the user be able to install a new icon set through an extension
>> (ie installed through the EM) as a use case? I think so.
>>
>
> Yes, why not. But maybe some of them will only works with some skins.
> Example: Bootstrap bundles glyphicons, so we can create a glyphicon set
> that will only works with bootstrap-based skins.
>
>
>>
>> 7) What happens if there’s no IconTheme xobject in the wiki?
>>
>
> I propose a default icon theme in the webapp folder. That is why a plain
> text format is better by the way (see 3).
>
>
>>
>> 8) Do you propose to let the user choose the IconTheme he wishes to use
>> or should an icon theme be forced by the skin?
>>
>
> I propose something like we have for color themes. In the administration,
> the user can choose the skin, the color theme, and the icon theme.
>
>
>>
>> Thanks
>> -Vincent
>>
>> On 16 Jul 2014 at 15:27:24, Guillaume Louis-Marie Delhumeau (
>> [email protected](mailto:[email protected])) wrote:
>>
>> > Hi xwikiers! Here a new proposal about Icon Themes, that I would like to
>> > introduce in XWiki 6.2.
>> >
>> > Issue:
>> > -------
>> > In Colibri we use the "Silk" icons set. In Flamingo we want to use
>> > monochromatic icons (font-based icon set). But we don't want to break
>> the
>> > retro-compatibility.
>> >
>> > This proposal is only about improvements to the XWiki Syntax in order to
>> > insert icons:
>> > eg: image:icon:accept
>> >
>> > The proposal is composed of A+B+C:
>> >
>> > A - Create an icon set for XWiki
>> > -------
>> >
>> > As an API, XWiki proposes a selection of icons that developers can use.
>> We
>> > ensure to not break the retro-compatibility.
>> > Actually, we do not create these icons. We bind them to existing ones
>> (from
>> > silk or whatever).
>> >
>> > Example:
>> > - accept
>> > - cancel
>> > - wiki
>> > - user
>> > - pdf
>> > etc...
>> >
>> > B - Create an Icon Theme
>> > -------
>> >
>> > Like the ColorThemes, we can create IconThemes. Concretly, for every
>> icons
>> > proposed in A), we create a mapping to an icon from Silk, FontAwesome,
>> or
>> > other icon sets.
>> >
>> > Theme1:
>> > accept:
>> >
>> > Theme2:
>> > accept:
>> >
>> > C - Bind the Wiki Syntax to the current icon theme
>> > -------
>> >
>> > When a user writes:
>> > image:icon:accept
>> >
>> > it actually executes the mapping contained by the active IconTheme.
>> >
>> > Here is my +1.
>> >
>> > WDYT?
>> >
>> > Thanks,
>> >
>> > Guillaume
>> > _______________________________________________
>> > devs mailing list
>> > [email protected]
>> > http://lists.xwiki.org/mailman/listinfo/devs
>>
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
>
>
> Thanks,
> Guillaume
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs