common: global Data() to parse perl code includes
[sheet.git] / writing.plp
index 81ef21bcdaf08727032eb3fd39873a340c3cdf66..82049fee1ad1853273f85426247793df9a07b1fc 100644 (file)
@@ -2,7 +2,7 @@
 
 Html({
        title => 'writing system inheritance sheet',
-       version => '1.1',
+       version => '1.3',
        description => [
                "Character comparison,",
                "tracking letters as they evolve from Phoenician to modern scripts.",
@@ -35,20 +35,19 @@ unless (exists $get{v}) {
        $glyphs->{style} = 'univer';
 }
 
-my $scriptname = do 'writing-script.inc.pl';
-$_ = qq{<a href="/latin">$_</a>} for $scriptname->{latn} || ();
+my $scriptname = eval { Data('writing-script') }; # optional translations
+$_ = showlink($_, "/latin") for $scriptname->{latn} || ();
 
 for (
        [phnx => 'Phoenician'],
        [brah => 'Brahmi'],
 ) {
        my ($source, $title) = @$_;
-       my @table = do "writing-$source.inc.pl";
-       if ($! or $@) {
-               print "<h2>$title</h2>\n";
-               printf "<p>Table data not found: <em>%s</em>.</p>\n", $@ || $!;
+       my @table = eval { Data("writing-$source") } or do {
+               say "<h2>$title</h2>";
+               printf "<p>%s: <em>%s</em>.</p>\n", @{$@};
                next;
-       }
+       };
        $glyphs->print($title => [map {
                my $lead = s/^(-)// && $1;
                ref $_ eq 'ARRAY' ? @$_ : map { ".>$lead$_" }
@@ -56,18 +55,7 @@ for (
        } @table]);
 }
 
-:></div>
+say "</div>\n";
 
-<hr>
-
-<div class="legend">
-       <table class="glyphs"><tr>
-       <td class="X l5">unicode 1.1
-       <td class="X l4">20th century
-       <td class="X l3">in 6.0 (2010)
-       <td class="X l2">recent assignments
-       <td class="X l1">proposed
-       <td class="ex">irregular
-       </table>
-</div>
+say for '<hr/>', $glyphs->legend;