my $page = shift;
my $name = shift;
+ my $anchor = undef;
+ my $ppage = $page;
+
if(!defined($name) || $name eq ""){
$name = $page;
}
- if($self->{wiki}->page_exists($page)){
- return "<a href=\"".$self->{wiki}->create_page_url($page)."\" class=\"wikipage\">".
+
+ if($self->{wiki}->page_exists($page)) {
+ #¥¢¥ó¥«¡¼¤ò´Þ¤à¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ï¥ê¥ó¥¯¤òÍ¥Àè
+ return "<a href=\"".$self->{wiki}->create_page_url($page).(defined($anchor)?"#".$anchor:"")."\" class=\"wikipage\">".
&Util::escapeHTML($name)."</a>";
} else {
- return "<span class=\"nopage\">".&Util::escapeHTML($name)."</span>".
- "<a href=\"".$self->{wiki}->create_page_url($page)."\">?</a>";
+ #ºÇ¸å¤Î"#"°Ê¹ß¤ò¥¢¥ó¥«¡¼¤È¤¹¤ë
+ if($page =~ m/#([^#]+)$/) {
+ $page = $`;
+ $anchor = $1;
+ }
+ if(defined($anchor) && $page eq '') {
+ #Ʊ°ì¥Ú¡¼¥¸¤Î¥¢¥ó¥«¡¼¥ê¥ó¥¯
+ return "<a href=\"#$anchor\" class=\"wikipage\">".
+ &Util::escapeHTML($name)."</a>";
+ } elsif($self->{wiki}->page_exists($page)) {
+ #»ØÄê¥Ú¡¼¥¸¤Î¥¢¥ó¥«¡¼¥ê¥ó¥¯
+ return "<a href=\"".$self->{wiki}->create_page_url($page).(defined($anchor)?"#".$anchor:"")."\" class=\"wikipage\">".
+ &Util::escapeHTML($name)."</a>";
+ } else {
+ #¿·µ¬¥Ú¡¼¥¸ºîÀ®ÍÑ¥ê¥ó¥¯
+ return "<span class=\"nopage\">".&Util::escapeHTML($name)."</span>".
+ "<a href=\"".$self->{wiki}->create_page_url($ppage)."\">?</a>";
+ }
}
}