#?SuikaWiki/0.9 [1] [[SuikaWiki3]] の [[WikiPlugin]] モジュール [[WikiLinking]] の関数 [DFN[[CODE[to_wikipage_in_html]]]] は、 [[HTML]] 文書の出力にあたって、 [[WikiPage]] への[[リンク]]を作成します。 * 構文 [2] [CODE(perl)[[VAR[[VAR[SuikaWiki::Plugin]]->module_package ('WikiLinking')]]->to_wikipage_in_html ({[VAR[src]]} => {[VAR[dest]]}, {[VAR[option]]})]] [VAR[src]], [VAR[dest]], [VAR[option]] は、 名前付き引数の並びです。 * src [3] [VAR[src]] には、始点アンカーに関する次の名前付き引数を指定できます。 :[CODE[base_uri]]:始点アンカー (のまわり) の[[基底URI]] ([[絶対URI参照]], 文字列又は [CODE(perl)[[[URI]]]] モジュールの実現値)。 既定値は[Q[現在]]の URI (HTTP CGI スクリプトとして使用している時は、要求された URI) です。 :[CODE[label]]:始点アンカーのラベル (始点アンカーそのもの)。 [CODE(perl)[[[Message::Util::Formatter]]]] 形式の雛形で、文脈 [CODE[page-link]] で評価されます。 既定値は[[資源]] [CODE[Link:toWikiPage:SourceLabel]] です。 * dest [4] [VAR[dest]] には、終点アンカーに関する次の名前付き引数を子弟できます。 :[CODE[base]]:終点 WikiName を解決するための絶対 WikiName (WikiName object)。 [CODE[page_name_relative]] が指定されている時は必須。 :[CODE[page_anchor_name]]:終点アンカー名。 :[CODE[page_anchor_no]]:終点アンカー番号。 [CODE[page_anchor_name]] と同時には指定できません。 :[CODE[page_name]]:終点 WikiPage の絶対 WikiName (WikiName object)。 [CODE[page_name_relative]] より優先して使われます。 :[CODE[page_name_relative]]:終点 WikiPage の WikiName (相対または絶対, WikiName object)。 [CODE[page_name]] が指定されたいない時は必須。 :[CODE[_up_to_date]]:終点 URI 参照に up‐to‐date flag を付けるか否か ([CODE[1]] or [CODE[0]])。 :[CODE[param]] = {[VAR[name]] => [VAR[val]],...}: 終点 URI 参照の追加の引数。 :[CODE[-use_absolute_uri]]:終点 URI 参照を絶対 URI 参照として出力するべきか否か ([CODE[1]] or [CODE[0]])。 真なら常に絶対 URI 参照として、偽なら場合によっては相対 URI 参照で出力します。 :[CODE[wiki_mode]]:モード名文字列。既定値は [CODE[default]]。 :[CODE[_with_lm]]:終点 URI 参照に採集修正日時 flag を付けるか否か ([CODE[1]] or [CODE[0]])。 * opt [5] [VAR[opt]] には、リンク全体に関する次の名前付き引数を指定できます。 :[VAR[o]]:[Q[o]] 物体。この引数は必須です。 :[VAR[parent]]:始点アンカーの[[親節]]物体。 この引数は必須です。 [VAR[(この引数が [VAR[src]] でなく [VAR[opt]] なのは歴史的理由です。)]] * label の評価 [7] 始点アンカーとなる [CODE[[VAR[src]]->{label}]] は、 [CODE(perl)[[[Message::Util::Formatter]]]] 形式の雛形です。この雛形は、 [CODE[page-link]] 文脈で評価されます。 この文脈の整形規則定義では、リンクに関する情報を [CODE[$o->{link}]] から参照できます。 :[CODE[$o->{link}->{src}]]:[VAR[src]] 引数。 ただし [CODE[[VAR[src]]->{label}]] は既定値を補完したもの。 :[CODE[$o->{link}->{dest}]]:[VAR[dest]] 引数。 ただし [CODE[[VAR[dest]]->{page_name}]] は必要なら [CODE[[VAR[dest]]->{page_name_relative}]] を解決して補完したもの。 :[CODE[$o->{link}->{option}]]:[VAR[opt]] 引数。 * メモ [6] 各種類の名前付き引数には、ここにあるものの他に、 モジュール規定の引数 ([SAMP[[VAR[module-name]]--foo]]) を使うこともできます。 [8] この関数は ([CODE(perl)[[[to_resource_by_uri_in_html]]]] とあわせて) 100回以上入れ子にすることはできなくしています。 (普通それだけの入れ子はあり得ません。 入れ子にすること自体稀です。)