aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorPhilippe Gauthier <philippe.gauthier@deuxpi.ca>2012-08-02 20:29:32 +0000
committerJoey Hess <joey@kitenet.net>2012-08-05 21:58:32 -0400
commit60ef4b19657fb46492135b342a34435b891a80ef (patch)
tree3cbac629064b9321edce6abe237141e10eb982d7 /IkiWiki
parent5b956932ba35a54ed55335e9a96f94435d05718f (diff)
downloadikiwiki-60ef4b19657fb46492135b342a34435b891a80ef.tar
ikiwiki-60ef4b19657fb46492135b342a34435b891a80ef.tar.gz
Fix incorrect URL pointing to the generated waypoint files by calling will_render() before first call to urlto().
Fixes http://ikiwiki.info/bugs/osm_linkto__40____41___usage_breaks_map_rendering/ (cherry picked from commit 691312225789ff6cd5e3fcc4979c076791d67452)
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/osm.pm34
1 files changed, 22 insertions, 12 deletions
diff --git a/IkiWiki/Plugin/osm.pm b/IkiWiki/Plugin/osm.pm
index c9c5646c4..e96a12837 100644
--- a/IkiWiki/Plugin/osm.pm
+++ b/IkiWiki/Plugin/osm.pm
@@ -62,6 +62,25 @@ sub getsetup () {
},
}
+sub register_rendered_files {
+ my $map = shift;
+ my $page = shift;
+ my $dest = shift;
+
+ if ($page eq $dest) {
+ my %formats = get_formats();
+ if ($formats{'GeoJSON'}) {
+ will_render($page, "$map/pois.json");
+ }
+ if ($formats{'CSV'}) {
+ will_render($page, "$map/pois.txt");
+ }
+ if ($formats{'KML'}) {
+ will_render($page, "$map/pois.kml");
+ }
+ }
+}
+
sub preprocess {
my %params=@_;
my $page = $params{page};
@@ -98,6 +117,8 @@ sub preprocess {
);
}
+ register_rendered_files($map, $page, $dest);
+
$pagestate{$page}{'osm'}{$map}{'displays'}{$name} = {
height => $height,
width => $width,
@@ -150,18 +171,7 @@ sub process_waypoint {
}
$icon = urlto($icon, $dest, 1);
$tag = '' unless $tag;
- if ($page eq $dest) {
- my %formats = get_formats();
- if ($formats{'GeoJSON'}) {
- will_render($page, "$map/pois.json");
- }
- if ($formats{'CSV'}) {
- will_render($page, "$map/pois.txt");
- }
- if ($formats{'KML'}) {
- will_render($page, "$map/pois.kml");
- }
- }
+ register_rendered_files($map, $page, $dest);
$pagestate{$page}{'osm'}{$map}{'waypoints'}{$name} = {
page => $page,
desc => $desc,