The @PLUGIN@ plugin allows users to see emoticons in comments as
images.

Emoticons are only rendered in expanded comments. Collapsed comments
only show a one-line summary and for this summary no replacements are
done.

Licenses
--------

The @PLUGIN@ plugin is availalble under the
[Apache2.0](../../../Documentation/licenses.html#Apache2_0) license.

All icons used in this plugin are taken from the
[SILK ICONS](http://famfamfam.com/lab/icons/silk/) library by Mark
James. They are used under the
[CC-BY3.0](../../../Documentation/licenses.html#CC-BY3_0) license.
