2 ################################################################################
6 ################################################################################
7 require "./lib/common.pl";
8 #===============================================================================
10 #===============================================================================
13 $in{"p"} = "FrontPage";
16 if($in{"a"} eq "list"){
19 } elsif($in{"a"} eq "search"){
27 #-------------------------------------------------------------------------------
29 #-------------------------------------------------------------------------------
31 my @pages = &Wiki::get_page_list();
33 &print_header("°ìÍ÷");
35 foreach my $page (@pages){
36 print "<li><a href=\"".&Wiki::create_page_url($page->{NAME})."\">".
37 &Util::escapeHTML($page->{NAME})."</a>".
38 " - ".&Util::format_date($page->{TIME})."</li>\n";
44 #-------------------------------------------------------------------------------
46 #-------------------------------------------------------------------------------
49 unless(&Wiki::page_exists($in{"p"})){
56 my $source = &Wiki::get_page($in{"p"});
57 my $html = &Wiki::process_wiki($source,1);
59 &print_header($in{"p"},1);
61 if(&Wiki::page_exists("Header")){
62 print "<div class=\"header\">\n";
63 print &Wiki::process_wiki(&Wiki::get_page("Header"));
67 print "<div class=\"day body section\">\n";
71 if(&Wiki::page_exists("Footer")){
72 print "<div class=\"comment\">\n";
73 print &Wiki::process_wiki(&Wiki::get_page("Footer"));
80 #-------------------------------------------------------------------------------
82 #-------------------------------------------------------------------------------
85 &print_header("¸¡º÷");
86 print &Wiki::Plugin::search();
89 my $or_search = $in{'t'} eq 'or';
90 my $with_content = $in{'c'} eq 'true';
91 my $word = &Util::trim($in{'w'});
94 my $conv_upper_case = ($ignore_case and $word =~ /[A-Za-z]/);
96 $word = uc $word if ($conv_upper_case);
97 my @words = grep { $_ ne '' } split(/ +|¡¡+/, $word);
99 #---------------------------------------------------------------------------
101 my @list = &Wiki::get_page_list();
104 foreach my $page (@list){
105 my $name = $page->{NAME};
106 # ¥Ú¡¼¥¸Ì¾¤â¸¡º÷Âоݤˤ¹¤ë
108 $page .= "\n".&Wiki::get_page($name) if ($with_content);
109 my $pageref = ($conv_upper_case) ? \(my $page2 = uc $page) : \$page;
113 # OR¸¡º÷ -------------------------------------------------------
116 next WORD if (($index = index $$pageref, $_) == -1);
118 "<a href=\"".&Wiki::create_page_url($name)."\">".&Util::escapeHTML($name)."</a>".
120 &Util::escapeHTML(&get_match_content($page, $index)).
125 # AND¸¡º÷ ------------------------------------------------------
128 next PAGE if (($index = index $$pageref, $_) == -1);
131 "<a href=\"".&Wiki::create_page_url($name)."\">".Util::escapeHTML($name)."</a>".
133 Util::escapeHTML(&get_match_content($page, $index)).
137 print "$buf<ul>\n$res</ul>\n" if ($res ne '');
143 #-------------------------------------------------------------------------------
144 # ¸¡º÷¤Ë¥Þ¥Ã¥Á¤·¤¿¹Ô¤ò¼è¤ê½Ð¤¹´Ø¿ô
145 #-------------------------------------------------------------------------------
146 sub get_match_content {
150 # ¸¡º÷¤Ë¥Þ¥Ã¥Á¤·¤¿¹Ô¤ÎÀèƬʸ»ú¤Î°ÌÃÖ¤òµá¤á¤ë¡£
151 # ¡¦$content ¤Î $index ÈÖÌܤÎʸ»ú¤«¤éÀèƬÊý¸þ¤Ë²þ¹Ôʸ»ú¤òõ¤¹¡£
152 # ¡¦$index ¤Î°ÌÃÖ¤ò´Þ¤à¹Ô¤ÎÀèƬʸ»ú¤Î°ÌÃ֤ϲþ¹Ôʸ»ú¤Î¼¡¤Ê¤Î¤Ç +1 ¤¹¤ë¡£
153 # ¡¦ÀèƬÊý¸þ¤Ë²þ¹Ôʸ»ú¤¬Ìµ¤«¤Ã¤¿¤éºÇ½é¤Î¹Ô¤Ê¤Î¤Ç¡¢·ë²Ì¤Ï 0(ÀèƬ)¡£
154 # (¸«¤Ä¤«¤é¤Ê¤¤¤È rindex() = -1 ¤Ë¤Ê¤ë¤Î¤Ç¡¢+1 ¤·¤Æ¤Á¤ç¤¦¤É 0)
155 my $pre_index = rindex($content, "\n", $index) + 1;
157 # ¸¡º÷¤Ë¥Þ¥Ã¥Á¤·¤¿¹Ô¤ÎËöÈøʸ»ú¤Î°ÌÃÖ¤òµá¤á¤ë¡£
158 # ¡¦$content ¤Î $index ÈÖÌܤÎʸ»ú¤«¤éËöÈøÊý¸þ¤Ë²þ¹Ôʸ»ú¤òõ¤¹¡£
159 my $post_index = index($content, "\n", $index);
161 # ËöÈøÊý¸þ¤Ë²þ¹Ôʸ»ú¤¬¤Ê¤«¤Ã¤¿¤éºÇ½ª¹Ô¤Ê¤Î¤Ç $pre_index °Ê¹ßÁ´¤Æ¤òÊֵѡ£
162 return substr($content, $pre_index) if ($post_index == -1);
164 # ¸«¤Ä¤«¤Ã¤¿²þ¹Ôʸ»ú¤Ë¶´¤Þ¤ì¤¿Ê¸»úÎó¤òÊֵѡ£
165 return substr($content, $pre_index, $post_index - $pre_index);