/[pub]/suikawiki/script/lib/suikawiki.pl
Suika

Diff of /suikawiki/script/lib/suikawiki.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by wakaba, Thu Mar 27 04:28:41 2003 UTC revision 1.2 by wakaba, Thu Mar 27 07:18:51 2003 UTC
# Line 481  sub inline ($;%) { Line 481  sub inline ($;%) {
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">&gt;&gt;$anum</a>);          qq(<a href="#anchor-$anum" class="wiki-anchor">&gt;&gt;$anum</a>);
487        } elsif ($uri) {        } elsif ($uri) {
# Line 495  sub make_wikilink ($%) { Line 495  sub make_wikilink ($%) {
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&gt;&gt;$option{anchor}</a>);        return qq(<a title="$subject" href="$uri{wiki}?$option{latest}@{[&encode($name)]}#anchor-$option{anchor}" class="wiki">$ename&gt;&gt;$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    
# Line 739  EOD Line 756  EOD
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 {

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24