Html({
title => 'country code cheat sheet',
- version => 'v1.0',
+ version => '1.2',
description =>
- "Table of ISO-3166-2 country codes with the names of reserved territories.",
- keywords => [qw'country code cc tld territory land table'],
+ "Table of ISO-3166-1 country codes with the names of reserved territories.",
+ keywords => [qw'country code cc tld cctld continent territory land table'],
stylesheet => [qw'light dark circus mono red'],
+ data => ['countries.inc.pl'],
});
:>
-<h1>ISO-3166-2α2 Country codes</h1>
+<h1>ISO-3166-1α2 Country codes</h1>
<:
my $cc = do 'countries.inc.pl';
next;
};
my ($name, $class, $short, $ref) = @$country;
+ $name .= " → $ref" if $ref;
$ref ||= $code;
- local $_ = $ref;
+ my $cell;
if (exists $get{show}) {
- my $img = "flag/$ref.png";
- $_ = sprintf '<img src="/%s" alt="%s">', $img, $ref if -e $img;
+ sub showflag {
+ my ($cc) = @_;
+ my $img = "data/flag/$cc.png";
+ return -e $img &&
+ sprintf '<img src="/%s" alt="%s">', $img, $cc;
+ }
+
+ $cell = showflag($code) // join(' ',
+ map { showflag($_) || $_ } split / /, $ref
+ );
}
else {
- $_ = $short || $name;
- s/,.*//;
- s/(?<=.)\(.*\)\s*//;
- s/ republic\b//gi;
- s/ islands?\b//gi;
- s/\bthe //g;
- s/ and / & /g and s/(?<=.)[a-z ]+//g;
- s/\bsaint /st /gi;
- s/South(?:ern)? /S-/g;
- s/North(?:ern)? /N-/g;
- s/New /n./g;
- s/(\S)(\S+)-/$1-/g; # strip most chars preceding dash
- s/(\S{4}[b-df-hj-np-tv-xz])((?<!Austr)(?!land)\w{2,})/$1./g; # abbreviate (at consonant)
- $_ = EscapeHTML($_);
+ $cell = EscapeHTML($short || $name);
}
- $name =~ s/([^,]*), (.*)/$2 $1/;
printf "\n".'<td class="%s" title="%s">%s',
- $_ ? 'X '.$class : '', EscapeHTML("$code: $name"), $_;
+ $cell ? 'X '.$class : '', EscapeHTML("$code: $name"), $cell;
}
print "\n";
}
<td class="X c-af">africa
<td class="X c-eu">europe
<td class="X c-as">asia
- <td class="X c-aa">antarctica
+ <td class="X c-an">antarctica
<td class="X c-oc">oceania
<td class="X c-sa">south america
<td class="X c-na">north america
- <td class="">reserved
+ <td class="X Xr">reserved
+ <td class="X Xi">org
+ <td class="">free
<td class="X Co">user-assigned
</table>