Html({
title => 'emoji cheat sheet',
- version => 'v1.0',
+ version => '1.0',
description => [
"Emoticons overview and Unicode equivalents"
. " of MSN, Y!M, and Gmail icons.",
<h1>IM emoticons</h1>
<:
-my %ICONURL = (
- msn => 'http://messenger.msn.com/Resource/emoticons/%s.gif',
-# yahoo => 'http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons6/%s.gif',
- yahoo => 'http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/%s.gif',
-# yahoo-web => 'http://l.yimg.com/a/i/us/msg/emoticons/%s.gif',
- gmail => 'http://mail.google.com/mail/help/images/screenshots/chat/%s.gif',
-);
-
-print "<ul>\n";
+print '<div class="section">'."\n";
for my $system (qw'gmail msn yahoo') {
my @info = do "emoji-$system.inc.pl";
- printf '<div class="section"><h3>%s</h3>'."\n\n", $system;
+ my $meta = shift @info or die $@;
+ ref $meta eq 'HASH' or die "invalid $system definitions";
+ my $title = $meta->{name} // $system;
+ $title = qq{<a href="$_">$title</a>} for $meta->{source} || ();
+
+ printf '<div class="section"><h2>%s</h2>'."\n\n", $meta->{name} // $system;
print '<table><tbody>'."\n";
for (my $i = 0; $i <= $#info; $i++) {
my $name = $info[$i];
printf '</table><table><tbody>'."\n", $name;
next;
}
- my ($input, $attr, $char, $desc) = @{ $info[++$i] };
- printf('<tr><th><img src="'.$ICONURL{$system}.'"><td><kbd>%s</kbd><td>%s%s'."\n",
- $name, EscapeHTML($input), $desc // $name, $char ? '<td>'.chr($char) : '',
+ my ($input, $flags, $char, $desc) = @{ $info[++$i] };
+ printf('<tr><th><img src="%s" alt="%s"><td><kbd>%s</kbd><td>%s%s'."\n",
+ sprintf($meta->{ $flags =~ /\bext\b/ ? 'iconext' : 'icon' } // '%s', $name),
+ EscapeHTML($name),
+ EscapeHTML($input),
+ $desc // $name,
+ $char ? '<td>'.chr($char) : '',
);
}
print "</table></div>\n\n";
}
-print "</ul><hr>\n\n";
+print "</div><hr>\n\n";