18b986073695f91c1c530520bd3dcc4ff6c667c8
[sheet.git] / countries.plp
1 <(common.inc.plp)><:
2
3 Html({
4         title => 'country code cheat sheet',
5         version => 'v1.1',
6         description =>
7                 "Table of ISO-3166-1 country codes with the names of reserved territories.",
8         keywords => [qw'country code cc tld cctld continent territory land table'],
9         stylesheet => [qw'light dark circus mono red'],
10 });
11
12 :>
13 <h1>ISO-3166-1α2 Country codes</h1>
14
15 <:
16 my $cc = do 'countries.inc.pl';
17
18 {
19         printf '<table class="mcmap">';
20         print '<col><colgroup span="26">';
21         for my $section (qw{thead}) {
22                 print "<$section><tr><th>↳";
23                 print '<th>', $_ for 'a' .. 'z';
24                 print "\n";
25         }
26         print '<tbody>';
27         for my $row ('a' .. 'z') {
28                 print '<tr><th>', $row;
29                 for my $col ('a' .. 'z') {
30                         my $code = $row . $col;
31                         my $country = $cc->{$code} or do {
32                                 print $code =~ /^x|^q[m-z]|^aa|^zz/ ? '<td class="X Co">' : '<td>';
33                                 next;
34                         };
35                         my ($name, $class, $short, $ref) = @$country;
36                         $name .= " → $ref" if $ref;
37                         $ref ||= $code;
38                         my $cell;
39                         if (exists $get{show}) {
40                                 sub showflag {
41                                         my ($cc) = @_;
42                                         my $img = "data/flag/$cc.png";
43                                         return -e $img &&
44                                                 sprintf '<img src="/%s" alt="%s">', $img, $cc;
45                                 }
46
47                                 $cell = showflag($code) // join(' ',
48                                         map { showflag($_) || $_ } split / /, $ref
49                                 );
50                         }
51                         else {
52                                 $cell = EscapeHTML($short || $name);
53                         }
54                         printf "\n".'<td class="%s" title="%s">%s',
55                                 $cell ? 'X '.$class : '', EscapeHTML("$code: $name"), $cell;
56                 }
57                 print "\n";
58         }
59         print "</table>\n";
60 }
61
62 :>
63 <hr>
64
65 <div class="legend">
66         <table class="glyphs"><tr>
67         <td class="X c-af">africa
68         <td class="X c-eu">europe
69         <td class="X c-as">asia
70         <td class="X c-an">antarctica
71         <td class="X c-oc">oceania
72         <td class="X c-sa">south america
73         <td class="X c-na">north america
74         <td class="X Xr">reserved
75         <td class="X Xi">org
76         <td class="">free
77         <td class="X Co">user-assigned
78         </table>
79
80         <div class="right">
81                 <ul class="legend legend-set">
82                 <li><strong>show</strong>
83                         <em><:= exists $get{show} ? 'flag images' : 'english names' :></em><:=
84                                 !exists $get{show} && ' by default' :>
85                 <li>default <strong>style</strong> is
86                         <:= defined $get{style} && 'set to ' :><em><:= $style :></em>
87                 </ul>
88         </div>
89 </div>
90