-###############################################################################\r
-#\r
-# ¥¢¥¦¥È¥é¥¤¥ó¥Ñ¡¼¥µ\r
-#\r
-###############################################################################\r
-package plugin::info::OutlineParser;\r
-use strict;\r
-use vars qw(@ISA);\r
-use Wiki::HTMLParser;\r
-\r
-@ISA = qw(Wiki::HTMLParser);\r
-\r
-#==============================================================================\r
-# ¥³¥ó¥¹¥È¥é¥¯¥¿\r
-#==============================================================================\r
-sub new {\r
- my $class = shift;\r
- my $self = Wiki::HTMLParser->new(shift);\r
- $self->{outline_html} = "";\r
- $self->{outline_level} = 0;\r
- $self->{outline_cnt} = 0;\r
- return bless $self,$class;\r
-}\r
-\r
-#==============================================================================\r
-# ¥Ø¥Ã¥É¥é¥¤¥ó¤Î¤ßÃê½Ð\r
-#==============================================================================\r
-sub l_headline {\r
- my $self = shift;\r
- my $level = shift;\r
- my $obj = shift;\r
- my $text = &Util::delete_tag(join("",@$obj));\r
- \r
- if($level > $self->{outline_level}){\r
- while($level!=$self->{outline_level}){\r
- $self->{outline_html} .= "<ul>\n";\r
- $self->{outline_level}++;\r
- }\r
- } elsif($level < $self->{outline_level}){\r
- while($level!=$self->{outline_level}){\r
- $self->{outline_html} .= "</li></ul>\n";\r
- $self->{outline_level}--;\r
- }\r
- } else {\r
- $self->{outline_html} .= "</li>\n";\r
- }\r
- $self->{outline_html} .= "<li><a href=\"#p".$self->{outline_cnt}."\">$text</a>";\r
- $self->{outline_cnt}++;\r
-}\r
-\r
-#==============================================================================\r
-# ¥¢¥¦¥È¥é¥¤¥óɽ¼¨ÍÑHTML¤Î¼èÆÀ\r
-#==============================================================================\r
-sub outline {\r
- my $self = shift;\r
- my $source = shift;\r
- $self->parse($source);\r
- \r
- while($self->{outline_level}!=0){\r
- $self->{outline_html} .= "</li></ul>\n";\r
- $self->{outline_level}--;\r
- }\r
- \r
- return $self->{outline_html};\r
-}\r
-\r
-#==============================================================================\r
-# ¥×¥é¥°¥¤¥ó¤Î²òÀϤò¹Ô¤¦¤È̵¸Â¥ë¡¼¥×¤·¤Æ¤·¤Þ¤¦¤¿¤á\r
-#==============================================================================\r
-sub plugin{}\r
-\r
-#==============================================================================\r
-# ¥×¥é¥°¥¤¥ó¤Î²òÀϤò¹Ô¤¦¤È̵¸Â¥ë¡¼¥×¤·¤Æ¤·¤Þ¤¦¤¿¤á\r
-#==============================================================================\r
-sub l_plugin{\r
- my $self = shift;\r
- my $plugin = shift;\r
- \r
- # outline°Ê³°¤Î¾ì¹ç¤Î¤ß½èÍý¤ò¹Ô¤¦\r
- if($plugin->{command} ne "outline"){\r
- my $info = $self->{wiki}->get_plugin_info($plugin->{command});\r
- if($info->{FORMAT} eq "WIKI"){\r
- return $self->SUPER::l_plugin($plugin);\r
- }\r
- \r
- } else {\r
- return undef;\r
- }\r
-}\r
-\r
-1;\r
+###############################################################################
+#
+# ¥¢¥¦¥È¥é¥¤¥ó¥Ñ¡¼¥µ
+#
+###############################################################################
+package plugin::info::OutlineParser;
+use strict;
+use vars qw(@ISA);
+use Wiki::HTMLParser;
+
+@ISA = qw(Wiki::HTMLParser);
+
+#==============================================================================
+# ¥³¥ó¥¹¥È¥é¥¯¥¿
+#==============================================================================
+sub new {
+ my $class = shift;
+ my $self = Wiki::HTMLParser->new(shift);
+ $self->{outline_html} = "";
+ $self->{outline_level} = 0;
+ $self->{outline_cnt} = 0;
+ return bless $self,$class;
+}
+
+#==============================================================================
+# ¥Ø¥Ã¥É¥é¥¤¥ó¤Î¤ßÃê½Ð
+#==============================================================================
+sub l_headline {
+ my $self = shift;
+ my $level = shift;
+ my $obj = shift;
+ my $text = &Util::delete_tag(join("",@$obj));
+
+ if($level > $self->{outline_level}){
+ while($level!=$self->{outline_level}){
+ if($self->{'outline_close_'.($self->{outline_level})} == 1){\r
+ $self->{outline_html} .= "</li>\n";\r
+ $self->{'outline_close_'.($self->{outline_level})} = 0;\r
+ }
+ $self->{outline_html} .= "<ul class=\"outline\">\n";
+ $self->{outline_level}++;
+ }
+ } elsif($level <= $self->{outline_level}){
+ while($level-1 != $self->{outline_level}){
+ if($self->{'outline_close_'.($self->{outline_level})} == 1){
+ $self->{outline_html} .= "</li>\n";
+ $self->{'outline_close_'.($self->{outline_level})} = 0;
+ }
+ if($level == $self->{outline_level}){
+ last;
+ }
+ $self->{outline_html} .= "</ul>\n";
+ $self->{outline_level}--;
+ }
+ } else {
+ $self->{outline_html} .= "</li>\n";
+ }
+
+ $self->{'outline_close_'.$level} = 1;
+ $self->{outline_html} .= "<li><a href=\"#p".$self->{outline_cnt}."\">$text</a>";
+ $self->{outline_cnt}++;
+}
+
+#==============================================================================
+# ¥¢¥¦¥È¥é¥¤¥óɽ¼¨ÍÑHTML¤Î¼èÆÀ
+#==============================================================================
+sub outline {
+ my $self = shift;
+ my $source = shift;
+ $self->parse($source);
+
+ while($self->{outline_level} != 0){
+ if($self->{'outline_close_'.($self->{outline_level})} == 1){
+ $self->{outline_html} .= "</li>\n";
+ }
+ $self->{outline_html} .= "</ul>\n";
+ $self->{outline_level}--;
+ }
+
+ return $self->{outline_html};
+}
+
+#==============================================================================
+# ¥×¥é¥°¥¤¥ó¤Î²òÀϤò¹Ô¤¦¤È̵¸Â¥ë¡¼¥×¤·¤Æ¤·¤Þ¤¦¤¿¤á
+#==============================================================================
+sub plugin{}
+
+#==============================================================================
+# ¥×¥é¥°¥¤¥ó¤Î²òÀϤò¹Ô¤¦¤È̵¸Â¥ë¡¼¥×¤·¤Æ¤·¤Þ¤¦¤¿¤á
+#==============================================================================
+sub l_plugin{
+ my $self = shift;
+ my $plugin = shift;
+
+ # outline°Ê³°¤Î¾ì¹ç¤Î¤ß½èÍý¤ò¹Ô¤¦
+ if($plugin->{command} ne "outline"){
+ my $info = $self->{wiki}->get_plugin_info($plugin->{command});
+ if($info->{FORMAT} eq "WIKI"){
+ return $self->SUPER::l_plugin($plugin);
+ }
+
+ } else {
+ return undef;
+ }
+}
+
+1;