481 |
if ($l) { |
if ($l) { |
482 |
&embedded_to_html($1); |
&embedded_to_html($1); |
483 |
} elsif (defined $page) { |
} elsif (defined $page) { |
484 |
&make_wikilink (&unescape ($page), anchor => 0+$anchor); |
&make_wikilink (&unescape ($page), anchor => 0+$anchor, base => $option{page}); |
485 |
} elsif ($anum) { |
} elsif ($anum) { |
486 |
qq(<a href="#anchor-$anum" class="wiki-anchor">>>$anum</a>); |
qq(<a href="#anchor-$anum" class="wiki-anchor">>>$anum</a>); |
487 |
} elsif ($uri) { |
} elsif ($uri) { |
495 |
my ($name, %option) = @_; |
my ($name, %option) = @_; |
496 |
my $ename = &escape (length $option{label} ? $option{label} : $name); |
my $ename = &escape (length $option{label} ? $option{label} : $name); |
497 |
$option{latest} = $option{latest} ? qq(mycmd=default;x-param=@{[time.[0..9]->[rand 10]]};mypage=) : ''; |
$option{latest} = $option{latest} ? qq(mycmd=default;x-param=@{[time.[0..9]->[rand 10]]};mypage=) : ''; |
498 |
|
|
499 |
|
## Namespace |
500 |
|
if ($wiki::page::ns::delimiter && ($name =~ m#\Q$wiki::page::ns::delimiter\E# |
501 |
|
|| $name eq $wiki::page::ns::parent |
502 |
|
|| $name eq $wiki::page::ns::self)) { |
503 |
|
my @name = split m#\Q$wiki::page::ns::delimiter\E#, $name; |
504 |
|
my @base = split m#\Q$wiki::page::ns::delimiter\E#, $option{base}; |
505 |
|
if ($name[0] eq $wiki::page::ns::self) { ## .//Foo//Bar |
506 |
|
@name = (@base, @name[1..$#name]); |
507 |
|
} elsif ($name[0] eq $wiki::page::ns::parent) { ## ..//Foo//Bar |
508 |
|
@base = grep {$_} @base; $#base--; |
509 |
|
@name = (@base, @name[1..$#name]); |
510 |
|
} |
511 |
|
$name = join $wiki::page::ns::delimiter, grep {$_} @name; |
512 |
|
} |
513 |
|
$name ||= $PageName{FrontPage}; |
514 |
|
|
515 |
if ($database{$name}) { |
if ($database{$name}) { |
516 |
my $subject = &escape (&get_subjectline ($name, delimiter => '')); |
my $subject = &escape ($name.&get_subjectline ($name)); |
517 |
if ($option{anchor}) { |
if ($option{anchor}) { |
518 |
return qq(<a title="$subject" href="$uri{wiki}?$option{latest}@{[&encode($name)]}#anchor-$option{anchor}" class="wiki">$ename>>$option{anchor}</a>); |
return qq(<a title="$subject" href="$uri{wiki}?$option{latest}@{[&encode($name)]}#anchor-$option{anchor}" class="wiki">$ename>>$option{anchor}</a>); |
519 |
} else { |
} else { |
520 |
return qq(<a title="$subject" href="$uri{wiki}?$option{latest}@{[&encode($name)]}" class="wiki">$ename</a>); |
return qq(<a title="$subject" href="$uri{wiki}?$option{latest}@{[&encode($name)]}" class="wiki">$ename</a>); |
521 |
} |
} |
522 |
} else { |
} else { |
523 |
return qq(<a title="@{[&Resource('JumpAndEditWikiPage',escape=>1)]}" href="$uri{wiki}?$option{latest}@{[&encode($name)]}" class="wiki not-exist">$ename<span class="mark">@{[&Resource('JumpAndEditWikiPageMark',escape=>1)]}</span></a>); |
return qq(<a title="@{[&escape($name).&Resource('Title-Summary Delimiter',escape=>1).&Resource('JumpAndEditWikiPage',escape=>1)]}" href="$uri{wiki}?$option{latest}@{[&encode($name)]}" class="wiki not-exist">$ename<span class="mark">@{[&Resource('JumpAndEditWikiPageMark',escape=>1)]}</span></a>); |
524 |
} |
} |
525 |
} |
} |
526 |
|
|
756 |
|
|
757 |
sub is_editable { |
sub is_editable { |
758 |
my ($page) = @_; |
my ($page) = @_; |
759 |
$page =~ /[\x00-\x20\x7F]/ ? 0 : 1; |
if ($page =~ /[\x00-\x20\x7F]/) { |
760 |
|
return 0; |
761 |
|
} elsif ($wiki::page::ns::delimiter) { ## Use namespace |
762 |
|
if ($page eq $wiki::page::ns::delimiter |
763 |
|
|| $page eq $wiki::page::ns::self |
764 |
|
|| $page eq $wiki::page::ns::parent) { |
765 |
|
return 0; |
766 |
|
} elsif ($page =~ /\Q$wiki::page::ns::delimiter\E(?:\Q$wiki::page::ns::self\E|\Q$wiki::page::ns::parent\E)\Q$wiki::page::ns::delimiter\E/) { |
767 |
|
return 0; |
768 |
|
} elsif ($page =~ /^(?:\Q$wiki::page::ns::self\E|\Q$wiki::page::ns::parent\E)\Q$wiki::page::ns::delimiter\E/) { |
769 |
|
return 0; |
770 |
|
} elsif ($page =~ /\Q$wiki::page::ns::delimiter\E(?:\Q$wiki::page::ns::self\E|\Q$wiki::page::ns::parent\E)$/) { |
771 |
|
return 0; |
772 |
|
} |
773 |
|
} |
774 |
|
1; |
775 |
} |
} |
776 |
|
|
777 |
sub decode { |
sub decode { |