#?SuikaWiki/0.9 [1] [DFN[InterWiki]] は、 ([[URI]] よりも人間に優しい) 別の ([[wiki]] の外の) 文書群にリンクするための仕組みです。 [[SuikaWiki]] は、他の多くの wiki システムよりも柔軟に InterWiki を扱うことができます。 * InterWiki を使ったリンクの作成 [2] [[SuikaWiki/0.9]] 形式の文書では、次のように InterWiki リンクを書くことができます。 [PRE[ '''<'''IW:[VAR["文書群名"]]:[VAR["文書名"]]'''>''' ]PRE] 例えば、[SAMP[どこかのwiki]] に属する [SAMP[InterWikiのテスト]]という文書にリンクしたい時には、 [PRE[ '''<'''IW:"どこかのwiki":"InterWikiのテスト"'''>''' ]PRE] と書きます。 (引用符はなくても安全な時は省略できます。 安全でない時には警告が出ます。) [[#comment]] * InterWiki 文書群の定義 [3] >>2 で説明した[VAR[文書群名]]には、 [CODE(WikiPage)[[[Wiki//InterWikiName]]]] という特別な頁で定義した文書群の名前を指定します。 たとえば、 [PRE[ Site: @Name: RFC @URIReference: http://www.ietf.org/rfc/rfc%parameter;.txt ]PRE] のような定義を [CODE(WikiPage)[Wiki//InterWikiName]] に追加すると、 [PRE[ '''<'''IW:RFC:2822'''>''' ]PRE] と書いて にリンクできます。 [4] [CODE[URIReference]] の欄は、 [CODE(perl)[[[Message::Util::Formatter]]]] 形式で解釈されます。 >>3 の例の [SAMP[%parameter;]] の部分のことを [CODE(perl)[Message::Util::Formatter]] では[Q[整形規則]]と呼んでいます。 整形規則は SuikaWiki の [[WikiPlugin]] を使って定義されています。 従って、 wiki の管理者は (多少の知識は必要ですが) 自由に整形規則を定義して、 InterWiki のリンク先 URI を自在に生成することができます。 [5] SuikaWiki に標準で付属している整形規則を使って、 [[Google]] にリンクするための InterWiki の定義を行ってみましょう。 [PRE[ Site: @Name: Google @URIReference: %uri-with-query ( base => {http://www.google.com/search}, query => {%query-parameter ( name => q, value => {%parameter;}p, charset => {iso-2022-jp}, );}p, query => {ie=iso-2022-jp}, ); ]PRE] この定義を使うと、 [PRE[ '''<'''IW:Google:SuikaWiki'''>''' ]PRE] は になります。 >>3 の例のように [SAMP[http://www.google.com/search?q=%parameter;]] と定義しても良いように思えるかもしれません。 しかし、それでは、 [PRE[ '''<'''IW:Google:"すいかゐき"'''>''' ]PRE] のように仮名や漢字を含んでいる場合や、 [SAMP[&]] という記号を含んでいる場合には正しい URI が生成できません。 整形規則 [SAMP[uri-with-query]] や [SAMP[query-parameter]] は、そのような問題を解決してくれます。 [6] このほかにも、 [SAMP[yukiwiki]] のように特定の相手先の URI の生成を楽にするための整形規則も用意しています。 [[Wiki//InterWikiName]] には多くの例がありますから、 参考にしてください。 利用できる整形規則の一覧は、 [[Wiki//Plugin//Info]] にあります。 (InterWiki の定義以外の目的に使う整形規則も含まれます。) 整形規則が内部でどのような動作をしているのかは、 にある WikiPlugin のソースを見てもらえばわかります。 [[#comment]] * まだ実装していない機能 [7] HTML 出力モードでは InterWiki のリンクは [SAMP['''<'''Google:SuikaWiki'''>''']] のようになりますが、より柔軟に、 [SAMP[Google 検索: 「SuikaWiki」]] などとしたり、 [SAMP[''HTML 4 仕様書'' ''4.1 節'' (''和訳'')]] のような感じで1つの InterWiki リンク指定から複数のリンク先を出力できるようにする予定です。 また、 InterWiki の方法を応用して、 wiki 内のリンクの方法をより柔軟にできないか模索中です。 [8] Wiki//InterWikiName の編集を HTML form を使って簡単にできるようにすることも考えています。 ([[名無しさん]] [WEAK[2004-06-03 07:23:33 +00:00]]) [[#comment]] * メモ