pukiwikiではmake_link.php内でリンクの変換処理が行われている。リンクの書き方にはいくつかの方法が用意されている。
以下、書き方のパターン。
Link_bracketname [[掲示板へのリンク]] Link_url_interwiki [http://www.google.com/ googleへのリンク] Link_interwikiname [[Google:コアラ]] [[WikiPedia:コアラ]] [[rakuwiki:プラグイン]] Link_url mailto:123456790@abcdefgZZZ.com http://www.google.com/ Link_mailto(本wikiでは無効) 123456790@abcdefgZZZ.com Link_note 注釈対象((注釈の説明。画面下に表示される))
実行結果
Link_bracketname
掲示板へのリンク
Link_url_interwiki
[http://www.google.com/ googleへのリンク]
Link_interwikiname
Google:コアラ
WikiPedia:コアラ
rakuwiki:プラグイン
Link_url
mailto:123456790@abcdefgZZZ.com
http://www.google.com/
Link_mailto(本wikiでは無効)
123456790@abcdefgZZZ.com
Link_note
注釈対象*1
InterWikiNameと呼ばれているのは少々特殊で、ページ「:InterWikiName」内の設定に従ってリンクを生成する。
機能拡張として以下のようにすると、別ウィンドウでリンク先を表示する。
[[掲示板へのリンク>>掲示板]]
実行結果
掲示板へのリンク
リンク生成の処理はかなり重めの処理となっている。レスポンスを早くしてたいのなら、色々と手を加えるといいだろう。本wikiではリンク先の存在確認処理等を切っている。通常のpukiwikiだとリンク先がない場合に、「リンク名?」のようにハテナが出るのだが、本wikiでは出ない。
本wikiではLink_autolink、Link_wikiname、Link_autolink_aの機能は停止させている。これらは標準実装のオプション設定で切ることが可能。autolinkは登録済みページと同じ単語があれば自動でリンクしてくれる機能である。非常に便利なのだが、ページが増えるとあっという間に重くなる。
本wikiではLink_mailtoも切っている。公開するwikiでメールアドレスを記載することはないだろうと判断し、不必要と思われる処理をなくしている。
本wikiでは「パス1/タイトル名」のようなリンクの場合、「パス1/タイトル名」ではなく「タイトル名」というリンクになるようにしている。無駄に長いリンク名にすることはないという判断からです。