<html>
<head>
+<meta http-equiv="content-type" content="<:= $header{content_type} :>">
<title>country code cheat sheet</title>
-<meta http-equiv="content-type" content="utf-8">
-<link rel="stylesheet" type="text/css" media="all" href="/base.css">
+<link rel="stylesheet" type="text/css" media="all" href="/base.css"><:
+ my %styles = map {$_ => $_} qw(dark mono red);
+ our $style = exists $get{style} && $styles{$get{style}} || 'light';
+ printf(qq{\n<link rel="%s" type="text/css" media="all" href="%s" title="%s">},
+ $_ eq $style ? 'stylesheet' : 'alternate stylesheet', "/$_.css", $_
+ ) for keys %styles;
+:>
</head>
<body>
}
{
- printf '<table class="glyphs ccmap">';
- print '<col>';
+ printf '<table class="mcmap">';
+ print '<col><colgroup span="26">';
for my $section (qw{thead}) {
print "<$section><tr><th>↱";
print '<th>', $_ for 'a' .. 'z';
print $code =~ /^x|^q[m-z]|^aa|^zz/ ? '<td class="X Co">' : '<td>';
next;
};
- $code = $country->[2] if defined $country->[2];
- my $img = sprintf '<img src="/flag/%s.png" alt="%s">', $code, $code
- if -e "flag/$code.png";
+ my ($name, $class, $short, $ref) = @$country;
+ $ref ||= $code;
+ local $_ = $ref;
+ if (exists $get{show}) {
+ my $img = "flag/$ref.png";
+ $_ = sprintf '<img src="/%s" alt="%s">', $img, $ref if -e $img;
+ }
+ else {
+ $_ = $short || $name;
+ s/,.*//;
+ s/(?<=.)\(.*\)\s*//;
+ s/ republic\b//gi;
+ s/ islands?\b//gi;
+ s/\bthe //g;
+ s/ and / & /g;
+ s/\bsaint /st /gi;
+ s/South /S-/g;
+ s/North /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])(\S{2,})/$1./g; # abbreviate (at consonant)
+ $_ = quote($_);
+ }
+ $name =~ s/([^,]*), (.*)/$2 $1/;
printf "\n".'<td class="%s" title="%s">%s',
- $img ? 'X '.$country->[1] : '', quote($country->[0]), $img;
+ $_ ? 'X '.$class : '', quote("$code: $name"), $_;
}
print "\n";
}
<td class="X c-af">africa
<td class="X c-eu">europe
<td class="X c-as">asia
- <td class="X c-oc">oceania
<td class="X c-aa">antarctica
+ <td class="X c-oc">oceania
<td class="X c-sa">south america
<td class="X c-na">north america
- <td class="X Xi">reserved
+ <td class="">reserved
<td class="X Co">user-assigned
</table>
</div>