Compare commits

...

4 Commits

  1. 65
      README
  2. 4
      wiki-map.pl

@ -0,0 +1,65 @@
# Generate a map from specifications on a wiki
## Prereqs
The Hexgrid modules and MWTemplate modules must be in @INC
## Invoking
Writes to STDOUT by default; use `-o/--outfile <file>` to write to a `<file>` instead
The script has 2 flags controlling files generated:
* `--regiondir <dir>`: If specified, also generate maps for each region and location,
writing them to files in <dir>. Off by default.
* `--html/--no-html`: Whether to generate (an) SVG file(s) or (an) html file(s),
including logic for popups on clicks (currently half done). Makes html by default.
Examples of the four combinations:
1. `perl wiki-tile.pl -o output/Map.svg --no-html --regiondir output --api https://vipersgate.obscuritus.ca/api.php`
Creates a main map as an SVG output/Map.svg
2. `perl wiki-tile.pl -o output/Map.svg --no-html --regiondir output --api https://vipersgate.obscuritus.ca/api.php`
Creates a main map as an SVG output/Map.svg and an SVG for each region and location, also in the output dir
3. `perl wiki-tile.pl -o output/Map.html --api https://vipersgate.obscuritus.ca/api.php`
Creates a main map with popups as output/Map.html
4. `perl wiki-tile.pl -o output/Map.html --regiondir output --api https://vipersgate.obscuritus.ca/api.php`
Creates a main map with popups as output/Map.html and an html page for each region and location, also in the output dir
1 is intented to make just a map for the main page. Unnecessary if using 2.
2 is intended to make a map for the main page, and for each Region, Subregion and Location page.
3 is intended to be linked to and ~has~will have click-toggleable popups.
4 is an artifact of the above 3 and doesn't have intended use.
### Options
Options can be abbreviated per Getopt::Long
<dl>
<dt> `--api-url`:</dt> <dd>Base URL of the wiki</dd>
</dl>
Template names. Defaults to MapRegion, MapSubregion, MapLocation, MapSite.
<dl>
<dt>--region-template-name</dt><dd></dd>
<dt>--subregion-template-name</dt><dd></dd>
<dt>--location-template-name</dt><dd></dd>
<dt>--site-template-name</dt><dd></dd>
</dl>
Formatting options.
The tiling module supports more overrides including per region/tile granularity.
These are not settable in the script but can be added if desired.
<dl>
<dt>--border-width</dt><dd>Width of the border between hexes. Defaults to 1.</dd>
<dt>--border-colour</dt><dd>Colour of the border between hexes. Defaults to black.</dd>
<dt>--show-coords</dt>
<dd>
Include coordinates in the image.
Eventual goal is to have them be toggleable in the HTML output mode.
</dd>
</dl>
Output options. See above.
<dl>
<dt>--html-document</dt><dd></dd>
<dt>--outfile</dt><dd></dd>
<dt>--regiondir</dt><dd></dd>
</dl>

@ -18,7 +18,7 @@ no warnings "experimental::signatures";
my $coords_regex = qr/^\s*(-?\s*\d+)\s*,\s*(-?\s*\d+)\s*$/;
my $api_url = "https://wiki.tensor.green/w/api.php";
my $api_url;
my $region_template_name = "MapRegion";
my $subregion_template_name = "MapSubregion";
my $location_template_name = "MapLocation";
@ -49,6 +49,8 @@ GetOptions
'regiondir=s' => \$regiondir
);
$api_url // croak "Base API URL is required! Use --api-url to set
my $grid = HexGrid->new(defaults => {
style => { 'stroke-width' => $border_width, stroke => $border_colour },
show_coords => $show_coords });
Loading…
Cancel
Save