common: global Data() to parse perl code includes
[sheet.git] / writing.plp
index fc0a923112dbf0f9e9058ffd5a6a70bfd8b9c875..82049fee1ad1853273f85426247793df9a07b1fc 100644 (file)
@@ -35,7 +35,7 @@ unless (exists $get{v}) {
        $glyphs->{style} = 'univer';
 }
 
-my $scriptname = do 'writing-script.inc.pl';
+my $scriptname = eval { Data('writing-script') }; # optional translations
 $_ = showlink($_, "/latin") for $scriptname->{latn} || ();
 
 for (
@@ -43,12 +43,11 @@ for (
        [brah => 'Brahmi'],
 ) {
        my ($source, $title) = @$_;
-       my @table = do "writing-$source.inc.pl";
-       if ($! or $@) {
+       my @table = eval { Data("writing-$source") } or do {
                say "<h2>$title</h2>";
-               printf "<p>Table data not found: <em>%s</em>.</p>\n", $@ || $!;
+               printf "<p>%s: <em>%s</em>.</p>\n", @{$@};
                next;
-       }
+       };
        $glyphs->print($title => [map {
                my $lead = s/^(-)// && $1;
                ref $_ eq 'ARRAY' ? @$_ : map { ".>$lead$_" }