kokodayo.net
FSWikiまとめ
FreeStyleWiki
編集FAQ

ページ内アンカをつけて自ページ名のスタイルを変更する

コード

/lib/Wiki/HTMLParser.pm

#===========================================================================
# Wikiページへのアンカ
#===========================================================================
sub wiki_anchor {

my $self = shift;
my $page = shift;
my $name = shift;
my $anchor = undef;
my $id = '';
if ($self->{wiki}->get_CGI()->param('page') eq $page) {
	$id = ' id = "myself"';
}
if(!defined($name) || $name eq ""){
	$name = $page;
}

($page, $anchor) = split(/#/, $page, 2) if($page =~ m/#/);
if($self->{wiki}->get_CGI()->param('page') ne $page){
  return "<a href=\"".$self->{wiki}->create_page_url($page).(defined($anchor) ? "#$anchor" : '') . '" class="wikipage">' . &Util::escapeHTML($name)."</a>";
 }else{
   return "<a href=\"".$self->{wiki}->create_page_url($page). '" class="myself">' . &Util::escapeHTML($name)."</a>";
 }
}

id="myself"では一意に定義されてしまうので当然のようにページ内に複数出てくることに対応するにはclass="myself"にするのが適当なようです。

CSS

myselfを書き足します

ここではCSS

a.myself{color:#336;margin:0 1px 0 0;border-bottom:none;background-color:#dde}

個別の指定では

.menubar a.myself{color:#336;font-weight:bold;border-bottom:none;background-color:#fafafb}

.menubar a.myself{color:#336;font-weight:bold;border-bottom:none;background-color:#dde}

.sitetitle a.myself{color: #5555aa;background-color:transparent;text-decoration:none}

などとしました

ライセンス

GPLでよろしいかと。

ページ内アンカ


anchorプラグインext_linkインストールした後、移動先に{{anchor 1}}などのようにアンカを貼ります。

ページリンクの書き方はこんな感じになります。


ページ内アンカをつけて自ページ名のスタイルを変更する

[[ページ内アンカをつけて自ページ名のスタイルを変更する|ページ内アンカをつけて自ページ名のスタイルを変更する#1]]


他のページのanchorのテスト1

[[他のページのanchorのテスト1|anchorのテスト#1]]

他のページのanchorのテスト2

[[他のページのanchorのテスト2|anchorのテスト#2]]

ご注意

ページが存在しない場合に付く「?」をはずしてありますので自動リンクを使用して、他のページにリンクされていなければページが存在しないという判断で使用することになります。[[リンク先|ページ名]]などと貼ってもページが存在しないと「?」が表示されません。(逆に無いページにあえてリンクさせることでそのページを作成したいといった場合の使いかたも便利です。)

ページをincludeした時にインクルード先のページ名に適用されてしまうのはどうなっているのか不明

参照

ページ内アンカーのパッチと
自ページへのリンクのスタイルを変更するパッチを取り込みました。














↑ここに{{anchor 1}}と貼ってあります。

2013年05月18日ページ名変更・編集