任意のセクションへのリンクを可能にする。
[link to part]
[[アイディア募集#アーカイバ]] [[アイディア募集-アーカイバ アイディア募集#アーカイバ]]
上記の様に記述するとセクションへのリンクを作成出来ます。
↓こんな感じ
アイディア募集
アイディア募集-アーカイバ
[[アイディア募集#i8]]
2003-06-12 (Thu) 02:28:25 りなざうのNetFrontだと↑こう書かないと飛べない…(;_;)
アイディア募集
関連するカスタマイズ
make_anchor()追加
# yakty add [link to part] start sub make_anchor { my ($anchor) = @_; $anchor =~ s/([^a-zA-Z0-9\-_:\.])/unpack('H2', $1)/eg; $anchor = 'a' . $anchor if($anchor =~ /^[^a-zA-Z]/o); return $anchor; } # yakty add [link to part] end
text_to_html()内の変更
# Walrus add [header level] start } elsif (/^(\*{1,$header_level})(.*)/) { push(@toc, sprintf(qq(%s<a href="#i%d">%s</a>\n), '-' x length($1), $tocnum, &escape(&remove_modification($2)))); # Walrus mod [remove modification] #push(@result, splice(@saved), sprintf('<h%d><a name="i%d"> </a>%s</h%d>', length($1) + 1, $tocnum, &inline($2), length($1) + 1)); # yakty del [link to part] push(@result, splice(@saved), sprintf('<h%d><a name="i%d"> </a><a name="%s"> </a>%s</h%d>', length($1) + 1, $tocnum, &make_anchor($2), &inline($2), length($1) + 1)); # yakty add [link to part] push(@result, sprintf(qq(<div class="partinfo">$resource{'parteditlinkformat'}</div>), $tocnum + 2)) if ($option{'partinfo'}); # Walrus add [part edit] $tocnum++; # Walrus add [header level] end
make_link()内の変更
sub make_link { my $chunk = shift; return $chunk if ($chunk =~ s/''''''//g); # Walrus add [alias link] # Walrus add [alias link] start $chunk = &unescape($chunk); # yakty add [link to part] start my $part; #if(&is_bracket_name($chunk)){ # fixed 2003-07-08 (Tue) 17:39:26 if($chunk !~ /^$embedded_name$/ && &is_bracket_name($chunk)){ # fixed 2003-07-08 (Tue) 17:39:26 $chunk = &unarmor_name($chunk); ($chunk, $part) = ($1, '#' . &make_anchor($2)) if($chunk =~ /^(.+?)#(.+)$/); #$chunk = &armor_name($chunk) if($chunk ne $InterWikiName); # fixed 2003-07-08 (Tue) 17:39:26 } elsif($chunk =~ /^$wiki_name/){ ($chunk, $part) = ($1, '#' . &make_anchor($2)) if($chunk =~ /^(.+?)#(.+)$/); } # yakty add [link to part] end my $name = $chunk; my $escapedchunk = &escape($chunk); my $escapedname = &escape($name); my $cookedchunk = &encode($chunk); if ($form{mypage} ne $InterWikiName and $chunk !~ /^$embedded_name$/) { ($name, $chunk) = ($1, $2) if ($chunk =~ /^\[\[(\S+) (\S+)\]\]$/); ($name, $chunk) = (&unarmor_name($name), &unarmor_name($chunk)); ($chunk, $part) = ($1, '#' . &make_anchor($2)) if ($chunk =~ /^(.+?)#(.+)$/); # yakty add [link to part] if ($name =~ /^$interwiki_name$/ and $interwiki{$1}) {
# Walrus add [alias link] start if ($chunk =~ /^(http|https|ftp|mailto):/) { return qq(<a href="$escapedchunk$part">$escapedname</a>); # yakty add [link to part] #return qq(<a href="$escapedchunk">$escapedname</a>); # yakty del [link to part] # Walrus add [alias link] end
if ($database{$chunk}) { # Walrus add [alias link] start my $subject = &escape(&get_subjectline($chunk, delimiter => '')); return qq(<a title="$subject" href="$url_cgi?$cookedchunk$part">$escapedchunk</a>); # yakty add [link to part] #return qq(<a title="$subject" href="$url_cgi?$cookedchunk">$escapedchunk</a>); # yakty del [link to part] } elsif ($page_command{$chunk}) { return qq(<a title="$escapedchunk" href="$url_cgi?$cookedchunk$part">$escapedchunk</a>); # yakty add [link to part] #return qq(<a title="$escapedchunk" href="$url_cgi?$cookedchunk">$escapedchunk</a>); # yakty del [link to part] } else { return qq($escapedchunk<a title="$resource{editthispage}" href="$url_cgi?mycmd=edit&mypage=$cookedchunk">$editchar</a>); }