*refプラグインで参照ページのBracketNameにカンマが含まれているとファイルを参照できない。 [#va1c8efa]

-ページ: BugTrack
-投稿者: [[bebebe]]
-優先順位: 低
-状態: 完了
-カテゴリー: プラグイン
-投稿日: 2004-02-03 (火) 01:21:22
-バージョン: 1.4.2/refプラグイン(1.20)

**メッセージ [#n47a0b6a]
refプラグインで
 &ref(ファイル名,[[参照先]]);
と記述するときの参照先のBracketNameに「,」が含まれていると存在するファイルを参照していてもファイルが見つからないというメッセージが表示されます。

バージョンはPukiWiki 1.4.2、refプラグイン1.20です。

たとえば、たしかに存在するSandBox/test,testというページに添付されたtest.pngを他のページより
 &ref(test.png,[[SandBox/test,test]]);
として参照しても、うまくいきません。
----
-これはrefプラグインに限らず、PukiWIkiのプラグインの仕様のはず。以前、1.3.2時代にalignプラグインを作ったときに、この仕様を回避するために小細工をした記憶があります。 -- [[reimy]] &new{2004-02-03 (火) 04:01:16};
-下記のいずれの書き方でもダメですね。 -- [[reimy]] &new{2004-02-03 (火) 07:02:17};

 &ref(favicon.png,[[Sandbox/test,test]]);
&ref(favicon.png,[[Sandbox/test,test]]);

 &ref(favicon.png,[[Sandbox/test,test]]);
&ref(favicon.png,[[Sandbox/test,test]]);

 &ref(Sandbox/test,test/favicon.png);
&ref(Sandbox/test,test/favicon.png); まあ、これは無理なのは当然ですが。

 &ref(Sandbox/test,test/favicon.png);
&ref(Sandbox/test,test/favicon.png);
-基本的にBracketNameに半角のカンマは使わないほうが無難です。 -- [[reimy]] &new{2004-02-03 (火) 07:17:36};
-個々のプラグインで対処するのはちょっと厄介ですね。[[BugTrack/136]]、[[BugTrack/138]]のときのようにBracketNameの側で制限するか、プラグインに引数を渡すときにエスケープ(たとえば\,)できるようにしたほうがいいかも。引数を引用符で囲んだ場合、一つの引数として扱うようにするとか。 -- [[reimy]] &new{2004-02-03 (火) 07:26:33};
-プラグインの引数を、いわゆる(?)Excel風CSVのように解釈するようにしてみました。以下のように、カンマを含む引数を"~"で囲むことで、ひとつの引数とみなすようになっています。 詳しくは [[こちら>http://www.din.or.jp/~ohzaki/perl.htm#CSV2Values]] -- [[ぱんだ]] &new{2004-03-18 (木) 18:56:56};
 &ref("SandBox/test,test/favicon.png",120%);
&ref("SandBox/test,test/favicon.png",120%);
>基本的にコンマで区切った部分がスペースを含めて値である. ~
値にコンマやダブルクウォートが含まれる場合は, 値全体をダブルクウォートで囲む. ~
値に含まれるダブルクウォートは "" となる.
<
-たぶん影響ないと思うんですけど。引数をダブルクオートで囲むプラグインってありましたっけ。 -- [[ぱんだ]] &new{2004-03-18 (木) 18:56:56};
--[[cvs:convert_html.php]](v1.4:r1.62)
--[[cvs:func.php]](v1.4:r1.59)
--[[cvs:plugin.php]](v1.4:r1.10)
-引数にダブルクオーテーションで囲むプラグインは思いつかないですけど、引数にダブルクォーテーションを含めることのできるプラグインはいくつか存在します。ほとんど影響はないでしょう。 -- [[reimy]] &new{2004-03-19 (金) 14:23:40};
--すぐに思いつく例として、#ref(hoge.png,left,nowrap,around,20x20,"特別な"アイコン"hoge")というように文字列の一部にダブルクォーテーションを含めている場合。こんなの、稀でしょう。&ref("SandBox/test,test/favicon.png",120%,"特別な"アイコン"hoge");

#comment
//#comment

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

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.042 sec.

OSDN