latin: distinguish titles from row identifiers
[sheet.git] / writing-latn.inc.pl
index c9c655cb8df8d84ec91c71a120b225ded2e2489a..f0a3e401de8659229282ec5c1c62e6c0ba5769c3 100644 (file)
@@ -38,16 +38,18 @@ sub dispbar {
 }
 
 (
 }
 
 (
-'Uppercase' => {
+uppercase => {
        list => [qw{ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }],
 },
        list => [qw{ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }],
 },
-'Lowercase' => {
+lowercase => {
        list => [qw{ a b c d e f g h i j k l m n o p q r s t u v w x y z }],
 },
        list => [qw{ a b c d e f g h i j k l m n o p q r s t u v w x y z }],
 },
-'Sütterlin' => {
+suetterlin => {
+       title => 'Sütterlin',
        list => [qw{ a b c d e f g h i j k l m n o p q r ſ s t u v w x y z }],
 },
        list => [qw{ a b c d e f g h i j k l m n o p q r ſ s t u v w x y z }],
 },
-'Old Roman Cursive' => {
+roman => {
+       title => 'Old Roman Cursive',
        list => [
                map {
                        !m/^(-?)(\w.+)/ ? $_ :
        list => [
                map {
                        !m/^(-?)(\w.+)/ ? $_ :
@@ -81,7 +83,8 @@ sub dispbar {
                "-m3,6 c4,-1 3,3 3,3 -1,3 -2,5 -1,5 1,1 3,0 3,0",
        ],
 },
                "-m3,6 c4,-1 3,3 3,3 -1,3 -2,5 -1,5 1,1 3,0 3,0",
        ],
 },
-'Sutton <abbr title="American Sign Lanugage">ASL</abbr>' => {
+sutton => {
+       title => 'Sutton <abbr title="American Sign Lanugage">ASL</abbr>',
        list => [
                # American manual alphabet in Sutton (U+1D800+) notation
                map { !!$_ && pack 'W*', map { hex "1D$_" } unpack '(A3)*', $_ } qw{
        list => [
                # American manual alphabet in Sutton (U+1D800+) notation
                map { !!$_ && pack 'W*', map { hex "1D$_" } unpack '(A3)*', $_ } qw{
@@ -94,7 +97,8 @@ sub dispbar {
                0         965aa6
        }],
 },
                0         965aa6
        }],
 },
-'Unistrokes' => {
+unistrokes => {
+       title => 'Unistrokes',
        list => [
                map { '<svg width="14" height="16" viewBox="-1 -1 8 10">'.$_.'</svg>' }
                map {
        list => [
                map { '<svg width="14" height="16" viewBox="-1 -1 8 10">'.$_.'</svg>' }
                map {
@@ -130,18 +134,22 @@ sub dispbar {
                'M3,4',
        ],
 },
                'M3,4',
        ],
 },
-# 'Palm Graffiti' => {},
-'<abbr title="International Telegraph Alphabet">ITA</abbr>2' => {
+#graffiti => {
+#      title => 'Palm Graffiti',
+#},
+ita2 => {
+       title => '<abbr title="International Telegraph Alphabet">ITA</abbr>2',
        list => [map { tr/01/○●/r =~ s/..\K/ /r } qw(
                11000 10011 01110 10010 10000 10110 01011 00101 01100 11010 11110 01001 00111
                00110 00011 01101 11101 01010 10100 00001 11100 01111 11001 10111 10101 10001
                00100
        )],
 },
        list => [map { tr/01/○●/r =~ s/..\K/ /r } qw(
                11000 10011 01110 10010 10000 10110 01011 00101 01100 11010 11110 01001 00111
                00110 00011 01101 11101 01010 10100 00001 11100 01111 11001 10111 10101 10001
                00100
        )],
 },
-'Braille' => {
+braille => {
        list => [qw{ ⠁ ⠃ ⠉ ⠙ ⠑ ⠋ ⠛ ⠓ ⠊ ⠚ ⠅ ⠇ ⠍ ⠝ ⠕ ⠏ ⠟ ⠗ ⠎ ⠞ ⠥ ⠧ ⠺ ⠭ ⠽ ⠵ }],
 },
        list => [qw{ ⠁ ⠃ ⠉ ⠙ ⠑ ⠋ ⠛ ⠓ ⠊ ⠚ ⠅ ⠇ ⠍ ⠝ ⠕ ⠏ ⠟ ⠗ ⠎ ⠞ ⠥ ⠧ ⠺ ⠭ ⠽ ⠵ }],
 },
-'5-point Tactile' => {
+tactile => {
+       title => '5-point Tactile',
        list => [
                map { '<svg width="9" height="12" viewBox="0 0 18 24">'.$_.'</svg>' }
                map {
        list => [
                map { '<svg width="9" height="12" viewBox="0 0 18 24">'.$_.'</svg>' }
                map {
@@ -158,31 +166,34 @@ sub dispbar {
                }
        ],
 },
                }
        ],
 },
-'Morse' => {
+morse => {
        list => [map {tr/.-/‧‑/r} qw{
                .- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. --
                -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --..
        }],
 },
        list => [map {tr/.-/‧‑/r} qw{
                .- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. --
                -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --..
        }],
 },
-'Tap code' => {
+tap => {
+       title => 'Tap code',
        list => [map { disptap($_) } qw{
                11 12 13 14 15 21 22 23  > 24 25 31 32
                33 34 35 41 42 43 44 45 51 52 53 54 55
        }],
 },
        list => [map { disptap($_) } qw{
                11 12 13 14 15 21 22 23  > 24 25 31 32
                33 34 35 41 42 43 44 45 51 52 53 54 55
        }],
 },
-'Short Tap' => {
+shorttap => {
+       title => 'Short Tap',
        list => [map { disptap($_) } qw{
                11 12 13 14 21 22 23 20 > 31 -13 32 33
                30 41 42 -13 43 40 10 51 52 53 50 -31 -40
        }],
 },
        list => [map { disptap($_) } qw{
                11 12 13 14 21 22 23 20 > 31 -13 32 33
                30 41 42 -13 43 40 10 51 52 53 50 -31 -40
        }],
 },
-'Cards' => {
+cards => {
        list => [(
                map { chr(0x1F0A0 + $_), sprintf('<b>%s</b>', chr(0x1F0B0 + $_)) }  # spades, hearts
                1 .. 11, 13, 14  # A 2-10 J Q K
        ), '', chr(0x1F0CF), chr(0x1F0DF) ],
 },
        list => [(
                map { chr(0x1F0A0 + $_), sprintf('<b>%s</b>', chr(0x1F0B0 + $_)) }  # spades, hearts
                1 .. 11, 13, 14  # A 2-10 J Q K
        ), '', chr(0x1F0CF), chr(0x1F0DF) ],
 },
-'Maritime flags' => {
+maritime => {
+       title => 'Maritime flags',
        list => [
                # International Code of Signals, SVG fills
                map { !!$_ && '<svg width="20" height="20" viewBox="0 0 30 30">'.s/\n?\t+//gr.'</svg>' }
        list => [
                # International Code of Signals, SVG fills
                map { !!$_ && '<svg width="20" height="20" viewBox="0 0 30 30">'.s/\n?\t+//gr.'</svg>' }
@@ -288,7 +299,8 @@ sub dispbar {
                },
        ],
 },
                },
        ],
 },
-'Flag semaphore' => {
+flag => {
+       title => 'Flag semaphore',
        list => [
                map {
                        local $_ = $_;
        list => [
                map {
                        local $_ = $_;
@@ -303,7 +315,8 @@ sub dispbar {
                )
        ],
 },
                )
        ],
 },
-'Chappe semaphore' => {
+chappe => {
+       title => 'Chappe semaphore',
        list => [
                map {
                        my ($r, $pr, $pl) = split //, $_;
        list => [
                map {
                        my ($r, $pr, $pl) = split //, $_;
@@ -327,7 +340,8 @@ sub dispbar {
                )
        ],
 },
                )
        ],
 },
-'Prussian semaphore' => {
+prussian => {
+       title => 'Prussian semaphore',
        list => [
                map { /^\D+$/ ? $_ : sprintf
                        join('',
        list => [
                map { /^\D+$/ ? $_ : sprintf
                        join('',
@@ -349,7 +363,8 @@ sub dispbar {
                )
        ],
 },
                )
        ],
 },
-'Code 39' => {
+code39 => {
+       title => 'Code 39',
        list => [map { dispbar($_) } qw(
                2111121121 1121121121 2121121111 1111221121 2111221111 1121221111
                1111122121 2111122111 1121122111 1111222111 2111111221 1121111221
        list => [map { dispbar($_) } qw(
                2111121121 1121121121 2121121111 1111221121 2111221111 1121221111
                1111122121 2111122111 1121122111 1111222111 2111111221 1121111221
@@ -358,21 +373,24 @@ sub dispbar {
                2211211111 1221211111            1221112111 0 1211212111
        )], # ISO/IEC 16388
 },
                2211211111 1221211111            1221112111 0 1211212111
        )], # ISO/IEC 16388
 },
-'Code 93' => {
+code93 => {
+       title => 'Code 93',
        list => [map { dispbar($_) } qw(
                211113 211212 211311 221112 221211 231111 112113 112212 112311 122112
                132111 111123 111222 111321 121122 131121 212112 212211 211122 211221
                221121 222111 112122 112221 122121 123111        311211 0 111141
        )],
 },
        list => [map { dispbar($_) } qw(
                211113 211212 211311 221112 221211 231111 112113 112212 112311 122112
                132111 111123 111222 111321 121122 131121 212112 212211 211122 211221
                221121 222111 112122 112221 122121 123111        311211 0 111141
        )],
 },
-'Code 128' => {
+code128 => {
+       title => 'Code 128',
        list => [map { dispbar($_) } qw(
                111323 131123 131321 112313 132113 132311 211313 231113 231311 112133
                112331 132131 113123 113321 133121 313121 211331 231131 213113 213311
                213131 311123 311321 331121 312113 312311        212222 0 211412 2331112
        )],
 },
        list => [map { dispbar($_) } qw(
                111323 131123 131321 112313 132113 132311 211313 231113 231311 112133
                112331 132131 113123 113321 133121 313121 211331 231131 213113 213311
                213131 311123 311321 331121 312113 312311        212222 0 211412 2331112
        )],
 },
-'<abbr title="Royal Mail 4-State Customer Code">RM4SCC</abbr>' => {
+rm4scc => {
+       title => '<abbr title="Royal Mail 4-State Customer Code">RM4SCC</abbr>',
        list => [
                map {
                        my $len = length $_;
        list => [
                map {
                        my $len = length $_;
@@ -399,7 +417,8 @@ sub dispbar {
                '', 1, 3  # start/end
        ],
 },
                '', 1, 3  # start/end
        ],
 },
-"D'ni" => {
+dni => {
+       title => "D'ni",
        list => [
                map {
                        state $window = 'M-.5,-.5H8.5V8.5H-.5Z';
        list => [
                map {
                        state $window = 'M-.5,-.5H8.5V8.5H-.5Z';
@@ -424,7 +443,7 @@ sub dispbar {
                } 0 .. 5*5
        ],
 },
                } 0 .. 5*5
        ],
 },
-'Pigpen' => {
+pigpen => {
        list => [
                map {
                        qq(<svg width="12" height="12" viewBox="-.5 -.5 7 7">$_</svg>)
        list => [
                map {
                        qq(<svg width="12" height="12" viewBox="-.5 -.5 7 7">$_</svg>)
@@ -448,7 +467,7 @@ sub dispbar {
                ),
        ],
 },
                ),
        ],
 },
-'Nyctographs' => {
+nyctographs => {
        list => [
                map { s/M[\d,\hM]+(?=[M"])//gr }  # clean up superfluous moves
                map { sprintf
        list => [
                map { s/M[\d,\hM]+(?=[M"])//gr }  # clean up superfluous moves
                map { sprintf
@@ -465,7 +484,7 @@ sub dispbar {
                ),
        ],
 },
                ),
        ],
 },
-'Chromacons' => {
+chromacons => {
        list => [
                # Colour Alphabet by Paul Green-Armytage (2010)
                map {
        list => [
                # Colour Alphabet by Paul Green-Armytage (2010)
                map {