578 |
# ページのタイトルからページの内容を得る |
# ページのタイトルからページの内容を得る |
579 |
sub get_page { |
sub get_page { |
580 |
my $page_name = shift; |
my $page_name = shift; |
581 |
return $database{$page_name}; |
return $database{$page_name} || $database{'[['.$page_name.']]'}; |
582 |
} |
} |
583 |
|
|
584 |
# ページの内容を与える |
# ページの内容を与える |
615 |
sub print_header { |
sub print_header { |
616 |
my $title = shift; |
my $title = shift; |
617 |
print <<"EOD"; |
print <<"EOD"; |
618 |
Content-type: text/html |
Content-type: text/html; charset=${charset} |
619 |
|
|
620 |
<html><head> |
<html><head> |
621 |
<title>$title</title> |
<title>$title</title> |
645 |
<a href="$thisurl?mycmd=list">一覧</a> | |
<a href="$thisurl?mycmd=list">一覧</a> | |
646 |
$editlink |
$editlink |
647 |
<a href="$thisurl?mycmd=search">単語検索</a> | |
<a href="$thisurl?mycmd=search">単語検索</a> | |
648 |
<a href="$thisurl?mycmd=read;mypage=$whatsnew">最終更新</a> |
<a href="$thisurl?mycmd=read;mypage=$whatsnew">最近の更新</a> |
649 |
] |
] |
650 |
</p> |
</p> |
651 |
EOD |
EOD |
654 |
# ページのフッタを出力 |
# ページのフッタを出力 |
655 |
sub print_footer { |
sub print_footer { |
656 |
print <<"EOD"; |
print <<"EOD"; |
657 |
<address> |
<div class="navigation"> |
658 |
<a href="http://www.hyuki.com/yukiwiki/">YukiWiki</a> 1.6.6 Copyright (C) 2000,2001 by <a href="http://www.hyuki.com/">Hiroshi Yuki.</a> |
<a href="http://www.hyuki.com/yukiwiki/">YukiWiki</a> 1.6.6 Copyright (C) 2000,2001 by <a href="http://www.hyuki.com/">Hiroshi Yuki.</a> |
659 |
+ <a href="$modifierlink">$modifier</a> ${version}. |
+ <a href="$modifierlink">$modifier</a> ${version}. |
660 |
[<a href="/" title="このサーバーの首頁">/</a> |
[<a href="/" title="このサーバーの首頁">/</a> |
661 |
<a href="/map" title="このサーバーの案内">地図</a> |
<a href="/map" title="このサーバーの案内">地図</a> |
662 |
<a href="/search/" title="このサーバーの検索">検索</a>] |
<a href="/search/" title="このサーバーの検索">検索</a>] |
663 |
</address> |
</div> |
664 |
|
<div class="update">\$Id$ </div> |
665 |
</body></html> |
</body></html> |
666 |
EOD |
EOD |
667 |
} |
} |
680 |
} elsif ($name =~ /^mailto:(.*)/) { |
} elsif ($name =~ /^mailto:(.*)/) { |
681 |
my $address = $1; |
my $address = $1; |
682 |
return qq|<<a href="$name">$address</a>>|; |
return qq|<<a href="$name">$address</a>>|; |
683 |
} elsif ($name =~ /^urn:[0-9A-Za-z_:-]+/) { |
} elsif ($name =~ m#^urn:[0-9A-Za-z_:;/.-]+#) { |
684 |
return qq|<<a href="/uri-res/N2L?${name}">$name</a>>|; |
return qq|<<a href="/uri-res/N2L?${name}">$name</a>>|; |
685 |
} else { |
} else { |
686 |
my $name2 = $name; $name2 =~ tr/\x20/-/; |
my $name2 = $name; $name2 =~ tr/\x20/-/; |
692 |
return qq|<a href="$thisurl?mycmd=read;mypage=$percent_name" class="wiki">$name</a>|; |
return qq|<a href="$thisurl?mycmd=read;mypage=$percent_name" class="wiki">$name</a>|; |
693 |
} else { |
} else { |
694 |
my $percent_name = &encode_percent($name2); |
my $percent_name = &encode_percent($name2); |
695 |
return qq|<a href="$thisurl?mycmd=edit;mypage=$percent_name" class="wiki newpage">$name?</a>|; |
return qq|<a href="$thisurl?mycmd=edit;mypage=$percent_name" class="wiki newpage">$name<span class="mark">?</span></a>|; |
696 |
} |
} |
697 |
} |
} |
698 |
} |
} |
768 |
} |
} |
769 |
|
|
770 |
# 編集可能ページか? |
# 編集可能ページか? |
771 |
sub is_editable { |
sub is_editable {return 1; |
772 |
|
## TODO: ... |
773 |
my ($pagename) = @_; |
my ($pagename) = @_; |
774 |
foreach (@uneditable) { |
foreach (@uneditable) { |
775 |
if ($pagename eq $_) { |
if ($pagename eq $_) { |
782 |
return 0; |
return 0; |
783 |
} |
} |
784 |
|
|
785 |
# Validな名前か? |
# Validな名前か? |
786 |
sub is_valid_name { |
sub is_valid_name { |
787 |
my ($pagename) = @_; |
my ($pagename) = @_; |
788 |
if ($pagename =~ /^$WikiName$/) { |
if ($pagename =~ /^$WikiName$/) { |