FreeStyle Wiki こんな感じかな

accesskey だけでなくついでに title もつけてみた。

lib/Wiki.pm

319a320,321
>         my $title  = shift;
>         my $access = shift;
330c332,344
<         push(@{$self->{"menu"}},{name=>$name,href=>$href,weight=>$weight});
---
>         if ( $title !~ /^$/ ) {
>                 $title = ' title="'.$title.'"';
>         }
>         if ( $access =~ /^[0-9a-zA-Z\/.,]$/ ) {
>                 $access = ' accesskey="'.$access.'"';
>         } else {
>                 undef( $access );
>         }
>         push(@{$self->{"menu"}},{name=>$name,
>                                  href=>$href,
>                                  weight=>$weight,
>                                  title=>$title,
>                                  accesskey=>$access});

accesskey に使える文字は正規表現にあるように制限したけど、これは手元の Firefox で適当に確認しただけなので、間違ってる可能性あり。まーでも普通は英数字以外使わないでしょ。

tmpl/header.tmpl

7c7
<       <a href="<!--TMPL_VAR NAME="href"-->"><!--TMPL_VAR ESCAPE="HTML" NAME="name"--></a>
---
>       <a href="<!--TMPL_VAR NAME="href"-->"<!--TMPL_VAR NAME="title"-->
        <!--TMPL_VAR NAME="accesskey"-->><!--TMPL_VAR ESCAPE="HTML" NAME="name"--></a>

途中で改行入れましたが。

あとは plugin/*/Install.pm とかにある

$wiki->add_menu("編集"  ,"",997);

$wiki->add_menu("編集"  ,"",997,"このページを編集[e]","e");

こんな風に直す。使い方は

add_menu( リンクテキスト, href, weight, title, accesskey)

で、title も accesskey も任意。設定しない場合は当然 HTML 上には現れない。(これは HTML::Template の機能。)

title はともかく、accesskey は管理画面で有効にするかどうか選べた方がいいんだろうなぁ。

More