トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BBS-サポート掲示板/708

ページの作成や編集にはユーザ登録が必要です。

 Wiki::Parserの処理について質問です - ZON (2007年05月17日 22時51分30秒)

プラグインを作る過程でソースを読んでいて気になったので質問させてください。

働きというよりは、この処理の意図する目的の部分が知りたいのです。

Wiki::Parser の parse_line {} の処理の中、337行目についてです。

319: # 任意のURLリンク
320: } elsif($source =~ /\[([^\[]+?)\|(.+?)\]/){
321:        my $pre   = $`;
322:        my $post  = $';
     ……中略……
337:        push @array,$self->url_anchor($uri."/../".$url, $label);
338:        }
339:        if($post ne ""){ 
     ……後略……

337行目の部分で間に「/../」を入れて$url値を一つ上のディレクトリにあげているのはどういうケースに対応する(あるいは防ぐ)ことを目的としているのでしょうか。

ちょっと思い付かなかったので是非知りたいです。よろしくお願いします。

  • これは、相対パスと思われるリンクを処理する辺りですね。出力されるのは、http://example.com/wiki.cgi/../hogehoge.html (= http://example.com/hogehoge.html) のような形になると思います。test - sakuma (2007年05月26日 15時44分09秒)
  • なるほど、そうすると「子Wiki ←→ 子wiki」みたいに相対的なリンクを、例えば親Wikiからの位置で書くとうまく処理されるみたいなケースですね。(親Wiki ←→ 子Wiki で確認しました) - ZON (2007年05月27日 17時55分20秒)
  • WikiFarm も考慮されているので,子Wikiからの相対パスで大丈夫と思いますよ - sakuma (2007年05月28日 14時29分53秒)
お名前: コメント:

最終更新時間:2007年05月28日 14時29分53秒