my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20);
(
-latn => [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 }],
+latnuc => [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 }],
+latnlc => [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 }],
latfsuet => [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 }],
asl => [
map { pack 'W*', map { hex "1D$_" } unpack '(A3)*', $_ } qw{
<path fill="$C{red}" d="M0,30 h31 l-15,-15"/>
},
],
+sem => [
+ map {
+ local $_ = $_;
+ s/[1-4]\K(?=[4-9])/ /;
+ tr/1-9/↙←↖↑↗→↘↓/;
+ s{(.)(?=.)}{<span style="position:absolute">$1</span>}
+ or s/^/<span>/ and $_ .= '</span>';
+ $_
+ }
+ qw(
+ 1 2 3 4 5 6 7 21 31 46 14 15 16 17 23
+ 24 25 26 27 34 35 47 56 57 36 67
+ )
+],
+code39 => [map { tr/012/ ❘❙/r } qw{
+ 211012 121012 221011 112012 212011 122011 111022 211021 121021 112021
+ 211102 121102 221101 112102 212101 122101 111202 211201 121201 112201
+ 201112 102112 202111 101212 201211 102211
+}],
+rm4scc => [
+ map { sprintf
+ '<svg width="20" height="20" viewBox="0 0 8 6">'
+ . '<path stroke="black" d="M1%s"/></svg>',
+ join ' m2',
+ map { sprintf ',%dv%dm0,-%d',
+ ($_ & 1 ? 0 : 2), 2 + ($_ & 2) + ($_ & 1) * 2,
+ ($_ & 1 ? 0 : 2) + 2 + ($_ & 2) + ($_ & 1) * 2,
+ }
+ split //, $_
+ }
+ qw(
+ 2121 2301
+ 0132 0312 0330 2112 2130 2310
+ 1023 1203 1221 3003 3021 3201
+ 1032 1212 1230 3012 3030 3210
+ 1122 1302 1320 3102 3120 3300
+ )
+],
+wingdings => [qw{ ✌ 👌 👍 👎 ☜ ☞ ☝ ☟ ✋ ☺ 😐 ☹ 💣 ☠ ⚐ 🏱 ✈ ☼ 💧 ❄ 🕆 ✞ 🕈 ✠ ✡ ☪ }],
);