1 ###############################################################################
5 ###############################################################################
6 package plugin::info::OutlineParser;
11 @ISA = qw(Wiki::HTMLParser);
13 #==============================================================================
15 #==============================================================================
18 my $self = Wiki::HTMLParser->new(shift);
19 $self->{outline_html} = "";
20 $self->{outline_level} = 0;
21 $self->{outline_cnt} = 0;
22 return bless $self,$class;
25 #==============================================================================
26 # ¥Ø¥Ã¥É¥é¥¤¥ó¤Î¤ßÃê½Ð
27 #==============================================================================
32 my $text = &Util::delete_tag(join("",@$obj));
34 if($level > $self->{outline_level}){
35 while($level!=$self->{outline_level}){
36 $self->{outline_html} .= "<ul class=\"outline\">\n";
37 $self->{outline_level}++;
39 } elsif($level <= $self->{outline_level}){
40 while($level-1 != $self->{outline_level}){
41 if($self->{'outline_close_'.($self->{outline_level})} == 1){
42 $self->{outline_html} .= "</li>\n";
43 $self->{'outline_close_'.($self->{outline_level})} = 0;
45 if($level == $self->{outline_level}){
48 $self->{outline_html} .= "</ul>\n";
49 $self->{outline_level}--;
52 $self->{outline_html} .= "</li>\n";
55 $self->{'outline_close_'.$level} = 1;
56 $self->{outline_html} .= "<li><a href=\"#p".$self->{outline_cnt}."\">$text</a>";
57 $self->{outline_cnt}++;
60 #==============================================================================
61 # ¥¢¥¦¥È¥é¥¤¥óɽ¼¨ÍÑHTML¤Î¼èÆÀ
62 #==============================================================================
66 $self->parse($source);
68 while($self->{outline_level} != 0){
69 if($self->{'outline_close_'.($self->{outline_level})} == 1){
70 $self->{outline_html} .= "</li>\n";
72 $self->{outline_html} .= "</ul>\n";
73 $self->{outline_level}--;
76 return $self->{outline_html};
79 #==============================================================================
80 # ¥×¥é¥°¥¤¥ó¤Î²òÀϤò¹Ô¤¦¤È̵¸Â¥ë¡¼¥×¤·¤Æ¤·¤Þ¤¦¤¿¤á
81 #==============================================================================
84 #==============================================================================
85 # ¥×¥é¥°¥¤¥ó¤Î²òÀϤò¹Ô¤¦¤È̵¸Â¥ë¡¼¥×¤·¤Æ¤·¤Þ¤¦¤¿¤á
86 #==============================================================================
91 # outline°Ê³°¤Î¾ì¹ç¤Î¤ß½èÍý¤ò¹Ô¤¦
92 if($plugin->{command} ne "outline"){
93 my $info = $self->{wiki}->get_plugin_info($plugin->{command});
94 if($info->{FORMAT} eq "WIKI"){
95 return $self->SUPER::l_plugin($plugin);