On Thursday 02 November 2006 14:29, Matt Rogers wrote:
> > Is it possible that e.g. : ) in MSN yields another image than in ICQ?
>
> People will want this, so that they can make their emoticons per protocol
> look like the ones from the original clients.

Thinking about this more, in case of conflicting emoticons that even makes 
sense. Having this just to have 5 slightly different looking :) faces for the 
sake of being the same as the native client is silly IMNSHO. I fully expect 
people to want it though ;) (And it doesn't hurt to support it in any case.)

> > Or is it just that the ascii devilish grin } : - > in MSN should be coded
> > as ( 6 ) ?
>
> People will want this too, well, at least I do. :)

Me too :)

> IIUC, the patch on the tracker is just a proposal. While i'm sure that some
> discussion on gaim-devel took place, I don't read gaim-devel (i'm on enough
> MLs) so I am not aware of what they discussed

Hmm, would be interesting to know though.

> > Also, a long-standing wish that I eventually wanted to implement in
> > Kopete back when I was still working on it was to allow the engine to do
> > more sophisticated markup as well, like changing *bold* to <b>bold</b>
> > and /italic/ to <i>italic</i>, or even to support '/me' again.
> >
> > If we make the icon spec a shared standard (yes please! :) ) we have to
> > keep in mind any ideas like that. Either we decide to handle those
> > outside the .xml, we decide to not implement them at all, or we need to
> > provide the necessary hooks for extensibility.
>
> I like the idea of hooks better, personally.

Ok, with that in mind, a stab at such hooks...

I see two possible extension points here:

1. Replace text with markup rather than an image
2. Allow variable parts (regexp?) in the pattern, e.g. "_([^\s])+_" for
      underlining text.

Examples (using regexp syntax):

* "^-{5,}\$"  --> "<hr />" to insert a horizontal line if more than 5 dashes
      are typed on an otherwise empty line
      This is an example of only #1.
* "_([^\s])+_" --> "<ul>\1</ul>" to underline text.
      This is an example of #1 and #2.
* "o O ( [^)])+ )" --> an image of a thought balloon with text inside
      This is (somewhat) an example of #1 and #2.

I can't think of an example of just #2 (i.e. variable pattern, but only an 
image as result).

Item #2, however, is more easy to implement by adding a new element <markup/> 
next to <emoticon/>. It's also easy to gracefully fail on implementations 
that don't support it by simply ignoring the element. So as long as clients 
don't try to do a DTD or schema validation on the unsupported element 
the .xml is even downwards compatible.

Item #1 is harder, since it also affects existing elements. Instead of a 
file="" attribute we need another attribute or child element. Perhaps 
markup="" ? Graceful fallback is hard to achieve with this though.

As I said, I can't think of a case where we want a variable pattern, but only 
an image as replacement. If we accept that we can limit the extension hook to 
just a new element <markup /> and implement it all there.

More stuff that's needed in any case:

- versioning on the root element <messaging-emoticon-map />, so old and new
  themes can be distinguished
- consideration of KMail and possibly other apps who also use the themes
- adding of variables in the replacement markup, ideally Adium
   style-compatible to lower learning curve. Otherwise "/me" cannot be
   implemented, since it needs the user's display name.

Thoughts? If this is about it we can think about a formal syntax for 
<markup/>, otherwise it's back to the drawing board :)

-- 
Martijn

Abandon the search for truth: settle on a good fantasy.
_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://mail.kde.org/mailman/listinfo/kopete-devel

Reply via email to