+eval {
+ my $tables = do 'unicode-table.inc.pl' or die $@ || $!;
+ for (values %$tables) {
+ for (values %$_) {
+ for (@$_) {
+ length $_ == 1 or next; # ignore meta values
+ s/\\//; # unescape
+ $info{$_} //= {};
+ }
+ }
+ }
+ 1;
+} or warn "Failed reading unicode tables: $@";
+
+eval {
+ require HTML::Entities;
+ while (my ($char, $entity) = each %HTML::Entities::char2entity) {
+ $entity =~ /[a-zA-Z]/ or next; # only actual aliases
+ $info{$char}->{html} = substr($entity, 1, -1);
+ }
+ 1;
+} or warn "Failed importing html entities: $@";
+