*&aname(top);InterWikiでもアンカーへのリンクが使いたい [#v01ab364]

-ページ: BugTrack
-投稿者: [[reimy]]
-優先順位: 普通
-状態: 完了
-カテゴリー: 本体新機能
-投稿日: 2003-04-19 (土) 11:59:33
-バージョン: 

**メッセージ [#n31b3e6b]
エイリアスでは
 [[ほげほげ>ページ名#anchor]]
という書き方ができるようになったけど、InterWikiでは
 [[ほげほげ:ページ名#anchor]]
とは書けない。

#も%23にエンコードされてしまうのが理由。#をエンコードしないで出力できれば…

[[official:質問箱#content_1_2]]
----
-こんな感じでしょうか。 -- [[ぱんだ]] &new{2003-04-21 (月) 18:21:38};~
InterWikiNameのパラメータ部(コロンの後)で、#の後にアンカーらしき文字列''だけ''が続いている場合はアンカーとする仕掛けです。

 diff -u -r1.32 make_link.php
 --- make_link.php Mar 2003 15:13:02 -0000	1.32
 +++ make_link.php1 Apr 2003 09:15:26 -0000
 @@ -391,6 +391,8 @@
  //InterWikiName
  class Link_interwikiname extends Link
  {
 +	var $anchor = '';
 +	
  	function Link_interwikiname($start)
  	{
  		parent::Link($start);
 @@ -434,8 +436,14 @@
  	{
  		$arr = $this->splice($arr);
  		
 +		$param = $arr[6];
 +		if (preg_match('/^([^#]+)(#[A-Za-z][\w-]*)$/',$param,$matches))
 +		{
 +			$this->anchor = $matches[2];
 +			$param = $matches[1];
 +		}
 -		$name = '[['.$arr[4].$arr[6].']]';
 -		$alias = ($arr[2] != '') ? $arr[2] : strip_bracket($name);
 +		$name = '[['.$arr[4].$param.']]';
 +		$alias = ($arr[2] != '') ? $arr[2] : $arr[4].$arr[6];
  		
  		return parent::setParam($page,$name,'InterWikiName',$alias);
  	}
 @@ -444,7 +452,7 @@
  		global $script; //,$interwiki_target;
  		
  		$r_name = rawurlencode($this->name);
 -		return "<a href=\"$script?$r_name\">{$this->alias}</a>";
 +		return "<a href=\"$script?$r_name{$this->anchor}\">{$this->alias}</a>";
  	}
  }
  // BracketName
-''InterWikiのパラメータ部に#を書くことが必要なサイトはない''ことが断言できれば、今すぐにでもCVSに取り込むんですが、ちょっと自信ない… :) 。 -- [[ぱんだ]] &new{2003-04-21 (月) 18:22:58};
--WikiNameに#が使えるWiki(PukiWiki 1.3以前)などへ飛ぶときは副作用が出ます(kawaraさんとこで確認しました)が、これは致し方ない。-- [[reimy]] &new{2003-04-22 (火) 15:40:04};
-むちゃくちゃ便利になりました&heart; -- [[reimy]] &new{2003-04-21 (月) 21:10:56};

#comment
//#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.018 sec.

OSDN