質問箱/3448

カテゴリ
サマリページ名+アンカー名のリンク表示について
バージョン1.4.7
投稿者ブライアン?
状態完了
投稿日2006-07-02 (日) 22:00:33

質問

このように記述すると

[[ページ名#アンカー名]]

こんなhtmlが出力されます。

<a href="http://xxx/index.php?ページ名#アンカー名" title="ページ名 (xx)">ページ名#アンカー名</a>

ちょっと前までは

<a href="http://xxx/index.php?ページ名#アンカー名" title="ページ名 (xx)">ページ名</a>

こんな感じだったような気がするんですけど... 勘違いでしょうか?

回答

  • PukiWiki-1.4.4まで遡ってみましたが、1.4.7と同じ振る舞いのようです。ただし、次のような動作になりますので、へんな感じですね (^^;。 -- teanan 2006-07-08 (土) 01:16:21
    [[FrontPage#f782fb99]]  → "FrontPage"
    [[質問箱3/448#r65bd519]] → "質問箱3/448#r65bd519"
  • 調べたところBracketNameの中身がWikiNameで無い場合、上記のようにアンカーが付いた表示になります。アンカーを表示したくない場合、次のようにpreg_matchの条件を外してやると良さそうです*1。 -- teanan 2006-07-08 (土) 01:38:48
    lib/make_link.php (v 1.30): 582行目付近
    		if ($name == '' && $this->anchor == '') return FALSE;
    
    -		if ($name == '' || ! preg_match('/^' . $WikiName . '$/', $name)) {
    +		if ($name == '') {
    			if ($alias == '') $alias = $name . $this->anchor;
  • 回答ありがとうございます。BracketNameとWikiNameについてよくわからないですが、これがpukiwikiの仕様ということですね。 -- ブライアン? 2006-07-09 (日) 21:18:43
    •  BracketNameとWikiNameの違いについてはリンク先をご覧頂くとして :) 現状はこのような仕様です。ちょっと統一感がないですね (^^; -- teanan 2006-07-09 (日) 21:26:44
  • 上の方法だと、BracketName の時にget_fullname 関数を通さなくなるので、ページの相対指定ができなくなりますよ。なので、上と同じ場所の
    			if ($alias == '') $alias = $name . $this->anchor;
    の1文を
    			if ($alias == '') $alias = $name;
    にする方がいいのでは? -- 2009-03-09 (月) 00:01:31
    • 相対指定の時にページ名を表示する方法は、質問箱/4080 へ。 -- 2009-03-09 (月) 00:01:31

*1 一番最初からそうなっているようですね。何故だかわかりませんが・・・ cvs:Attic/make_link.php (v 1.1)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-09-11 (金) 12:21:34
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.218 sec.

OSDN