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>\n";
37 $self->{outline_level}++;
39 } elsif($level < $self->{outline_level}){
40 while($level!=$self->{outline_level}){
41 $self->{outline_html} .= "</li></ul>\n";
42 $self->{outline_level}--;
45 $self->{outline_html} .= "</li>\n";
47 $self->{outline_html} .= "<li><a href=\"#p".$self->{outline_cnt}."\">$text</a>";
48 $self->{outline_cnt}++;
51 #==============================================================================
52 # ¥¢¥¦¥È¥é¥¤¥óɽ¼¨ÍÑHTML¤Î¼èÆÀ
53 #==============================================================================
57 $self->parse($source);
59 while($self->{outline_level}!=0){
60 $self->{outline_html} .= "</li></ul>\n";
61 $self->{outline_level}--;
64 return $self->{outline_html};
67 #==============================================================================
68 # ¥×¥é¥°¥¤¥ó¤Î²òÀϤò¹Ô¤¦¤È̵¸Â¥ë¡¼¥×¤·¤Æ¤·¤Þ¤¦¤¿¤á
69 #==============================================================================
72 #==============================================================================
73 # ¥×¥é¥°¥¤¥ó¤Î²òÀϤò¹Ô¤¦¤È̵¸Â¥ë¡¼¥×¤·¤Æ¤·¤Þ¤¦¤¿¤á
74 #==============================================================================
79 # outline°Ê³°¤Î¾ì¹ç¤Î¤ß½èÍý¤ò¹Ô¤¦
80 if($plugin->{command} ne "outline"){
81 my $info = $self->{wiki}->get_plugin_info($plugin->{command});
82 if($info->{FORMAT} eq "WIKI"){
83 return $self->SUPER::l_plugin($plugin);