diff --git a/HexGrid/Dynamic.pm b/HexGrid/Dynamic.pm new file mode 100644 index 0000000..daa246a --- /dev/null +++ b/HexGrid/Dynamic.pm @@ -0,0 +1,56 @@ +package HexGrid::Dynamic; + +use v5.30; + +use Carp; +use Data::Dumper; + +use feature "signatures"; +no warnings "experimental::signatures"; + +$HexGrid::Dynamic::click_pin = <Show coordinates + +EOS + +sub render_html($svg, $options = undef) +{ + my $document = ""; + $document .= "\n\n"; + + if($options) + { + if (ref $options eq 'HASH') + { + $document .= "\n\n"; + $document .= $HexGrid::Dynamic::coords_toggler if $options->{toggle_coords}; + } + else + { + carp("Options passed to HexGrid::Dynamic::render_html must be a hash ref"); + return; + } + } + + $document .= "\n" . $svg; + $document .= "\n\n"; + return $document; +} +1; diff --git a/wiki-map.pl b/wiki-map.pl index 43c6fea..c13d7b4 100644 --- a/wiki-map.pl +++ b/wiki-map.pl @@ -3,6 +3,7 @@ use rlib '.'; use HexGrid; use HexGrid::Pin; +use HexGrid::Dynamic; use MWTemplate; use MediaWiki::API; @@ -410,7 +411,8 @@ foreach my $page (values %{$site_icon_query_results->{query}{pages}}) # Render and output open (my $fh, "> $outfile") or croak "Couldn't open $outfile for writing: $!"; -say $fh ($html_document ? wrap_in_html($grid) : $grid->render); +say $fh ($html_document ? HexGrid::Dynamic::render_html($grid->render, + { toggle_coords => $show_coords, pin_popups => 1 }) : $grid->render); close $fh; if($regiondir) @@ -436,7 +438,8 @@ if($regiondir) say STDERR "Rendering Region $region\'s grid"; open (my $region_fh, "> $region.$extension") or croak "Couldn't open $region.extension for writing: $!"; - say $region_fh ($html_document ? wrap_in_html($region_grid) : $region_grid->render); + say $region_fh ($html_document ? HexGrid::Dynamic::render_html($grid->render, + { toggle_coords => $show_coords, pin_popups => 1 }) : $region_grid->render); close $region_fh; } # TODO: Location grids need to import images @@ -445,7 +448,8 @@ if($regiondir) say STDERR "Rendering Location $location_name\'s grid"; open (my $location_fh, "> $location_name.$extension") or croak "Couldn't open $location_name.$extension for writing: $!"; - say $location_fh ($html_document ? wrap_in_html($location_grid) : $location_grid->render); + say $location_fh ($html_document ? HexGrid::Dynamic::render_html($grid->render, + { toggle_coords => $show_coords, pin_popups => 1 }) : $location_grid->render); close $location_fh; } }