]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/map.pm
fix backlink new change detection code
[git.ikiwiki.info.git] / IkiWiki / Plugin / map.pm
index 120451b5dbde60a26ae165e391cf56232cc30111..625cfdfcaaa723a80f7c15e155d70d0583d2b9b7 100644 (file)
@@ -68,19 +68,31 @@ sub preprocess (@) {
        }
 
        # Needs to update whenever a page is added or removed (or in some
-       # cases, when its content changes, if show=title), so register a
-       # dependency.
-       add_depends($params{page}, $params{pages});
+       # cases, when its content changes, if show= is specified), so
+       # register a dependency.
+       add_depends($params{page}, $params{pages}, presence => ! exists $params{show});
        # Explicitly add all currently shown pages, to detect when pages
        # are removed.
-       add_depends($params{page}, join(" or ", keys %mapitems));
+       foreach my $item (keys %mapitems) {
+               add_depends($params{page}, $item, presence => ! exists $params{show});
+       }
 
        # Create the map.
        my $parent="";
        my $indent=0;
        my $openli=0;
        my $addparent="";
-       my $map = "<div class='map'>\n<ul>\n";
+       my $map = "<div class='map'>\n";
+
+       # Return empty div if %mapitems is empty
+       if (!scalar(keys %mapitems)) {
+               $map .= "</div>\n";
+               return $map; 
+       } 
+       else { # continue populating $map
+               $map .= "<ul>\n";
+       }
+
        foreach my $item (sort keys %mapitems) {
                my @linktext = (length $mapitems{$item} ? (linktext => $mapitems{$item}) : ());
                $item=~s/^\Q$common_prefix\E\///