-###############################################################################\r
-#\r
-# HTML¥Ñ¡¼¥µ\r
-#\r
-###############################################################################\r
-package Wiki::HTMLParser;\r
-use Wiki::Parser;\r
-use vars qw(@ISA);\r
-use strict;\r
-\r
-@ISA = qw(Wiki::Parser);\r
-#==============================================================================\r
-# ¥³¥ó¥¹¥È¥é¥¯¥¿\r
-#==============================================================================\r
-sub new {\r
- my $class = shift;\r
- my $wiki = shift;\r
- my $mainflg = shift;\r
- \r
- if(!defined($mainflg) || $mainflg eq ""){ $mainflg = 0; }\r
- \r
- my $self = Wiki::Parser->new($wiki);\r
- \r
- $self->{html} = "";\r
- $self->{pre} = "";\r
- $self->{quote} = "";\r
- $self->{table} = 0;\r
- $self->{level} = 0;\r
- $self->{para} = 0;\r
- $self->{p_cnt} = 0;\r
- $self->{main} = $mainflg;\r
- return bless $self,$class;\r
-}\r
-\r
-#==============================================================================\r
-# ¥ê¥¹¥È\r
-#==============================================================================\r
-sub l_list {\r
- my $self = shift;\r
- my $level = shift;\r
- my $obj = shift;\r
- \r
- if($self->{para}==1){\r
- $self->{html} .= "</p>\n";\r
- $self->{para} = 0;\r
- }\r
- \r
- $self->end_verbatim;\r
- $self->end_table;\r
- $self->end_quote;\r
- \r
- my $html = join("",@$obj);\r
- my $plus = 1;\r
- \r
- if($level < $self->{level}){ $plus = -1; }\r
- if($level==$self->{level}){\r
- $self->{html} .= "</li>\n";\r
- }\r
- while($level != $self->{level}){\r
- if($plus==1){\r
- $self->{html} .= "<ul>\n";\r
- push(@{$self->{close_list}},"</ul>\n");\r
- } else {\r
- $self->{html} .= "</li>\n";\r
- $self->{html} .= pop(@{$self->{close_list}});\r
- }\r
- $self->{level} += $plus;\r
- }\r
- \r
- $self->{html} .= "<li>".$html;\r
-}\r
-\r
-#==============================================================================\r
-# ÈÖ¹æÉÕ¤¥ê¥¹¥È\r
-#==============================================================================\r
-sub l_numlist {\r
- my $self = shift;\r
- my $level = shift;\r
- my $obj = shift;\r
- \r
- if($self->{para}==1){\r
- $self->{html} .= "</p>\n";\r
- $self->{para} = 0;\r
- }\r
- \r
- $self->end_verbatim;\r
- $self->end_table;\r
- $self->end_quote;\r
- \r
- my $html = join("",@$obj);\r
- my $plus = 1;\r
- \r
- if($level < $self->{level}){ $plus = -1; }\r
- if($level==$self->{level}){\r
- $self->{html} .= "</li>\n";\r
- }\r
- while($level != $self->{level}){\r
- if($plus==1){\r
- $self->{html} .= "<ol>\n";\r
- push(@{$self->{close_list}},"</ol>\n");\r
- } else {\r
- $self->{html} .= "</li>\n";\r
- $self->{html} .= pop(@{$self->{close_list}});\r
- }\r
- $self->{level} += $plus;\r
- }\r
- $self->{html} .= "<li>".$html;\r
-}\r
-\r
-#==============================================================================\r
-# ¥ê¥¹¥È¤Î½ªÎ»\r
-#==============================================================================\r
-sub end_list {\r
- my $self = shift;\r
- if ($self->{level}!=0) {\r
- $self->{html} .= "</li>\n";\r
- while($self->{level}!=0){\r
- $self->{html} .= pop(@{$self->{close_list}});\r
- $self->{level} += -1;\r
- }\r
- }\r
-}\r
-\r
-#==============================================================================\r
-# ¥Ø¥Ã¥É¥é¥¤¥ó\r
-#==============================================================================\r
-sub l_headline {\r
- my $self = shift;\r
- my $level = shift;\r
- my $obj = shift;\r
- my $wiki = $self->{wiki};\r
- \r
- if($self->{para}==1){\r
- $self->{html} .= "</p>\n";\r
- $self->{para} = 0;\r
- }\r
- \r
- $self->end_list;\r
- $self->end_verbatim;\r
- $self->end_table;\r
- $self->end_quote;\r
- \r
- my $html = join("",@$obj);\r
- \r
- # ¥á¥¤¥ó¤Îɽ¼¨Îΰè¤Ç¤Ê¤¤¤È¤\r
- if(!$self->{main}){\r
- $self->{html} .= "<h".($level+1).">".$html."</h".($level+1).">\n";\r
-\r
- # ¥á¥¤¥ó¤Îɽ¼¨Îΰè¤Î¾ì¹ç¤Ï¥¢¥ó¥«¤ò½ÐÎÏ\r
- } else {\r
- if($level==2){\r
- $self->{html} .= "<h".($level+1)."><a name=\"p".$self->{p_cnt}."\"><span class=\"sanchor\"> </span>".\r
- $html."</a></h".($level+1).">\n";\r
- } else {\r
- $self->{html} .= "<h".($level+1)."><a name=\"p".$self->{p_cnt}."\">".$html."</a></h".($level+1).">\n";\r
- }\r
- # ¥Ñ¡¼¥ÈÊÔ½¸¤¬ON¤«¤ÄÊÔ½¸²Äǽ¤Ê¾ì¹ç¤ÏÊÔ½¸¥¢¥ó¥«¤ò½ÐÎÏ\r
- if($self->{no_partedit}!=1){\r
- my $page = $wiki->get_CGI()->param("page");\r
- my $part_edit = "";\r
- # ¥Ñ¡¼¥È¥ê¥ó¥¯¤¬ON¤Î¾ì¹ç¤Ï°ÜÆ°ÍѤΥ¢¥ó¥«¤ò½ÐÎÏ\r
- if ($wiki->config("partlink") == 1) {\r
- $part_edit .= "<a class=\"partedit\" href=\"#\">TOP</a> ";\r
- $part_edit .= "<a class=\"partedit\" href=\"#p".($self->{p_cnt} - 1)."\">¢¬</a> ";\r
- $part_edit .= "<a class=\"partedit\" href=\"#p".($self->{p_cnt} + 1)."\">¢</a> ";\r
- }\r
- # ¥Ñ¡¼¥ÈÊÔ½¸¤¬ON¤«¤ÄÊÔ½¸²Äǽ¤Ê¾ì¹ç¤ÏÊÔ½¸¥¢¥ó¥«¤ò½ÐÎÏ\r
- if($wiki->config("partedit")==1 && $wiki->can_modify_page($page)){\r
- unless(defined($self->{partedit}->{$page})){\r
- $self->{partedit}->{$page} = 0;\r
- } else {\r
- $self->{partedit}->{$page}++;\r
- }\r
- # InterWiki·Á¼°¤Î¾ì¹ç\r
- my $full = $page;\r
- my $path = $self->{wiki}->config('script_name');\r
- if(index($page,":")!=-1){\r
- ($path,$page) = split(/:/,$page);\r
- $path = $self->{wiki}->config('script_name')."/$path";\r
- }\r
- $part_edit .= "<a class=\"partedit\" href=\"$path?action=EDIT".\r
- "&page=".&Util::url_encode($page).\r
- "&artno=".$self->{partedit}->{$full}."\" rel=\"nofollow\">ÊÔ½¸</a>";\r
- }\r
- if($part_edit ne ""){\r
- $self->{html} .= "<div class=\"partedit\">$part_edit</div>\n";\r
- }\r
- }\r
- \r
- }\r
- $self->{p_cnt}++;\r
-}\r
-\r
-#==============================================================================\r
-# ¿åÊ¿Àþ\r
-#==============================================================================\r
-sub l_line {\r
- my $self = shift;\r
- \r
- if($self->{para}==1){\r
- $self->{html} .= "</p>\n";\r
- $self->{para} = 0;\r
- }\r
- \r
- $self->end_list;\r
- $self->end_verbatim;\r
- $self->end_table;\r
- $self->end_quote;\r
- \r
- $self->{html} .= "<hr>\n";\r
-}\r
-\r
-#==============================================================================\r
-# ÃÊÍî¶èÀÚ¤ê\r
-#==============================================================================\r
-sub l_paragraph {\r
- my $self = shift;\r
- \r
- $self->end_list;\r
- $self->end_verbatim;\r
- $self->end_table;\r
- $self->end_quote;\r
- \r
- if($self->{para}==1){\r
- $self->{html} .= "</p>\n";\r
- $self->{para} = 0;\r
- } elsif($self->{wiki}->config('br_mode')==1){\r
- $self->{html} .= "<br>\n";\r
- }\r
-}\r
-\r
-#==============================================================================\r
-# À°·ÁºÑ¥Æ¥¥¹¥È\r
-#==============================================================================\r
-sub l_verbatim {\r
- my $self = shift;\r
- my $text = shift;\r
- \r
- if($self->{para}==1){\r
- $self->{html} .= "</p>\n";\r
- $self->{para} = 0;\r
- }\r
- \r
- $self->end_list;\r
- $self->end_table;\r
- $self->end_quote;\r
- \r
- $text =~ s/^\s//;\r
- $self->{pre} .= Util::escapeHTML($text)."\n";\r
-}\r
-\r
-sub end_verbatim {\r
- my $self = shift;\r
- if($self->{pre} ne ""){\r
- $self->{html} .= "<pre>".$self->{pre}."</pre>\n";\r
- $self->{pre} = "";\r
- }\r
-}\r
-\r
-#==============================================================================\r
-# ¥Æ¡¼¥Ö¥ë\r
-#==============================================================================\r
-sub l_table {\r
- my $self = shift;\r
- my $row = shift;\r
- $self->end_list;\r
- $self->end_verbatim;\r
- $self->end_quote;\r
- \r
- if($self->{table}==0){\r
- $self->{table}=1;\r
- $self->{html} .= "<table>\n";\r
- $self->{html} .= "<tr>\n";\r
- foreach(@$row){\r
- my $html = join("",@$_);\r
- $self->{html} .= "<th>".$html."</th>\n";\r
- }\r
- $self->{html} .= "</tr>\n";\r
- } else {\r
- $self->{table}=2;\r
- $self->{html} .= "<tr>\n";\r
- foreach(@$row){\r
- my $html = join("",@$_);\r
- $self->{html} .= "<td>".$html."</td>\n";\r
- }\r
- $self->{html} .= "</tr>\n";\r
- }\r
-}\r
-\r
-sub end_table {\r
- my $self = shift;\r
- if($self->{table}!=0){\r
- $self->{table} = 0;\r
- $self->{html} .= "</table>\n";\r
- }\r
-}\r
-\r
-#==============================================================================\r
-# ¥Ñ¡¼¥¹½ªÎ»»þ¤Î½èÍý\r
-#==============================================================================\r
-sub end_parse {\r
- my $self = shift;\r
- $self->end_list;\r
- $self->end_verbatim;\r
- $self->end_table;\r
- $self->end_quote;\r
- \r
- if($self->{para}==1){\r
- $self->{html} .= "</p>\n";\r
- $self->{para} = 0;\r
- }\r
-}\r
-\r
-#==============================================================================\r
-# ¹Ô½ñ¼°¤Ë³ºÅö¤·¤Ê¤¤¹Ô\r
-#==============================================================================\r
-sub l_text {\r
- my $self = shift;\r
- my $obj = shift;\r
- $self->end_list;\r
- $self->end_verbatim;\r
- $self->end_table;\r
- $self->end_quote;\r
- my $html = join("",@$obj);\r
- \r
- if($self->{para}==0){\r
- $self->{html} .= "<p>";\r
- $self->{para} = 1;\r
- }\r
- $self->{html} .= $html;\r
- \r
- # br¥â¡¼¥É¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï<br>¤ò¤¹\r
- if($self->{wiki}->config('br_mode')==1){\r
- $self->{html} .= "<br>\n";\r
- }\r
-}\r
-\r
-#==============================================================================\r
-# °úÍÑ\r
-#==============================================================================\r
-sub l_quotation {\r
- my $self = shift;\r
- my $obj = shift;\r
- $self->end_list;\r
- $self->end_verbatim;\r
- $self->end_table;\r
- my $html = join("",@$obj);\r
- $self->{quote} .= "<p>".$html."</p>\n";\r
-}\r
-\r
-sub end_quote {\r
- my $self = shift;\r
- if($self->{quote} ne ""){\r
- $self->{html} .= "<blockquote>".$self->{quote}."</blockquote>\n";\r
- $self->{quote} = "";\r
- }\r
-}\r
-\r
-#==============================================================================\r
-# ÀâÌÀ\r
-#==============================================================================\r
-sub l_explanation {\r
- my $self = shift;\r
- my $obj1 = shift;\r
- my $obj2 = shift;\r
- \r
- $self->end_list;\r
- $self->end_verbatim;\r
- $self->end_table;\r
- $self->end_quote;\r
- \r
- my $html1 = join("",@$obj1);\r
- my $html2 = join("",@$obj2);\r
- \r
- $self->{html} .= "<dl>\n<dt>".$html1."</dt>\n<dd>".$html2."</dd>\n</dl>\n";\r
-}\r
-\r
-#==============================================================================\r
-# ¥Ü¡¼¥ë¥É\r
-#==============================================================================\r
-sub bold {\r
- my $self = shift;\r
- my $text = shift;\r
- return "<strong>".join("",$self->parse_line($text))."</strong>";\r
-}\r
-\r
-#==============================================================================\r
-# ¥¤¥¿¥ê¥Ã¥¯\r
-#==============================================================================\r
-sub italic {\r
- my $self = shift;\r
- my $text = shift;\r
- return "<em>".join("",$self->parse_line($text))."</em>";\r
-}\r
-\r
-#==============================================================================\r
-# ²¼Àþ\r
-#==============================================================================\r
-sub underline {\r
- my $self = shift;\r
- my $text = shift;\r
- return "<ins>".join("",$self->parse_line($text))."</ins>";\r
-}\r
-\r
-#==============================================================================\r
-# ÂǤÁ¾Ã¤·Àþ\r
-#==============================================================================\r
-sub denialline {\r
- my $self = shift;\r
- my $text = shift;\r
- return "<del>".join("",$self->parse_line($text))."</del>";\r
-}\r
-\r
-#==============================================================================\r
-# URL¥¢¥ó¥«\r
-#==============================================================================\r
-sub url_anchor {\r
- my $self = shift;\r
- my $url = shift;\r
- my $name = shift;\r
- \r
- if($name eq ""){\r
- $name = $url;\r
- }\r
- \r
- if($url eq $name && $url=~/\.(gif|jpg|jpeg|bmp|png)$/i && $self->{'wiki'}->config('display_image')==1){\r
- return "<img src=\"".$url."\">";\r
- } else {\r
- if($self->{wiki}->config('open_new_window')==1 &&\r
- ($self->{wiki}->config('inside_same_window')==0 ||\r
- ($self->{wiki}->config('inside_same_window')==1 && index($url,'://') > 0))){\r
- return "<a href=\"$url\" target=\"_blank\">".Util::escapeHTML($name)."</a>";\r
- } else {\r
- return "<a href=\"$url\">".Util::escapeHTML($name)."</a>";\r
- }\r
- }\r
-}\r
-\r
-#==============================================================================\r
-# Wiki¥Ú¡¼¥¸¤Ø¤Î¥¢¥ó¥«\r
-#==============================================================================\r
-sub wiki_anchor {\r
- my $self = shift;\r
- my $page = shift;\r
- my $name = shift;\r
- \r
- if(!defined($name) || $name eq ""){\r
- $name = $page;\r
- }\r
- if($self->{wiki}->page_exists($page)){\r
- return "<a href=\"".$self->{wiki}->create_page_url($page)."\" class=\"wikipage\">".\r
- &Util::escapeHTML($name)."</a>";\r
- } else {\r
- return "<span class=\"nopage\">".&Util::escapeHTML($name)."</span>".\r
- "<a href=\"".$self->{wiki}->create_page_url($page)."\">?</a>";\r
- }\r
-}\r
-\r
-#==============================================================================\r
-# ¤¿¤À¤Î¥Æ¥¥¹¥È\r
-#==============================================================================\r
-sub text {\r
- my $self = shift;\r
- my $text = shift;\r
- return &Util::escapeHTML($text);\r
-}\r
-\r
-#==============================================================================\r
-# ¥×¥é¥°¥¤¥ó\r
-#==============================================================================\r
-sub plugin {\r
- my $self = shift;\r
- my $plugin = shift;\r
- \r
- my @result = $self->{wiki}->process_plugin($plugin,$self);\r
- return @result;\r
-}\r
-\r
-#==============================================================================\r
-# ¥Ñ¥é¥°¥é¥Õ¥×¥é¥°¥¤¥ó\r
-#==============================================================================\r
-sub l_plugin {\r
- my $self = shift;\r
- my $plugin = shift;\r
- \r
- if($self->{para}==1){\r
- $self->{html} .= "</p>\n";\r
- $self->{para} = 0;\r
- }\r
- \r
- $self->end_list;\r
- $self->end_verbatim;\r
- $self->end_table;\r
- $self->end_quote;\r
- \r
- my $result = $self->{wiki}->process_plugin($plugin,$self);\r
- if(defined($result) && $result ne ""){\r
- $self->{html} .= $result;\r
- }\r
-}\r
-\r
-#==============================================================================\r
-# ¥¤¥á¡¼¥¸\r
-#==============================================================================\r
-sub l_image {\r
- my $self = shift;\r
- my $page = shift;\r
- my $file = shift;\r
- my $wiki = $self->{wiki};\r
- \r
- if($self->{para}==1){\r
- $self->{html} .= "</p>\n";\r
- $self->{para} = 0;\r
- }\r
- \r
- $self->end_list;\r
- $self->end_verbatim;\r
- $self->end_table;\r
- $self->end_quote;\r
- \r
- $self->{html} .= "<div><img src=\"".$wiki->create_url({action=>"ATTACH",page=>$page,file=>$file})."\"></div>\n";\r
-}\r
-\r
-#==============================================================================\r
-# ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸\r
-#==============================================================================\r
-sub error {\r
- my $self = shift;\r
- my $label = shift;\r
- \r
- return "<span class=\"error\">".Util::escapeHTML($label)."</span>";\r
-}\r
-\r
-1;\r
+###############################################################################
+#
+# HTML¥Ñ¡¼¥µ
+#
+###############################################################################
+package Wiki::HTMLParser;
+use Wiki::Parser;
+use vars qw(@ISA);
+use strict;
+
+@ISA = qw(Wiki::Parser);
+#==============================================================================
+# ¥³¥ó¥¹¥È¥é¥¯¥¿
+#==============================================================================
+sub new {
+ my $class = shift;
+ my $wiki = shift;
+ my $mainflg = shift;
+
+ if(!defined($mainflg) || $mainflg eq ""){ $mainflg = 0; }
+
+ my $self = Wiki::Parser->new($wiki);
+
+ $self->{html} = "";
+ $self->{pre} = "";
+ $self->{quote} = "";
+ $self->{table} = 0;
+ $self->{level} = 0;
+ $self->{para} = 0;
+ $self->{p_cnt} = 0;
+ $self->{main} = $mainflg;
+ return bless $self,$class;
+}
+
+#==============================================================================
+# ¥ê¥¹¥È
+#==============================================================================
+sub l_list {
+ my $self = shift;
+ my $level = shift;
+ my $obj = shift;
+
+ if($self->{para}==1){
+ $self->{html} .= "</p>\n";
+ $self->{para} = 0;
+ }
+
+ $self->end_verbatim;
+ $self->end_table;
+ $self->end_quote;
+
+ my $html = join("",@$obj);
+ my $plus = 1;
+
+ if($level < $self->{level}){ $plus = -1; }
+ if($level==$self->{level}){
+ $self->{html} .= "</li>\n";
+ }
+ while($level != $self->{level}){
+ if($plus==1){
+ $self->{html} .= "<ul>\n";
+ push(@{$self->{close_list}},"</ul>\n");
+ } else {
+ $self->{html} .= "</li>\n";
+ $self->{html} .= pop(@{$self->{close_list}});
+ }
+ $self->{level} += $plus;
+ }
+
+ $self->{html} .= "<li>".$html;
+}
+
+#==============================================================================
+# ÈÖ¹æÉÕ¤¥ê¥¹¥È
+#==============================================================================
+sub l_numlist {
+ my $self = shift;
+ my $level = shift;
+ my $obj = shift;
+
+ if($self->{para}==1){
+ $self->{html} .= "</p>\n";
+ $self->{para} = 0;
+ }
+
+ $self->end_verbatim;
+ $self->end_table;
+ $self->end_quote;
+
+ my $html = join("",@$obj);
+ my $plus = 1;
+
+ if($level < $self->{level}){ $plus = -1; }
+ if($level==$self->{level}){
+ $self->{html} .= "</li>\n";
+ }
+ while($level != $self->{level}){
+ if($plus==1){
+ $self->{html} .= "<ol>\n";
+ push(@{$self->{close_list}},"</ol>\n");
+ } else {
+ $self->{html} .= "</li>\n";
+ $self->{html} .= pop(@{$self->{close_list}});
+ }
+ $self->{level} += $plus;
+ }
+ $self->{html} .= "<li>".$html;
+}
+
+#==============================================================================
+# ¥ê¥¹¥È¤Î½ªÎ»
+#==============================================================================
+sub end_list {
+ my $self = shift;
+ if ($self->{level}!=0) {
+ $self->{html} .= "</li>\n";
+ while($self->{level}!=0){
+ $self->{html} .= pop(@{$self->{close_list}});
+ $self->{level} += -1;
+ }
+ }
+}
+
+#==============================================================================
+# ¥Ø¥Ã¥É¥é¥¤¥ó
+#==============================================================================
+sub l_headline {
+ my $self = shift;
+ my $level = shift;
+ my $obj = shift;
+ my $wiki = $self->{wiki};
+
+ if($self->{para}==1){
+ $self->{html} .= "</p>\n";
+ $self->{para} = 0;
+ }
+
+ $self->end_list;
+ $self->end_verbatim;
+ $self->end_table;
+ $self->end_quote;
+
+ my $html = join("",@$obj);
+
+ # ¥á¥¤¥ó¤Îɽ¼¨Îΰè¤Ç¤Ê¤¤¤È¤
+ if(!$self->{main}){
+ $self->{html} .= "<h".($level+1).">".$html."</h".($level+1).">\n";
+
+ # ¥á¥¤¥ó¤Îɽ¼¨Îΰè¤Î¾ì¹ç¤Ï¥¢¥ó¥«¤ò½ÐÎÏ
+ } else {
+ if($level==2){
+ $self->{html} .= "<h".($level+1)."><a name=\"p".$self->{p_cnt}."\"><span class=\"sanchor\"> </span>".
+ $html."</a></h".($level+1).">\n";
+ } else {
+ $self->{html} .= "<h".($level+1)."><a name=\"p".$self->{p_cnt}."\">".$html."</a></h".($level+1).">\n";
+ }
+ # ¥Ñ¡¼¥ÈÊÔ½¸¤¬ON¤«¤ÄÊÔ½¸²Äǽ¤Ê¾ì¹ç¤ÏÊÔ½¸¥¢¥ó¥«¤ò½ÐÎÏ
+ if($self->{no_partedit}!=1){
+ my $page = $wiki->get_CGI()->param("page");
+ my $part_edit = "";
+ # ¥Ñ¡¼¥È¥ê¥ó¥¯¤¬ON¤Î¾ì¹ç¤Ï°ÜÆ°ÍѤΥ¢¥ó¥«¤ò½ÐÎÏ
+ if ($wiki->config("partlink") == 1) {
+ $part_edit .= "<a class=\"partedit\" href=\"#\">TOP</a> ";
+ $part_edit .= "<a class=\"partedit\" href=\"#p".($self->{p_cnt} - 1)."\">¢¬</a> ";
+ $part_edit .= "<a class=\"partedit\" href=\"#p".($self->{p_cnt} + 1)."\">¢</a> ";
+ }
+ # ¥Ñ¡¼¥ÈÊÔ½¸¤¬ON¤«¤ÄÊÔ½¸²Äǽ¤Ê¾ì¹ç¤ÏÊÔ½¸¥¢¥ó¥«¤ò½ÐÎÏ
+ if($wiki->config("partedit")==1 && $wiki->can_modify_page($page)){
+ unless(defined($self->{partedit}->{$page})){
+ $self->{partedit}->{$page} = 0;
+ } else {
+ $self->{partedit}->{$page}++;
+ }
+ # InterWiki·Á¼°¤Î¾ì¹ç
+ my $full = $page;
+ my $path = $self->{wiki}->config('script_name');
+ if(index($page,":")!=-1){
+ ($path,$page) = split(/:/,$page);
+ $path = $self->{wiki}->config('script_name')."/$path";
+ }
+ $part_edit .= "<a class=\"partedit\" href=\"$path?action=EDIT".
+ "&page=".&Util::url_encode($page).
+ "&artno=".$self->{partedit}->{$full}."\" rel=\"nofollow\">ÊÔ½¸</a>";
+ }
+ if($part_edit ne ""){
+ $self->{html} .= "<div class=\"partedit\">$part_edit</div>\n";
+ }
+ }
+
+ }
+ $self->{p_cnt}++;
+}
+
+#==============================================================================
+# ¿åÊ¿Àþ
+#==============================================================================
+sub l_line {
+ my $self = shift;
+
+ if($self->{para}==1){
+ $self->{html} .= "</p>\n";
+ $self->{para} = 0;
+ }
+
+ $self->end_list;
+ $self->end_verbatim;
+ $self->end_table;
+ $self->end_quote;
+
+ $self->{html} .= "<hr>\n";
+}
+
+#==============================================================================
+# ÃÊÍî¶èÀÚ¤ê
+#==============================================================================
+sub l_paragraph {
+ my $self = shift;
+
+ $self->end_list;
+ $self->end_verbatim;
+ $self->end_table;
+ $self->end_quote;
+
+ if($self->{para}==1){
+ $self->{html} .= "</p>\n";
+ $self->{para} = 0;
+ } elsif($self->{wiki}->config('br_mode')==1){
+ $self->{html} .= "<br>\n";
+ }
+}
+
+#==============================================================================
+# À°·ÁºÑ¥Æ¥¥¹¥È
+#==============================================================================
+sub l_verbatim {
+ my $self = shift;
+ my $text = shift;
+
+ if($self->{para}==1){
+ $self->{html} .= "</p>\n";
+ $self->{para} = 0;
+ }
+
+ $self->end_list;
+ $self->end_table;
+ $self->end_quote;
+
+ $text =~ s/^\s//;
+ $self->{pre} .= Util::escapeHTML($text)."\n";
+}
+
+sub end_verbatim {
+ my $self = shift;
+ if($self->{pre} ne ""){
+ $self->{html} .= "<pre>".$self->{pre}."</pre>\n";
+ $self->{pre} = "";
+ }
+}
+
+#==============================================================================
+# ¥Æ¡¼¥Ö¥ë
+#==============================================================================
+sub l_table {
+ my $self = shift;
+ my $row = shift;
+ $self->end_list;
+ $self->end_verbatim;
+ $self->end_quote;
+
+ if($self->{table}==0){
+ $self->{table}=1;
+ $self->{html} .= "<table>\n";
+ $self->{html} .= "<tr>\n";
+ foreach(@$row){
+ my $html = join("",@$_);
+ $self->{html} .= "<th>".$html."</th>\n";
+ }
+ $self->{html} .= "</tr>\n";
+ } else {
+ $self->{table}=2;
+ $self->{html} .= "<tr>\n";
+ foreach(@$row){
+ my $html = join("",@$_);
+ $self->{html} .= "<td>".$html."</td>\n";
+ }
+ $self->{html} .= "</tr>\n";
+ }
+}
+
+sub end_table {
+ my $self = shift;
+ if($self->{table}!=0){
+ $self->{table} = 0;
+ $self->{html} .= "</table>\n";
+ }
+}
+
+#==============================================================================
+# ¥Ñ¡¼¥¹½ªÎ»»þ¤Î½èÍý
+#==============================================================================
+sub end_parse {
+ my $self = shift;
+ $self->end_list;
+ $self->end_verbatim;
+ $self->end_table;
+ $self->end_quote;
+
+ if($self->{para}==1){
+ $self->{html} .= "</p>\n";
+ $self->{para} = 0;
+ }
+}
+
+#==============================================================================
+# ¹Ô½ñ¼°¤Ë³ºÅö¤·¤Ê¤¤¹Ô
+#==============================================================================
+sub l_text {
+ my $self = shift;
+ my $obj = shift;
+ $self->end_list;
+ $self->end_verbatim;
+ $self->end_table;
+ $self->end_quote;
+ my $html = join("",@$obj);
+
+ if($self->{para}==0){
+ $self->{html} .= "<p>";
+ $self->{para} = 1;
+ }
+ $self->{html} .= $html;
+
+ # br¥â¡¼¥É¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï<br>¤ò¤¹
+ if($self->{wiki}->config('br_mode')==1){
+ $self->{html} .= "<br>\n";
+ }
+}
+
+#==============================================================================
+# °úÍÑ
+#==============================================================================
+sub l_quotation {
+ my $self = shift;
+ my $obj = shift;
+ $self->end_list;
+ $self->end_verbatim;
+ $self->end_table;
+ my $html = join("",@$obj);
+ $self->{quote} .= "<p>".$html."</p>\n";
+}
+
+sub end_quote {
+ my $self = shift;
+ if($self->{quote} ne ""){
+ $self->{html} .= "<blockquote>".$self->{quote}."</blockquote>\n";
+ $self->{quote} = "";
+ }
+}
+
+#==============================================================================
+# ÀâÌÀ
+#==============================================================================
+sub l_explanation {
+ my $self = shift;
+ my $obj1 = shift;
+ my $obj2 = shift;
+
+ $self->end_list;
+ $self->end_verbatim;
+ $self->end_table;
+ $self->end_quote;
+
+ my $html1 = join("",@$obj1);
+ my $html2 = join("",@$obj2);
+
+ $self->{html} .= "<dl>\n<dt>".$html1."</dt>\n<dd>".$html2."</dd>\n</dl>\n";
+}
+
+#==============================================================================
+# ¥Ü¡¼¥ë¥É
+#==============================================================================
+sub bold {
+ my $self = shift;
+ my $text = shift;
+ return "<strong>".join("",$self->parse_line($text))."</strong>";
+}
+
+#==============================================================================
+# ¥¤¥¿¥ê¥Ã¥¯
+#==============================================================================
+sub italic {
+ my $self = shift;
+ my $text = shift;
+ return "<em>".join("",$self->parse_line($text))."</em>";
+}
+
+#==============================================================================
+# ²¼Àþ
+#==============================================================================
+sub underline {
+ my $self = shift;
+ my $text = shift;
+ return "<ins>".join("",$self->parse_line($text))."</ins>";
+}
+
+#==============================================================================
+# ÂǤÁ¾Ã¤·Àþ
+#==============================================================================
+sub denialline {
+ my $self = shift;
+ my $text = shift;
+ return "<del>".join("",$self->parse_line($text))."</del>";
+}
+
+#==============================================================================
+# URL¥¢¥ó¥«
+#==============================================================================
+sub url_anchor {
+ my $self = shift;
+ my $url = shift;
+ my $name = shift;
+
+ if($name eq ""){
+ $name = $url;
+ }
+
+ if($url eq $name && $url=~/\.(gif|jpg|jpeg|bmp|png)$/i && $self->{'wiki'}->config('display_image')==1){
+ return "<img src=\"".$url."\">";
+ } else {
+ if($self->{wiki}->config('open_new_window')==1 &&
+ ($self->{wiki}->config('inside_same_window')==0 ||
+ ($self->{wiki}->config('inside_same_window')==1 && index($url,'://') > 0))){
+ return "<a href=\"$url\" target=\"_blank\">".Util::escapeHTML($name)."</a>";
+ } else {
+ return "<a href=\"$url\">".Util::escapeHTML($name)."</a>";
+ }
+ }
+}
+
+#==============================================================================
+# Wiki¥Ú¡¼¥¸¤Ø¤Î¥¢¥ó¥«
+#==============================================================================
+sub wiki_anchor {
+ my $self = shift;
+ my $page = shift;
+ my $name = shift;
+
+ if(!defined($name) || $name eq ""){
+ $name = $page;
+ }
+ if($self->{wiki}->page_exists($page)){
+ return "<a href=\"".$self->{wiki}->create_page_url($page)."\" class=\"wikipage\">".
+ &Util::escapeHTML($name)."</a>";
+ } else {
+ return "<span class=\"nopage\">".&Util::escapeHTML($name)."</span>".
+ "<a href=\"".$self->{wiki}->create_page_url($page)."\">?</a>";
+ }
+}
+
+#==============================================================================
+# ¤¿¤À¤Î¥Æ¥¥¹¥È
+#==============================================================================
+sub text {
+ my $self = shift;
+ my $text = shift;
+ return &Util::escapeHTML($text);
+}
+
+#==============================================================================
+# ¥×¥é¥°¥¤¥ó
+#==============================================================================
+sub plugin {
+ my $self = shift;
+ my $plugin = shift;
+
+ my @result = $self->{wiki}->process_plugin($plugin,$self);
+ return @result;
+}
+
+#==============================================================================
+# ¥Ñ¥é¥°¥é¥Õ¥×¥é¥°¥¤¥ó
+#==============================================================================
+sub l_plugin {
+ my $self = shift;
+ my $plugin = shift;
+
+ if($self->{para}==1){
+ $self->{html} .= "</p>\n";
+ $self->{para} = 0;
+ }
+
+ $self->end_list;
+ $self->end_verbatim;
+ $self->end_table;
+ $self->end_quote;
+
+ my $result = $self->{wiki}->process_plugin($plugin,$self);
+ if(defined($result) && $result ne ""){
+ $self->{html} .= $result;
+ }
+}
+
+#==============================================================================
+# ¥¤¥á¡¼¥¸
+#==============================================================================
+sub l_image {
+ my $self = shift;
+ my $page = shift;
+ my $file = shift;
+ my $wiki = $self->{wiki};
+
+ if($self->{para}==1){
+ $self->{html} .= "</p>\n";
+ $self->{para} = 0;
+ }
+
+ $self->end_list;
+ $self->end_verbatim;
+ $self->end_table;
+ $self->end_quote;
+
+ $self->{html} .= "<div><img src=\"".$wiki->create_url({action=>"ATTACH",page=>$page,file=>$file})."\"></div>\n";
+}
+
+#==============================================================================
+# ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸
+#==============================================================================
+sub error {
+ my $self = shift;
+ my $label = shift;
+
+ return "<span class=\"error\">".Util::escapeHTML($label)."</span>";
+}
+
+1;