diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-08-18 22:22:47 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-08-18 22:22:47 +0000 |
commit | eea9f5053a36e178d35479501dda13d0dcd3a535 (patch) | |
tree | 9b5de361417129f88592e8ff25b0fec96839dd99 | |
parent | 7f58a84dea11b24bf175388b2562fcd1afad9762 (diff) | |
download | ikiwiki-eea9f5053a36e178d35479501dda13d0dcd3a535.tar ikiwiki-eea9f5053a36e178d35479501dda13d0dcd3a535.tar.gz |
generate valid xhtml in all cases, including nesting
-rw-r--r-- | IkiWiki/Plugin/map.pm | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/IkiWiki/Plugin/map.pm b/IkiWiki/Plugin/map.pm index f2e8722c8..070f49415 100644 --- a/IkiWiki/Plugin/map.pm +++ b/IkiWiki/Plugin/map.pm @@ -4,7 +4,7 @@ # # By Alessandro Dotti Contra <alessandro@hyboria.org> # -# Revision: 0.1 +# Revision: 0.2 package IkiWiki::Plugin::map; use warnings; @@ -34,25 +34,30 @@ sub preprocess (@) { #{{{ # Create the map. my $indent=0; + my $openli=0; my $map = "<div class='map'>\n"; + $map .= "<ul>\n"; foreach my $item (sort @mapitems) { - my $depth = ($item =~ tr/\//\//) + 1; + my $depth = ($item =~ tr/\//\//); while ($depth < $indent) { $indent--; - $map.="</ul>\n"; + $map.="</li></ul>\n"; } while ($depth > $indent) { $indent++; $map.="<ul>\n"; + $openli=0; } + $map .= "</li>\n" if $openli; $map .= "<li>" - .IkiWiki::htmllink($params{page}, $params{destpage}, $item) - ."</li>\n"; + .IkiWiki::htmllink($params{page}, $params{destpage}, $item) ."\n"; + $openli=1; } while ($indent > 0) { $indent--; - $map.="</ul>\n"; + $map.="</li></ul>\n"; } + $map .= "</li></ul>\n"; $map .= "</div>\n"; return $map; } # }}} |