Html({
title => 'emoji cheat sheet',
- version => '1.0',
+ version => '1.1',
description => [
"Emoticons overview and Unicode equivalents"
. " of MSN, Y!M, and Gmail icons.",
chat im messenger msn yahoo ym gmail google
'],
stylesheet => [qw'light'],
+ data => ['emoji-gmail.inc.pl'],
});
:>
say '<div class="section">';
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 @info = Data("emoji-$system");
+ my $meta = shift @info;
+ ref $meta eq 'HASH' or Abort("Invalid $system definitions", 404);
my $title = $meta->{name} // $system;
$title = showlink($title, $_) for $meta->{source} || ();
say sprintf '<div class="section"><h2>%s</h2>', $meta->{name} // $system;
say '<table><tbody>';
- for (my $i = 0; $i <= $#info; $i++) {
- my $name = $info[$i];
- unless (ref $info[$i+1] eq 'ARRAY') {
- say sprintf '</table><table><tbody>', $name;
+ for my $row (@info) {
+ unless (ref $row eq 'ARRAY') {
+ say '</table><table><tbody>';
next;
}
- my ($input, $flags, $char, $desc) = @{ $info[++$i] };
+ my ($name, $input, $flags, $char, $desc) = @{$row};
say sprintf('<tr><th><img src="%s" alt="%s"><td><kbd>%s</kbd><td>%s%s',
sprintf($meta->{ $flags =~ /\bext\b/ ? 'iconext' : 'icon' } // '%s', $name),
EscapeHTML($name),