<(common.inc.plp)><: Html({ title => 'emoji cheat sheet', version => '1.0', description => [ "Emoticons overview and Unicode equivalents" . " of MSN, Y!M, and Gmail icons.", ], keywords => [qw' sheet cheat emoticon smiley emoji unicode chat im messenger msn yahoo ym gmail google '], stylesheet => [qw'light'], }); :>

IM emoticons

<: print '
'."\n"; for my $system (qw'gmail msn yahoo') { my @info = do "emoji-$system.inc.pl"; my $meta = shift @info or die $@; ref $meta eq 'HASH' or die "invalid $system definitions"; my $title = $meta->{name} // $system; $title = qq{$title} for $meta->{source} || (); printf '

%s

'."\n\n", $meta->{name} // $system; print ''."\n"; for (my $i = 0; $i <= $#info; $i++) { my $name = $info[$i]; unless (ref $info[$i+1] eq 'ARRAY') { printf '
'."\n", $name; next; } my ($input, $flags, $char, $desc) = @{ $info[++$i] }; printf('
%s%s%s%s'."\n", sprintf($meta->{ $flags =~ /\bext\b/ ? 'iconext' : 'icon' } // '%s', $name), EscapeHTML($name), EscapeHTML($input), $desc // $name, $char ? ''.chr($char) : '', ); } print "
\n\n"; } print "

\n\n";